Elasticsearch 集群搭建

Posted chiikin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch 集群搭建相关的知识,希望对你有一定的参考价值。

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集群中的一个节点就能管理整个集群。

未完待续...

以上是关于Elasticsearch 集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

搭建Elasticsearch集群常见问题

elasticSearch集群搭建---入门篇二

采用docker-compose搭建Elasticsearch集群

玩转Elastic Search 之 服务集群搭建实例

玩转Elastic Search 之 服务集群搭建实例

Elasticsearch7.10.0集群搭建