前言
最近,做了个新项目,为了好排查问题,方便查询日志,需要搭建一套统一日志中心,在这里选择elk来做
环境
三台主机搭建集群
主机1 10.196.201.80
主机2 10.196.201.81
主机3 10.196.201.82
下载
https://repo.huaweicloud.com/elasticsearch/7.9.3/
在以上地址下载es
创建用户
每台主机都要创建es自己的用户,因为es不允许使用root启动。
命令如下
groupadd es && useradd es -g es
三台主机都要这样操作一遍
创建目录
创建数据目录/data/elasticsearch,并设置es权限
mkdir -R /data/elasticsearch
chown -R es:es /data/elasticsearch
三台主机都要这样操作一遍
配置es
将es安装包放到es用户的家目录,并解压出目录/home/es/elasticsearch-7.9.3
修改es配置/home/es/elasticsearch-7.9.3/config/elasticsearch.yml内容如下:
主机1
cluster.name: my-application
node.name: node-master
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["10.196.201.80", "10.196.201.81", "10.196.201.82"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: node-master
主机2
cluster.name: my-application
node.name: node-data
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["10.196.201.80", "10.196.201.81", "10.196.201.82"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: node-master
主机1
cluster.name: my-application
node.name: node-client
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["10.196.201.80", "10.196.201.81", "10.196.201.82"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: node-master
参数解读:
cluster.name是集群的名称,相同的名称的es主机才会被认为是同一个集群的
node.name是节点的名称,每个节点都独一无二的
path.data是存放数据的目录
path.logs是存放日志的目录
network.host代表主机绑定的ip,0.0.0.0代表绑定所有的ip
discovery.zen.ping.unicast.hosts集群主机的节点ip端口
cluster.initial_master_nodes这个参数比较重要,不许指定初始化的集群节点
修改JDK
es内部自带了jdk,之前由于使用系统安装的jdk,发现有很多权限问题,始终无法启动es,后面就直接使用es内部自带的jdk,但是就要修改一下启动环境变量了
es的环境变量文件是/home/es/elasticsearch-7.9.3/bin/elasticsearch-env文件
在52行增加一行命令然后保存
JAVA=$ES_HOME/jdk/bin/java
每台机器都要修改该脚本
启动节点
每台主机都执行一下命令启动
nohup /home/es/elasticsearch-7.9.3/bin/elasticsearch > /dev/null 2>&1 &
总结
到这里,我们的集群就已经搭建好了。