欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Elasticsearch 集群搭建

程序员文章站 2022-04-10 22:14:30
Elasticsearch 集群搭建 环境及软件 centos7 elasticsearch 7.4.0 因为ES7已经内置了所需的java的JDK版本,因此在此不再介绍java安装 ES7安装方式使用RPM安装方式。 es节点列表 | ip | 节点名 | | | | |192.168.1.100 ......

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

参考:

修改系统配置

  • 修改文件描述符数量

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

未完待续...