Elasticsearch集群搭建(含开启安全认证详细步骤)

 

环境:

Elasticsearch: 6.8.0

Kibana: 6.8.0

1.下载Elasticsearch的tar.gz包

    地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.0.tar.gz

2.解压

    tar -zxvf https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.0.tar.gz

3.单机版是可以直接启动的

./bin/elasticsearch -d

  项目是可以直接启动的,访问http://localhost:9200就可以了。

  至此,单机版ES就完成了。

4.集群搭建  

vim /config/elasticsearch.yml

  添加一下配置:

cluster.name: my_cluster
node.name: node-1
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["你的IP1:9300","你的IP2:9300","你的IP3:9300"]
discovery.zen.minimum_master_nodes: 1

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

  需要修改的地方:你的IP部分替换成对应的IP地址就行了。

  其他两个节点:

cluster.name: my_cluster
node.name: node-2
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["你的IP1:9300","你的IP2:9300","你的IP3:9300"]
discovery.zen.minimum_master_nodes: 1

bootstrap.memory_lock: false
bootstrap.system_call_filter: false
cluster.name: my_cluster
node.name: node-2
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["你的IP1:9300","你的IP2:9300","你的IP3:9300"]
discovery.zen.minimum_master_nodes: 1

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

 5.逐个启动节点

./bin/elasticsearch -d

到此,集群就搭建成功了。

6.访问:http://你的IP1:9200 看到如下界面,说明启动成功了。

Elasticsearch集群搭建(含开启安全认证详细步骤)_第1张图片

到这里,大家可能觉得就结束了。

But,这个集群是没有安全认证的,在生产环境,这样的集群是及其容易被人攻击的。

所以,想要建立以安全的ES集群,请往下看:

开启ES集群的安全认证之路

(这里说明一下,ES集群之间的节点是通过凭证来通信的,所以才有生成凭证这一步骤,大家别不耐烦,耐心看,仔细操作,能成功的)

1. 生成证书:

./bin/elasticsearch-certutil ca

中间会让输入路径跟密码,路径可以不输,直接回车,但是密码还要设置一下的,为了安全嘛,我们就假定密码就是:123456

完成后会生成一个文件:elastic-stack-ca.p12

2.生成秘钥

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

中间需要输入刚才设置的密码就直接输入就可以了,需要输入路径的地方就直接回车,别输了,然后会生成一个文件:elastic-certificates.p12

这个就是ES的各个节点之间通信的凭证了。

这里说明一下,一个ES集群生成一个凭证就可以了,其他节点不许要生成凭证。

3.将凭证迁移到指定目录

mv /bin/elastic-certificates.p12 /config/certificates/

记得修改一下文件的权限(否则启动的时候会有权限问题):

chmod 777 /config/certificates/elastic-certificates.p12

4.修改配置文件

vim /config/elasticsearch.yml

修改内容如下(把路径替换成相应的路径可以了):

cluster.name: my_cluster
node.name: node-1
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["你的IP1:9300","你的IP2:9300","你的IP3:9300"]
discovery.zen.minimum_master_nodes: 1

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

xpack.security.enabled: true
xpack.security.authc.accept_default_password: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path:/elasticsearch/config/certificates/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path:/elasticsearch/config/certificates/elastic-certificates.p12

5. 将凭证同步到另外两个节点,同步骤3、4

另外两节点的配置:

cluster.name: my_cluster
node.name: node-2
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["你的IP1:9300","你的IP2:9300","你的IP3:9300"]
discovery.zen.minimum_master_nodes: 1

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

xpack.security.enabled: true
xpack.security.authc.accept_default_password: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path:/elasticsearch/config/certificates/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path:/elasticsearch/config/certificates/elastic-certificates.p12
cluster.name: my_cluster
node.name: node-3
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["你的IP1:9300","你的IP2:9300","你的IP3:9300"]
discovery.zen.minimum_master_nodes: 1

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

xpack.security.enabled: true
xpack.security.authc.accept_default_password: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path:/elasticsearch/config/certificates/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path:/elasticsearch/config/certificates/elastic-certificates.p12

6.这时候,大家是不是觉得可以启动集群了?错!!!还差最后一步:你还需要在各个节点上添加密码

bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password

输入密码:123456(之前设定的密码,请往上看)

bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password

输入密码:123456(之前设定的密码,请往上看)

7.逐个启动节点

./bin/elasticsearch -d

8.这时候打开  http://你的IP1:9200 看到如下画面

Elasticsearch集群搭建(含开启安全认证详细步骤)_第2张图片
大家可能会有疑问了,我的账号跟密码在哪里呢?刚才的密码么?

不是的,同学们,我们还没设置密码呢。

9.设置密码:

/bin/elasticsearch-setup-passwords  interactive

然后逐个设置吧,记住,中间会有一个elastic账号的密码,然后在用户名跟密码栏填写上就可以了。

至此ES集群的账号跟密码就设置完成了。

 

如果问题想咨询,可加企鹅:782861070

你可能感兴趣的:(Elasticsearch)