molong0 2019-12-09
Elasticsearch:分布式搜索和分析引擎,具有高可伸缩、高可靠和易管理等特点。基于 Apache Lucene 构建,能对大容量的数据进行接近实时的存储、搜索和分析操作。通常被用作某些应用的基础搜索引擎,使其具有复杂的搜索功能; Logstash:数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置; Kibana:数据分析和可视化平台。通常与 Elasticsearch 配合使用,对其中数据进行搜索、分析和以统计图表的方式展示; Filebeat:ELK 协议栈的新成员,一个轻量级开源日志文件数据搜集器,基于 Logstash-Forwarder 源代码开发,是对它的替代。在需要采集日志数据的 server 上安装 Filebeat,并指定日志目录或日志文件后,Filebeat 就能读取数据,迅速发送到 Logstash 进行解析,亦或直接发送到 Elasticsearch 进行集中式存储和分析。 架构模式:
二、Elasticsearch环境描述
IP | port | version |
---|---|---|
192.168.18.7 | 9200 | 7.5.0 |
192.168.18.8 | 9200 | 7.5.0 |
192.168.18.9 | 9200 | 7.5.0 |
三、环境安装部署
1、下载安装包 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.0-linux-x86_64.tar.gz 2、安装jdk yum install -y java-1.8.0-openjdk 3、解压 tar -xf elasticsearch-7.5.0-linux-x86_64.tar.gz -C /opt/
4、修改配置文件
[ ~]# grep -n -v ‘#‘ /etc/elasticsearch/elasticsearch.yml |grep -v ‘^$‘ cluster.name: escluster #设置集群名字 index.number_of_shards: 3 #设置es索引分片数量,分布式存储,提高查询效率等 index.number_of_replicas: 1 #设置分片副本数量,提供数据高可用 node.name: es01 #设置本节点名字,另外2台可依次02、03 path.data: /data/es_data #设置es索引数据存放位置 network.host: 192.168.18.7 #设置此节点绑定IP discovery.zen.ping.unicast.hosts: ["192.168.18.7", "192.168.18.8", "192.168.18.9"] #设置集群节点成员
5、参数详解:
1、node.attr.rack指定节点的部落属性,这是一个比集群更大的范围。
2、node.master指定是否为主节点。该属性可不指定,节点之间自主选举。
3、node.data指定是否存储数据(数据节点)
4、cluster.initial_master_nodes参数:你可以通过为 cluster.initial_master_nodes 参数设置一系列符合主节点条件的节点的主机名或 IP 地址来引导启动集群。你可以在命令行或 elasticsearch.yml 中提供这些信息。你还需要配置发现子系统,这样节点就知道如何找到彼此。
6、jvm.options配置
7、启动es
由于elasticsearch不能用root用户启动,所以需要创建一个新用户
[ ~]# useradd elasticsearch -G root
将elasticsearch加入root用户组
[ elasticsearch-7.5.0]# chown -R elasticsearch /opt/elasticsearch-7.5.0
切换到elasticsearch用户
su - elasticsearch
nohup ./elasticsearch &
看到下图说明启动成功
四、报错解决
1. seccomp unavailable 错误 解决方法:elasticsearch.yml 配置 bootstrap.memorylock: false bootstrap.systemcallfilter: false 2. max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536] 解决方法:修改 /etc/security/limits.conf,配置: elasticsearch soft nofile 65535 #软限 此处elasticsearch为启动用户 elasticsearch hard nofile 65535 #硬限 3. max virtual memory areas vm.maxmapcount [65530] is too low 解决方法:修改 /etc/sysctl.conf,添加 : vm.max_map_count=262144 然后 sysctl -p 生效 4. the default discovery settings are unsuitable...., last least one of [....] must be configured 解决方法:elasticsearch.yml 开启配置: node.name: node-1 cluster.initialmasternodes: ["es01"]*
其他节点配置一样即可
至此elasticsearch集群部署完成。后面会接续介绍kibana和logstash部署及日志采集方法。
另外一部分,则需要先做聚类、分类处理,将聚合出的分类结果存入ES集群的聚类索引中。数据处理层的聚合结果存入ES中的指定索引,同时将每个聚合主题相关的数据存入每个document下面的某个field下。