Elasticsearch 7.5.0集群部署

一、背景介绍
ELK 不是一款软件,而是 Elasticsearch、Logstash 和 Kibana 三种软件产品的首字母缩写。这三者都是开源软件,通常配合使用,而且又先后归于 Elastic.co 公司名下,所以被简称为 ELK Stack。根据 Google Trend 的信息显示,ELK Stack 已经成为目前最流行的集中式日志解决方案。

Elasticsearch:分布式搜索和分析引擎,具有高可伸缩、高可靠和易管理等特点。基于 Apache Lucene 构建,能对大容量的数据进行接近实时的存储、搜索和分析操作。通常被用作某些应用的基础搜索引擎,使其具有复杂的搜索功能;
Logstash:数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置;
Kibana:数据分析和可视化平台。通常与 Elasticsearch 配合使用,对其中数据进行搜索、分析和以统计图表的方式展示;
Filebeat:ELK 协议栈的新成员,一个轻量级开源日志文件数据搜集器,基于 Logstash-Forwarder 源代码开发,是对它的替代。在需要采集日志数据的 server 上安装 Filebeat,并指定日志目录或日志文件后,Filebeat 就能读取数据,迅速发送到 Logstash 进行解析,亦或直接发送到 Elasticsearch 进行集中式存储和分析。

架构模式:

Elasticsearch 7.5.0集群部署
二、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

Elasticsearch 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、修改配置文件

[root@es01 ~]# 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"]  #设置集群节点成员

Elasticsearch 7.5.0集群部署
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配置
Elasticsearch 7.5.0集群部署

7、启动es
由于elasticsearch不能用root用户启动,所以需要创建一个新用户
[root@es01 ~]# useradd elasticsearch -G root
将elasticsearch加入root用户组
[root@es01 elasticsearch-7.5.0]# chown -R elasticsearch /opt/elasticsearch-7.5.0
Elasticsearch 7.5.0集群部署
切换到elasticsearch用户
su - elasticsearch
nohup ./elasticsearch &
看到下图说明启动成功
Elasticsearch 7.5.0集群部署

四、报错解决

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部署及日志采集方法。

发布了421 篇原创文章 · 获赞 67 · 访问量 39万+

猜你喜欢

转载自blog.csdn.net/w892824196/article/details/103796416