• CentOS安装Elasticsearch集群


    前言

            之前使用的ES集群是其他公司维护,没有机会安装,后来做其他项目,终于有机会安装ES集群,简单记录一下备用

    一、安装jdk

            安装jdk1.8就可以,可以参考另一篇文章,这里就不细说了

    二、修改系统参数

               如果在一台服务器安装集群,则下面的操作在一台服务器执行即可,如果要在多台服务器搭建ES集群,那么下面的操作要在所有的服务器上执行

    2.1、内核参数优化

    vim /etc/sysctl.conf

    添加以下内容

    vm.max_map_count = 262144

    vm.swappiness = 0

    vm.dirty_background_ratio = 3

    vm.dirty_ratio = 5

    vm.zone_reclaim_mode = 0

    vm.min_free_kbytes = 2097152

    net.ipv4.tcp_keepalive_time = 600

    net.ipv4.tcp_keepalive_intvl = 60

    net.ipv4.tcp_keepalive_probes = 3

    使用以下命令校验相关配置 

    sudo sysctl -p

    执行完之后,没有报错。

    sysctl -a | grep 'vm.max_map_count' 

    可以看到以下配置

    vm.max_map_count = 262144

    sysctl -a | grep dirty 

    可以看到以下配置

    vm.dirty_background_ratio = 3

    vm.dirty_ratio = 5

    2.2、设置资源数

    vim /etc/profile 

    添加以下内容

    ulimit -SHl unlimited

    ulimit -SHu 409600

    ulimit -SHn 409600

    使配置生效  

    source /etc/profile

    vim /etc/security/limits.conf

    添加以下内容

    @root            soft    core            unlimited

    @root            hard    core            unlimited

    *       -       nofile          500000

    *       soft    nproc          500000

    *       soft    nofile          655350

    *       hard    nofile          655350

    在profile配置生效后,输入如下命令,查看配置输出信息

    ulimit -Hn,输出409600

    ulimit -Sn,输出409600

             注意:如果输出的不是该值,请检查vim /etc/bashrc中是否配置了ulimit -n 65535,如果有则注释掉该配置 

    2.3、修改线程数

    vim /etc/security/limits.d/20-nproc.conf

    添加以下内容

    *          soft    nproc     500000

    root       soft    nproc     unlimited

    2.4、修改开机启动项并执行

    vim /etc/rc.d/rc.local

    增加下列内容(直接复制粘贴):

    if test -f /sys/kernel/mm/transparent_hugepage/enabled; then

    echo never > /sys/kernel/mm/transparent_hugepage/enabled

    fi

    if test -f /sys/kernel/mm/transparent_hugepage/defrag; then

    echo never > /sys/kernel/mm/transparent_hugepage/defrag

    fi

    保存并退出,并给rc.local添加可执行权限。

    chmod +x /etc/rc.d/rc.local

    三、安装ES

    3.1、新建ES用户

    adduser esuser

    3.2、创建ES数据目录

            es的数据目录需要选用数据盘来存放数据,切忌不可存选用系统盘作为存放es的数据

            一台服务器安装三个ES节点, 软件和数据都放在/home/es目录下,master,slave1,slave2目录存放三个节点的程序,maste_data,slave1_data,slave2_data目录存放对应节点的数据

    mkdir -p /home/es/master

    mkdir -p /home/es/master_data

    mkdir -p /home/es/slave1_data

    mkdir -p /home/es/slave2_data

            赋权给ES用户 

    chown -R esuser:esuser /home/es

            上传安装包到 /home/es目录下,解压到master目录

    tar -zxf elasticsearch-7.x-linux-x86_64.tar.gz -C /home/es && mv /home/es/elasticsearch-7.x /home/es/master

    3.3、配置jvm.options 

            es节点的最大可使用内存为32g,因此在更改jvm.options配置文件的时候,不要设置超过32g,如果所在服务器可使用内存远超32g,为不浪费剩余资源,可考虑在该服务器上多部署几个es节点。

    cd /apps/elasticsearch-7.2.0

    vim config/jvm.options

    -Xms10g

    -Xmx10g

     3.4、配置elasticsearch.yml

    cd master

    vim config/elasticsearch.yml

    cluster.name: my_cluster

    node.name: node-101-1

    path.data: /home/es/master_data

    node.master: true

    node.data: true

    network.host: 0.0.0.0

    http.port: 9200

    transport.tcp.port: 9300

    cluster.initial_master_nodes:["node-101-1","node-101-2","node-101-3"]

    discovery.seed_hosts:["192.168.0.101:9300","192.168.0.101:9301","192.168.0.101:9302"]

    gateway.recover_after_nodes: 3

    http.cors.enabled: true

    http.cors.allow-origin: "*"

    cluster.routing.allocation.cluster_concurrent_rebalance: 10

    cluster.routing.allocation.node_concurrent_recoveries: 10

    cluster.routing.allocation.node_initial_primaries_recoveries: 4

    配置说明

    cluster.name: es集群的名称,可以自定义,但要保证集群中每一个node的cluster.name名称一致。

    node.name: 节点的名称,可以自定义。

    path.data: 存储数据目录,如果有多个磁盘,用”,”进行分隔。

    node.master: true表示是否为master节点,true为是,false为否。

    node.data: true表示是否为数据节点,true为是,false为否。

    network.host: 0.0.0.0表示绑定的ip地址, 0.0.0.0表示绑定本机ip。

    http.port: HTTP请求的端口号,默认9200~9299端口之间。

    transport.tcp.port: nodes节点之前通信端口号,默认9300~9400端口之间。

    cluster.initial_master_nodes:是es7.x 之后新增的配置,表示初始化一个新的集群时需要此配置来选举master,必须和node.name保持一致

    discovery.seed_hosts: 是es7.x 之后新增的配置,表示写入候选主节点的设备地址,在开启服务后可以被选为主节点。

    gateway.recover_after_nodes: 2表示只要满足该数值的数据或主节点已加入集群,即可恢复。

    http.cors.enabled: true表示是否支持跨域,是:true,在使用head插件时需要此配置。

    http.cors.allow-origin: "*" “*” 表示支持所有域名。

    cluster.routing.allocation.cluster_concurrent_rebalance: 10表示集群内同时启动的数据任务个数,默认是2个。

    cluster.routing.allocation.node_concurrent_recoveries: 10表示添加或删除节点及负载均衡时并发恢复的线程个数,默认4个。

    cluster.routing.allocation.node_initial_primaries_recoveries: 4表示初始化数据恢复时,并发恢复线程的个数,默认4个。

    3.5、启动脚本

    编辑简单的启动脚本启动ES

    cd master

    vim start.sh

    #!/bin/sh

    cd `dirname $0`

    su esuser -c "sh ./bin/elasticsearch -d -p pid"

    添加执行权限 

    chmod +x start.sh 

    3.6、配置其他节点

    复制master到其他节点,修改对应的elasticsearch.yml配置即可,主要修改红色的配置,

    cp -r /home/es/master /home/es/slave1

    cp -r /home/es/master /home/es/slave2

    其他服务器使用scp命令

    scp -r /home/es/master root@ip:/home/es/master

    四、启用集群安全认证

    4.1、停止服务

    jps -l

    kill pid

    4.2、 生成证书

    注意:不需要设置密码,直接回车,后面如果有需要输入密码,也是直接回车。

    ./bin/elasticsearch-certutil ca 

    ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

    执行完之后,会生成两个文件,elastic-certificates.p12和elastic-stack-ca.p12

    拷贝到master的config目录下和其他节点的congfig目录下

    4.3、修改配置

    master节点的elasticsearch.yml添加以下配置,其他节点添加对应的配置,注意证书文件的路径

    xpack.security.enabled: true

    xpack.security.transport.ssl.enabled: true

    xpack.security.transport.ssl.verification_mode: certificate

    xpack.security.transport.ssl.keystore.path:/home/es/master/config/elastic-certificates.p12

    xpack.security.transport.ssl.truststore.path:/home/es/master/config/elastic-certificates.p12

    4.4、启动服务

     ./start.sh

    4.4、设置密码

    ./bin/elasticsearch-setup-passwords interactive

    要输入12次密码,都输入一样的就可以了

    五、安装Kibana

    上传并解压

    tar -zxf  kibana-7.x-linux-x86_64.tar.gz

    赋权给esuser

    chown -R esuser:esuser kibana-7.x-linux-x86_64

    备份配置文件

    mv kibana.yml kibana.yml_bak

    编辑配置文件

    vim config/kibana.yml

    添加一下配置,按照具体的配置修改,如果es集群没有配置密码则不用配置

    i18n.locale: "zh-CN"

    server.port: 5601

    server.host: "0.0.0.0"

    elasticsearch.hosts: "http://ip:9200"

    elasticsearch.username: "kibana-system"

    elasticsearch.password: "123456"

    kibana.index: ".kibana"

    编辑启动脚本

    vim start.sh

    #!/bin/bash

    su esuser -c "nohup bin/kibana >./stdout.log 2>&1 &"

    启动

    ./start.sh

    浏览器访问ip:5601,输入es的用户名和密码即可

    写在最后的话

            集群安装也可以编写脚本完成一键安装,通过scp把安装包拷贝到其他节点。启用安全认证可以在3.3步骤后执行,就不用多配置了,一次配置就好了。

     

  • 相关阅读:
    Matlab设置figure中标题/图例英文不同字体
    jdk.8对于:HashMap的改动
    如何使用前端模块化开发?
    Hiding Images within Images[精读]
    信息系统项目管理师核心考点(五十四)配置项分类、状态与版本
    大厂SQL题5-同时在线人数、不同类别的第一
    倍福PLC:win7专业版系统安装TwinCAT3后图标灰色,报错0x426 starting TwinCAT system
    「架构师合集」
    MySQL日志管理和权限管理(重点)
    一起Talk Android吧(第五百五十回:如何适配SplashScreen)
  • 原文地址:https://blog.csdn.net/WayneLee0809/article/details/132686173