一、下载软件
Elasticsearch 的官方地址:https://www.elastic.co/cn/
下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
以部署三个节点为例
二、上传到服务器
我这里是上传到/usr/local目录下
创建目录
mkdir -p /usr/local/elasticsearch/es1/ mkdir -p /usr/local/elasticsearch/es2/ mkdir -p /usr/local/elasticsearch/es3/
解压:
tar -xzvf elasticsearch-7.10.0-linux-x86_64.tar.gz -C /usr/local/elasticsearch/es1 tar -xzvf elasticsearch-7.10.0-linux-x86_64.tar.gz -C /usr/local/elasticsearch/es2 tar -xzvf elasticsearch-7.10.0-linux-x86_64.tar.gz -C /usr/local/elasticsearch/es3
创建data目录和log目录(目录自定义)
mkdir /data/elasticsearch/es1/data -p mkdir /data/elasticsearch/es2/data -p mkdir /data/elasticsearch/es3/data -p
mkdir /data/elasticsearch/es1/logs -p mkdir /data/elasticsearch/es2/logs -p mkdir /data/elasticsearch/es3/logs -p
三、修改配置文件
1、编辑elasticsearch.yml文件
节点1配置
vi /usr/local/es1/elasticsearch-7.10.0/config/elasticsearch.yml
cluster.name: my-application node.name: node-1 network.host: 0.0.0.0 path.data: /data/elasticsearch/es1/data path.logs: /data/elasticsearch/es1/logs http.port: 9101 transport.tcp.port: 9301 discovery.seed_hosts: ["192.169.3.41:9301", "192.169.3.41:9302", "192.169.3.41:9303"] cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
节点2配置
vi /usr/local/es2/elasticsearch-7.10.0/config/elasticsearch.yml
cluster.name: my-application node.name: node-2 path.data: /data/elasticsearch/es2/data path.logs: /data/elasticsearch/es2/logs network.host: 0.0.0.0 http.port: 9102 transport.tcp.port: 9302 discovery.seed_hosts: ["192.169.3.41:9301", "192.169.3.41:9302", "192.169.3.41:9303"] cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
节点3配置
vi /usr/local/es2/elasticsearch-7.10.0/config/elasticsearch.yml
cluster.name: my-application node.name: node-3 path.data: /data/elasticsearch/es3/data path.logs: /data/elasticsearch/es3/logs network.host: 0.0.0.0 http.port: 9103 transport.tcp.port: 9303 discovery.seed_hosts: ["192.169.3.41:9301", "192.169.3.41:9302", "192.169.3.41:9303"] cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
2、修改/etc/security/limits.conf 文件
vi /etc/security/limits.conf
添加内容如下所示。
* soft nofile 65536 * hard nofile 131072 * soft nproc 4096 * hard nproc 4096
3、修改 /etc/sysctl.conf 文件
增加
vm.max_map_count=262145
执行 sysctl -p 命令使生效
四、创建普通用户 & 启用es
1、创建用户
用户组:es 用户名:es
groupadd es && useradd es -g es
2、赋予权限
chown -R es:es /usr/local/elasticsearch //这是elasticsearch解压后所在目录 chown -R es:es /data/elasticsearch //这是elasticsearch数据和日志目录
3、用上面创建的普通用户es启动
(elasticsearch不能用root用户启动)
su es -c "/usr/local/elasticsearch/es1/elasticsearch-7.10.0/bin/elasticsearch -d" su es -c "/usr/local/elasticsearch/es2/elasticsearch-7.10.0/bin/elasticsearch -d" su es -c "/usr/local/elasticsearch/es3/elasticsearch-7.10.0/bin/elasticsearch -d"
五、安全认证和配置密码
如不需要安全认证和配置用户密码,可跳过这一步骤
进入/usr/loca/lelasticsearch/es1/elasticsearch-7.10.0/目录下
1、生成ca证书
./bin/elasticsearch-certutil ca
2、生成p12密钥
使用上一步生成的elastic-stack-ca.p12证书,生成p12密钥
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
3、拷贝p12密钥文件到./config/certs目录下
【只要生成一份p12密钥文件即可,拷贝到es每个节点下】
mkdir -p ./config/certs cp elastic-certificates.p12 ./config/certs/ chown -R es:es ./config //赋权,第一个es是用户组,第一个es是普通用户,改为自己的用户组和用户
4、修改es各节点的配置文件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: certs/elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
5、启动各es节点,如果已经启动了则重启
启动命令见:《四、创建普通用户 & 启用es》
6、设置密码
想要成功设置密码的话,必须确保集群状态正常才行,否则密码设置会失败。
在其中一个节点上设置密码即可:
./bin/elasticsearch-setup-passwords interactive
- elastic 账号:拥有 superuser 角色,是内置的超级用户。
- kibana 账号:拥有 kibana_system 角色,用户 kibana 用来连接 elasticsearch 并与之通信。Kibana 服务器以该用户身份提交请求以访问集群监视 API 和 .kibana 索引。不能访问 index。
- logstash_system 账号:拥有 logstash_system 角色。用户 Logstash 在 Elasticsearch 中存储监控信息时使用。
- beats_system账号:拥有 beats_system 角色。用户 Beats 在 Elasticsearch 中存储监控信息时使用。
7、修改密码
curl -H "Content-Type:application/json" -XPOST -u elastic 'http://127.0.0.1:9401/_xpack/security/user/elastic/_password' -d '{ "password" : "新密码" }'