一、需求说明
elasticsearch和kibana默认情况下均未使用用户登录验证,因为kibana对elasticsearch上索引具备增删改查的能力,为了数据安全我们需要配置用户验证。这里只针对已经现场部署的程序进行的升级和配置,具体配置参照如下步骤。
二、配置步骤
1、前置条件
已经完成elasticsearch和kibana的安装,安装步骤参照平台部署手册进行操作,涉及到的镜像可以从Harbor仓库中拉取。
2、修改elasticsearch配置文件
链接到部署平台的服务器,并进入到目录/data/es/config下,修改es的配置文件es.yml
1. [root@7a90ca1c4fef bin]# vim /data/es/config/es.yml
2. #添加如下配置
3. xpack.security.enabled: true
4. xpack.ml.enabled: true
5. xpack.security.transport.ssl.enabled: true
3、重启es
1. [root@7a90ca1c4fef bin]# docker restart es
4、配置elasticsearch密码
进入es容器当中的/usr/share/elasticsearch/bin目录下,检查是否安装了x-pack,如果提示以下信息说明已经默认安装。
1. [root@7a90ca1c4fef bin]# docker exec -it es /bin/bash
2. [root@7a90ca1c4fef bin]# ./elasticsearch-plugin install x-pack
3. ERROR: this distribution of Elasticsearch contains X-Pack by default
然后执行./bin/elasticsearch-setup-passwords interactive命令设置密码
1. [root@7a90ca1c4fef bin]# ./elasticsearch-setup-passwords interactive
2. Unexpected response code [403] from calling GET http://172.30.158.5:9200/_xpack/security/_authenticate?pretty
3. It doesn't look like the X-Pack security feature is available on this Elasticsearch node.
4. Please check if you have installed a license that allows access to X-Pack Security feature.
5.
6. ERROR: X-Pack Security is not available.
注意:在设置密码时如果出现上述情况,执行以下操作,如果没有出现则跳过。
由于这个版本默认带的license是basic的,不支持security这类商业特性。可以将license改为trial。退出容器,然后在物理机器上执行如下命令。
1. [root@TAGE_VT_PLATFORM config]# curl -H "Content-Type: application/json" -XPOST http://192.168.30.157:9200/_xpack/license/start_trial?acknowledge=true
2. {"acknowledged":true,"trial_was_started":true,"type":"trial"}
3. [root@TAGE_VT_PLATFORM config]#
然后进入容器,再次设置密码,这里设置密码会为es、kibane、logstash等设置相同的密码,全部选y并设置统一密码就可以。用户名统一为默认elastic
1. [root@7a90ca1c4fef bin]# docker exec -it es /bin/bash
2. [root@9287f1af91a0 bin]# ./elasticsearch-setup-passwords interactive
3. Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
4. You will be prompted to enter passwords as the process progresses.
5. Please confirm that you would like to continue [y/N]y
6.
7.
8. Enter password for [elastic]:
9. Reenter password for [elastic]:
10. Enter password for [apm_system]:
11. Reenter password for [apm_system]:
12. Enter password for [kibana]:
13. Reenter password for [kibana]:
14. Enter password for [logstash_system]:
15. Reenter password for [logstash_system]:
16. Enter password for [beats_system]:
17. Reenter password for [beats_system]:
18. Enter password for [remote_monitoring_user]:
19. Reenter password for [remote_monitoring_user]:
20. Changed password for user [apm_system]
21. Changed password for user [kibana]
22. Changed password for user [logstash_system]
23. Changed password for user [beats_system]
24. Changed password for user [remote_monitoring_user]
25. Changed password for user [elastic]
26. [root@9287f1af91a0 bin]#
访问ES地址查看是否需要密码登录,默认用户名为elastic:http://192.168.30.157:9200/_cluster/health?pretty
5、修改kibana配置
如下标红的命令一定要加,并且是ES配置的用户和密码。
1. [es@test1 kibana]$ vim /data/kibana/config/kibana.yml
2. #添加如下配置
3. server.name: kibana
4. server.host: "0.0.0.0"
5. elasticsearch.url: "http://192.168.30.157:9200"
6. elasticsearch.username: 'elastic'
7. elasticsearch.password: 'h123456'
8. xpack.monitoring.ui.container.elasticsearch.enabled: true
9. i18n.locale: "zh-CN"
6、重启kibana
1. [root@TAGE_VT_PLATFORM config]# docker rm -f kibana
2. kibana
3. [root@TAGE_VT_PLATFORM config]# sh /opt/itage/bin/kibana/start.sh
4. MIDDLE_WARE_VER中间件版本:v2.3.0
5. Error: No such container: kibana
6. 797c9af10442178312f0bccf12bf5a7e90caf98c7fb6d124fc4f7dd8b6dbe4b0
7. [root@TAGE_VT_PLATFORM config]#
7、重新访问kibana
8、登录后界面
配置了es和kibana用户名密码验证后,Java程序连接es同理需要添加用户名密码验证代码。只需要在yml文件中加入ES用户名和密码即可。
1. elasticsearch:
2. schema: http
3. address: 192.168.123.165 #你的服务器地址
4. connectTimeout: 5000
5. socketTimeout: 5000
6. connectionRequestTimeout: 5000
7. maxConnectNum: 100
8. maxConnectPerRoute: 100
9. UserName: elastic #elasticsearch账号
10. Password: h123456 #elasticsearch密码



