单机部署

  • 解压文件

    tar -zxvf elasticsearch-8.7.1-linux-x86_64.tar.gz
    mv elasticsearch-8.7.1 /usr/local/share/
  • 创建用户组

    groupadd elastic
  • 创建ES启动用户

    • es不能以root用户启动,单独新建一个普通用户
    useradd elastic -g elastic -p elastic
  • 创建前置目录

    • 数据存储目录
    mkdir /var/lib/elasticsearch_data
    • 日志存储目录
    mkdir /var/log/elasticsearch_log
    • PID目录
    mkdir /var/run/elasticsearch
  • 修改目录权限

    chown -R elastic:elastic /usr/local/share/elasticsearch-8.7.1
    chown -R elastic:elastic /var/lib/elasticsearch_data
    chown -R elastic:elastic /var/log/elasticsearch_log
    chown -R elastic:elastic /var/run/elasticsearch
  • 修改节点内存参数

    echo -e "vm.max_map_count=655350 \nvm.overcommit_memory=1">>/etc/sysctl.conf 
    sysctl -p
  • 修改节点limit参数

    # echo -e "* soft nofile 65536 \n* hard nofile 65536 \n* soft nproc 65536 \n* hard nproc 65536 \n* hard memlock unlimited \n* soft memlock unlimited" >>/etc/security/limits.conf
    
  • 创建证书

    • 集群部署时,生成的证书压缩包ca.zip,需要分发到其他机器上,保证所有机器都是同一份证书
    ./bin/elasticsearch-certutil ca --pem --out ca.zip --days 36500 -s
    
    # 解压
    unzip ca.zip
  • 修改elasticsearch.yml配置文件

    cluster.name: cluster-es
    #配置各节点hostname
    node.name: node-01 
    path.data: /var/lib/elasticsearch_data
    path.logs: /var/log/elasticsearch_log
    #配置各节点IP
    network.host: 0.0.0.0 
    http.port: 9200
    discovery.seed_hosts: ["es01", "es02","es03"]
    cluster.initial_master_nodes: ["es01", "es02","es03"]
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.key: /home/elasticsearch-8.7.1/config/cert/ca/ca.key   #上一步骤生成的证书
    xpack.security.transport.ssl.certificate: /home/elasticsearch-8.7.1/config/cert/ca/ca.crt
  • 节点启动

    • 测试单台机子上是否能够成功运行
    # 后台运行
    nohup /usr/local/share/elasticsearch-8.7.1/bin/elasticsearch >/var/log/elasticsearch_log/cluster-es.log 2>&1 &
    
    curl -u "es用户名:es用户密码"  127.0.0.1:9200
  • 设置密码访问

    • 设置密码访问,需注意节点上es要保持启动状态
    • 集群部署时,只要其中一个节点进行该步骤即可
    # 按照提示一步步生成即可,这里图方便将所有的密码都设置成一样
    ./bin/elasticsearch-setup-passwords interactive
    • ps;假如密码忘记,或者有人手欠将.security-7索引删除,可登录一个节点重置密码
    # 重置密码需要指定账户 -u [用户名]
    ./bin/elasticsearch-reset-passwords -u elastic

服务化配置

  • 创建service文件

    vim /etc/systemd/system/elasticsearch.service

    service文件内容如下

    [Unit]
    Description=elasticsearch
    After=network.target
    
    [Service]
    # data根目录
    Environment="DATA_DIR=/var/lib/elasticsearch_data"
    # log根目录
    Environment="LOG_DIR=/var/log/elasticsearch_log"
    # PID根目录
    Environment="PID_DIR=/var/run/elasticsearch"
    User=elastic
    Group=elastic
    ExecStart=/usr/local/share/elasticsearch-8.7.1/bin/elasticsearch -p ${PlD DlR)/elasticsearch.pid --quiet
    ExecStop=/bin/kill -s TERM $MAINPID
    Restart=on-failure
    RestartSec=5
    LimitNOFILE=65536
    
    [Install]
    WantedBy=multi-user.target
  • 刷新elasticsearch.service配置信息

    systemctl daemon-reload
  • 重启服务

    systemctl restart elasticsearch.service
  • 查看节点运行状况

    systemctl status elasticsearch.service
  • 设置开机自启动

    systemctl enable elasticsearch.service

    集群部署

参考【单机部署】【服务化配置】,我们已成功运行一个节点,在另外2台机器上重复上述安装步骤即可,以下再强调集群部署中的一些踩坑点
  • 证书需要确保每个节点均保持一直
  • 设置密码访问时,只要在其中一个节点进行即可

Weirdo
1 声望0 粉丝