Elasticsearch集群配置

来自Linux78|wiki

机器环境

主机IP	组件
192.168.1.3	 node1
192.168.1.4	 node2
192.168.1.5	 node3

安装配置

配置yum源

cat > /etc/yum.repos.d/elk.repo << EOF
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

安装elasticsearch

在四台主机安装elasticsearch。

yum -y install elasticsearch

接下来进行配置:

node1配置

mkdir -pv /es/{logs,data"
chown -R elasticsearch,elasticsearch /es
egrep -v "^#|^$" /etc/elasticsearch/elasticsearch.yml
cluster.name: elk
node.name: elk-node1
path.data: /es/data/
path.logs: /es/logs/
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.1.3:9300","192.168.1.4:9300","192.168.1.5:9300","192.168.1.6:9300"]
discovery.zen.minimum_master_nodes: 2
xpack.security.enabled: false

说明:

cluster.name:自定义集群名称
node.name:自定义节点名,不同主机名称不能一致。
path.data:data存储路径,这里更改成自定义以应对日志的big。
path.logs:log存储路径,是为es自己的日志。
network.host:es监听地址,采用"0.0.0.0",表示允许所有设备访问。
http.port:es监听端口,可不取消注释,默认即此端口。
discovery.zen.ping.unicast.hosts:集群节点发现列表
discovery.zen.minimum_master_nodes:定义可成为master的节点数量。为避免脑裂的情况,建议设置成2。参考
xpack.security.enabled:添加这条,这条是配置kibana的安全机制,暂时关闭。

分发其他三台配置

接着将配置分发给其他几台主机。

scp /etc/elasticsearch/elasticsearch.yml 192.168.1.4:/etc/elasticsearch/elasticsearch.yml
scp /etc/elasticsearch/elasticsearch.yml 192.168.1.5:/etc/elasticsearch/elasticsearch.yml
scp /etc/elasticsearch/elasticsearch.yml 192.168.1.6:/etc/elasticsearch/elasticsearch.yml

然后更改对应三台的配置,只需更改node-name即可。


启动es服务

systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl start elasticsearch.service
systemctl status elasticsearch.service

查看集群信息

查看es是否正常启动

curl -X GET "127.0.0.1:9200/"
curl -XGET 'http://127.0.0.1:9200/_cluster/health?pretty'

查看集群状态

curl -XGET 'http://127.0.0.1:9200/_cat/nodes'
url -XGET 'http://127.0.0.1:9200/_cat/nodes?v'
url -XGET 'http://127.0.0.1:9200/_cluster/state/nodes?pretty'

查询master

curl -XGET 'http://127.0.0.1:9200/_cluster/state/master_node?pretty'
curl -XGET 'http://127.0.0.1:9200/_cat/master?v'

查询集群健康状态

curl -XGET 'http://127.0.0.1:9200/_cat/health?v'