本文共 2822 字,大约阅读时间需要 9 分钟。
elastic search本身是无法从redis获取数据的,只能从logstash, 此处logstash只是作为本地的日志收集工具,logstash有三个组件(input 获取到数据,filter 过滤转换,output输出,每类组件都有一堆的插件) filebeat是直接读数据发给ES集群,缺少过滤转换的功能,为了更正规,一般在前面加logstash server(logstash太占资源,对于ngixn自身主机性能影响较大)由logstash fileter 在本地完成过滤发给ES集群 logstash能收集的数据种类非常多,可以输出到各种,比如ES,redis 可以尝试中间加redis队列众多主机发给logstash server主机可能承受不来了太大的压力, 所有数据发给logstash server 之前先要发给redis,redis只是做队列用的,logstash server ,从中逐条读,并处理,可以有多个logstash ,每一个logstash server 只处理一部分,由同一个ES集群进行处理, kibana压力大也可以做多个kibana 如果有多个ES主机,我们请求应该找哪个主机,多个ES主机,可能每台只持有一部分,请求来,ES如何处理请求 有两个节点组成集群,两个分片 get-togerther 都有主分片和副本分片,如果用户请求发给1节点,node1节点有一部分数据,node2节点也有一部分数据,主分片能读能写,副本分片是只读的 对ES来讲每一个节点都能接受所有请求,无论是读还是写,收到请求有可能一部分是本地处理,代理一部分是其他主机处理,类似redis cluster 无中心节点,任何一个 主机都可以接受所有请求 ES会监听在两个端口上 搜索服务: 9200/tcp 对外提供服务集群服务: 9300/tcp,集群服务判定的
els集群的工作逻辑: 多播、单播:9300/tcp 探测成员关系,(如何判定这个是当前集群成员,clustername ) 关键因素:clustername 集群名称,集群名称相同都处在都一个集群所有节点选举一个主节点,负责管理整个集群的状态(green/yellow/red),以及各shards的分布方式; (为了确定整个集群没有问题还需要一个主节点,来负责整个集群状态管理 集群起来以后,各节点要周期汇报是否可用 心跳探测,任何节点不可用的时候,故障都需要处理) 集群工作是在9300端口
插件:
现在node1,node2,node3,所有分布式系统,时间必须同步,ES是java研发,非常消耗内存,较新版本的ES依赖8版本的JDK
node2,,3都安装 同一个集群,使用/etc/hosts是比较妥当的 非常耗内存,建议启用一个节点即可https://www.elastic.co/cn/downloads/elasticsearch
复制到其他节点上 三个节点安装 elasticsearch ElasticSearch 5的程序环境: 配置文件: /etc/elasticsearch/elasticsearch.yml 主配置文件 /etc/elasticsearch/jvm.options /etc/elasticsearch/log4j2.properties Unit File:elasticsearch.service(打开的文件数量可能要很多,后面可能要修改ulimit) 程序文件: /usr/share/elasticsearch/bin/elasticsearch 敏感配置信息,比如账号密码,可以放到keystore加密文件中 /usr/share/elasticsearch/bin/elasticsearch-keystore: /usr/share/elasticsearch/bin/elasticsearch-plugin:管理插件程序 **cluster name集群名字 node.name:node 节点名称 node.attr.rackL: r1 也可以+当前节点自定义属性,将来可以引用 path data存放索引路径最好是个raid0 path.logs 日志文件需要自己定义 ****确保ES起来后有那么多内存可用
boot strap.memory_lock:true不管要不要,都分配那么多 当前的ELS节点监听在哪个地址端口上 默认是本机所有地址,9200端口 服务器至少有4个网卡,建议只监听内网 ** 如何去判断成员关系,是单播,zen是els判定成员关系的协议,ping来探测,避免仅靠集群名称来判断成员关系了 既然有三个节点,一旦脑裂该如何, 避免脑裂,来定义法定票数2 把配置文件复制到其他节点上 修改节点名称 主配置文件OK了,还有两个配置文件jvm,log4j2 初始化堆内存, 最大堆内存大小 另外两个节点由于内存不足,应该修改修改 node2,,3一样 1G可能不够用,会消耗swap 创建目录,修改权限 3个节点都这么做 启动服务 默认监听地址是127,需要修改 node2也需要修改地址 查看日志 超时 重启服务就成功了,node2也需要重启 和els交互需要使用curl命令来实现 内部有一个cat可以输出集群信息的 当前集群叫myels,处于green状态,pretty可以加查询符号,美观一点,?pretty=?pretty=true 带*号的是主节点 当前堆内存多大,使用了真正多少,cpu占用量,一分钟负载,5分钟负载,15分钟评价负载,节点角色,是否master ,节点名称 查看插件, 想要知道内部有几个索引 自定义显示那些信息 不同节点运行是当前节点名 list列出已经安装的插件 install可以安装插件,想用插件就克隆到本地来, 到了第5版需要以独立守护来运行 https://github.com/mobz/elasticsearch-headhttps://github.com/mobz/elasticsearch-head.git安装npm 之后一定要在目录下运行命令 监听在9100端口 链接不上是因为对应默认的,elasticsearch 是有一个插件功能,http启动起来https://www.elastic.co/guide/en/elasticsearch/reference/5.5/modules-http.html 默认false需要改成enable 加一段http 添加一个文档编号1, 索引名students major类型名 显示有一个索引叫students 由5个分片,每一个分片有两个副本,一般而言让你的分片数量等于节点数量 再添加一个用户 没写查询条件,把所有的查出来了 找一找有没有剑法字符串的转载地址:http://cckgn.baihongyu.com/