CentOS7二进制安装elasticsearch集群
一、介绍及规划
1.1 介绍
ElasticSearch 是一款开源的全文检索搜索的数据库。在 ELK 中作为一个组件。
1.2 规划
| 主机名 |
ip地址 |
系统版本 |
软件版本 |
| es101 |
192.168.10.101 |
centos7 |
8.19.9 |
| es102 |
192.168.10.102 |
centos7 |
8.19.9 |
| es103 |
192.168.10.103 |
centos7 |
8.19.9 |
1 2 3 4 5
| cat >> /etc/hosts <<EOF 192.168.10.101 es101 192.168.10.102 es102 192.168.10.103 es103 EOF
|
1
| hostnamectl set-hostname es101
|
1
| hostnamectl set-hostname es102
|
1
| hostnamectl set-hostname es103
|
1.3 参数调优
- 文件句柄
1
| vim /etc/security/limits.conf
|
1 2
| * soft nofile 65536 * hard nofile 65536
|
注:需重新登录 shell 生效
- 内核参数
生效
二、下载及安装
选择 8 系列目前的最新版本,安装在 opt 目录下。
2.1 下载
官网最新版下载地址
历史版本下载地址,这里选择 8.19.9 版本。
1
| wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.19.9-linux-x86_64.tar.gz
|
2.2 安装
- 创建用户
1 2
| useradd es echo es |passwd es --stdin
|
- 解压
1
| tar -zxvf elasticsearch-8.19.9-linux-x86_64.tar.gz
|
- 创建软链接
1
| ln -s /opt/elasticsearch-8.19.9 /opt/elasticsearch
|
- 修改文件权限
1
| chown -R es:es /opt/elasticsearch-8.19.9
|
1
| chown -h es:es /opt/elasticsearch
|
- 设置环境变量
1 2
| echo 'export ES_HOME=/opt/elasticsearch' > /etc/profile.d/es.sh echo 'export PATH=$ES_HOME/bin:$PATH' >> /etc/profile.d/es.sh
|
- 刷新环境变量
- 验证版本
三、配置启动
3.1 自签名证书创建及分发
流程: es101 一台机器生成证书然后分发给其他机器,需要注意权限。
- 创建证书文件夹
1
| mkdir -pv $ES_HOME/config/certs
|
- 创建根证书
ca
1
| elasticsearch-certutil ca --out $ES_HOME/elastic-stack-ca.p12 --pass ""
|
- 生成集群通用证书
注意: 证书默认是3年的。
1 2 3
| elasticsearch-certutil cert --ca $ES_HOME/elastic-stack-ca.p12 \ --out $ES_HOME/config/certs/elastic-certificates.p12 \ --pass ""
|
生成10年的证书
1 2 3 4
| elasticsearch-certutil cert --ca $ES_HOME/elastic-stack-ca.p12 \ --days 3650 \ --out $ES_HOME/config/certs/elastic-certificates.p12 \ --pass ""
|
- 修改证书文件夹权限
1
| chown -R es:es $ES_HOME/config/certs
|
- 分发到
es102
1
| ssh root@192.168.10.102 "mkdir -p $ES_HOME/config/certs"
|
1
| scp $ES_HOME/config/certs/elastic-certificates.p12 root@192.168.10.102:$ES_HOME/config/certs/
|
1
| ssh root@192.168.10.102 "chown -R es:es $ES_HOME/config/certs"
|
- 分发到
es103
1
| ssh root@192.168.10.103 "mkdir -p $ES_HOME/config/certs"
|
1
| scp $ES_HOME/config/certs/elastic-certificates.p12 root@192.168.10.103:$ES_HOME/config/certs/
|
1
| ssh root@192.168.10.103 "chown -R es:es $ES_HOME/config/certs"
|
- 查看权限
1
| ls -l $ES_HOME/config/certs/elastic-certificates.p12
|
- 查看证书有效期
1
| openssl pkcs12 -in 证书路径 -nokeys -passin pass: | openssl x509 -noout -dates
|
3.2 修改配置文件
- 备份配置文件
1
| cp $ES_HOME/config/elasticsearch.yml{,.bak}
|
- 修改配置文件,三台机器只有
node.name、network.host 不一样。node.name 和主机名不是必须一样。
1
| vi $ES_HOME/config/elasticsearch.yml
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| cluster.name: my-es-cluster node.name: es101 network.host: 192.168.10.101
http.port: 9200 transport.port: 9300
discovery.seed_hosts: ["es101", "es102", "es103"]
cluster.initial_master_nodes: ["es101", "es102", "es103"]
path.data: /opt/elasticsearch/data path.logs: /opt/elasticsearch/logs
xpack.security.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12 xpack.security.http.ssl.enabled: false
|
3.3 配置 systemd 并启动
- 创建必需的文件夹,顺带修改权限
1 2
| mkdir -p /opt/elasticsearch/var/run chown -R es:es /opt/elasticsearch/var/run
|
- 创建
systemd 文件
1
| vi /etc/systemd/system/elasticsearch.service
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| [Unit] Description=Elasticsearch Documentation=https://www.elastic.co Wants=network-online.target After=network-online.target
[Service] Type=simple
User=es Group=es
Environment=ES_HOME=/opt/elasticsearch Environment=ES_PATH_CONF=/opt/elasticsearch/config Environment=PID_DIR=/opt/elasticsearch/var/run
ExecStart=/opt/elasticsearch/bin/elasticsearch -p /opt/elasticsearch/var/run/elasticsearch.pid --quiet
LimitNOFILE=65535 LimitMEMLOCK=infinity LimitNPROC=4096 LimitAS=infinity
KillMode=process Restart=on-failure RestartSec=3
[Install] WantedBy=multi-user.target
|
- 重载配置并设置开机启动
1 2
| systemctl daemon-reload systemctl enable elasticsearch
|
- 启动
1
| systemctl start elasticsearch
|
- 查看状态
1
| systemctl status elasticsearch
|
- 查看日志
1
| journalctl -u elasticsearch -f
|
1
| tail -f /opt/elasticsearch/logs/my-es-cluster.log
|
3.4 修改密码
任意节点修改即可。
- 切换到
es 用户
- 交互式重置密码
1
| /opt/elasticsearch/bin/elasticsearch-reset-password -u elastic -i
|
- 验证
1
| curl -u elastic:elastic -X GET "http://192.168.10.101:9200/_cat/nodes?v"
|
3.5 修改 JVM 堆内存大小(可选)
不要直接去改 jvm.options 那个大文件(那样升级时容易被覆盖)。 ES 推荐在 jvm.options.d/ 目录下新建一个文件。
- 修改
1
| vim /opt/elasticsearch/config/jvm.options.d/heap.options
|
- 重载
1
| systemctl restart elasticsearch
|
四、测试访问
浏览器插件