Elasticsearch 集群搭建
环境及软件
- centos7
- elasticsearch 7.4.0
因为ES7已经内置了所需的java的JDK版本,因此在此不再介绍java安装
ES7安装方式使用RPM安装方式。
es节点列表
ip | 节点名 |
---|---|
192.168.1.100 | es-node-master-01 |
192.168.1.101 | es-node-master-02 |
192.168.1.102 | es-node-master-03 |
192.168.1.103 | es-node-data-01 |
192.168.1.104 | es-node-data-02 |
192.168.1.105 | es-node-data-03 |
安装es7
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.0-x86_64.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.0-x86_64.rpm.sha512
shasum -a 512 -c elasticsearch-7.4.0-x86_64.rpm.sha512
sudo rpm --install elasticsearch-7.4.0-x86_64.rpm
通过以上命令安装的elasticsearch安装路径为:/etc/elasticsearch
使用systemd设置自动启动
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
启动/停止 elasticsearch
sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service
参考:https://www.elastic.co/guide/en/elasticsearch/reference/7.4/rpm.html
修改系统配置
- 修改文件描述符数量
elasticsearch对文件描述符的限制至少为65536,因此需要修改此配置。
echo '* soft nofile 65536' >> /etc/security/limits.conf
echo '* hard nofile 65536' >> /etc/security/limits.conf
#查看配置,如果未生效重启配置
ulimit -n
- 修改max_map_count
临时修改:
sysctl -w vm.max_map_count=655360
永久设置:
echo 'vm.max_map_count=655360' >> /etc/sysctl.conf
elasticsearch基本配置
- cluster.name
ES通过集群名称区分集群,因此集群内所有节点的节点名称必须保持一致。如:
cluster.name: es-cluster
- node.name
集群内节点的名称,同一集群内的节点名称必须保持唯一。如:
node.name: es-master-01
- node.master
标记节点可以选举为master节点。如果集群内的master节点停止,则该节点就会参与选举,可以成为master节点。如:
node.master: true
- node.data
允许该节点存储索引数据(默认).如:
node.data: true
- path.data
此路径是存放es数据的目录,可以任意指定。如果是生产环境建议设置的路径有足够的存储空间,如:
path.data: /datadrive/elasticsearch/data
- path.logs
此路径存储es产生的日志,生产环境建议与path.logs
分开设置。如:
path.data: /datadrive/elasticsearch/logs
- network.host
es绑定的地址,支持IPv4和IPv6。是es的监听地址。如果设置具体的地址,则只能通过改地址访问,也可设置0.0.0.0
则不限制访问地址.如:
network.host: 0.0.0.0
- http.port
外部访问es的http端口,默认9200
。如:
http.port: 9200
- transport.tcp.port
集群节点通讯的tcp的端口,默认9300
。如:
transport.tcp.port: 9300
- discovery.seed_hosts
集群搜索的主机列表。由discovery.zen.ping.unicast.hosts:参数改变而来。如:
discovery.seed_hosts:["192.168.1.100:9300","192.168.1.101:9300","192.168.1.102:9300","192.168.1.103:9300","192.168.1.104:9300","192.168.1.105:9300"]
- cluster.initial_master_nodes
集群主节点初始化列表,master选举列表。
cluster.initial_master_nodes:["192.168.1.100:9300","192.168.1.101:9300","192.168.1.102:9300"]
启动elasticsearch
elasticsearch集群的其他节点通过transport.tcp.port
端口访问elasticsearch实例。对外提供服务通过http.port
端口。因此需要确保这两个端口开放。
centos7开放端口
firewall-cmd --zone=public --add-port=9300/tcp --permanent
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --reload
配置完成所有节点后分别启动elasticsearch服务。
systemctl start elasticsearch.service
所有节点都启动后可以访问任一节点查看集群状态,可以通过浏览器或curl节点地址。如:
curl -XGET 'http://192.168.1.100:9200/_cluster/state?pretty'
安装kibana
kibana可用于可视化管理elasticsearch。kibana在任一个节点安装即可。kibana只需要能访问到elasticsearch集群中的一个节点就能管理整个集群。
未完待续...