elasticsearch 集群部署,就是重复多个单机部署,再加修改配置。
笔者在虚机中部署,因此可以简单复制虚机。
复制虚机前,需调整一些配置,避免复制后需要的重复修改
1、修改 /etc/elasticsearch/elasticsearch.yml
# 你的集群名称,虚机复制后,同一集群名称不需要修改
cluster.name: my-es-cluster
# 节点名称,下面使用的是主机名称。虚机复制后,需修改主机名称/etc/hostname 。这里直接使用主机名称,避免避免虚机复制后需要重复修改以下配置项
node.name: ${HOSTNAME}
# 主机的绑定地址。 如果使用localhost(或127.0.0.1),则其他机器不能访问。这里使用0.0.0.0,则服务会绑定本机所有的 IP地址。
network.host: 0.0.0.0
# 节点发现,把集群内的IP均填入。后续复制虚机后,按如下配置IP地址
discovery.zen.ping.unicast.hosts: ["192.168.0.21", "192.168.0.22", "192.168.0.23"]
# 避免双脑的配置。需配置为 (节点数+1)/2
discovery.zen.minimum_master_nodes: 2
# 数据路径:调整为需要放置的索引库位置。
path.data: /data/elasticsearch/data
#加入一条:禁用 xpack的 安全机制。 需要在 kibana.yml中同样加入
xpack.security.enabled: false
2、修改 /etc/kibana/kibana.yml
# 服务的IP修改为 0.0.0.0,以便外部可以访问。(如果配置为本机的IP地址,则需要在虚机复制后为每台机器修改)
server.host: 0.0.0.0
#加入一条:禁用 xpack的 安全机制
3、复制虚机并调整配置
复制虚机前,确认单机的elasticsearch工作正常后,停止当前elasticsearch服务,并清空 elasticsearch.yml中path.data 定义的数据目录。
如果不清空,则复制后的虚机节点启动后,其内部记录的 nodeid 重复,导致节点不能启动
sudo systemctl stop elasticsearch
复制虚机后,修改各虚机的机器名,IP。启动各节点上的 elasticsearch ,并配置自动重启
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
4、检查集群运行情况
使用浏览器访问你的集群kibana
http://192.168.0.21:5601