elasticsearch集群部署

一、下载软件

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" : "新密码" }'

 

 

 

 

posted @ 2022-04-26 14:35  harara  阅读(114)  评论(0编辑  收藏  举报

目录导航