kibana添加认证及权限--elasticsearch集群版
1 基础环境
关闭防火墙和selinux,配置好/etc/hosts,修改最大连接数,配置好本地源和阿里源,安装jdk1.8;
操作系统:centos7.5
机器信息:
主机名 |
ip |
服务 |
elk1 |
192.168.1.223 |
jdk1.8,es7.2 |
elk2 |
192.168.1.224 |
jdk1.8,es7.2,kibana |
elk3 |
192.168.1.225 |
jdk1.8,es7.2 |
2.安装kibana
1.版本号需要和Elasticsearch 相同,此次试验安装在elk2(192.168.1.224)上; #yum -y install kibana 2.配置Kibana #cp /etc/kibana/kibana.yml /etc/kibana/kibana.yml.bak #编辑Kibana主配置文件 #vim /etc/kibana/kibana.yml server.port: 5601 #或者"0.0.0.0" server.host: "192.168.1.224" #elasticsearch主节点 elasticsearch.hosts: "http://192.168.1.224:9200" kibana.index: ".kibana" #配置kibana日志输出到哪里 logging.dest: /home/kibana/log/kibana.log #支持中文 i18n.locale: "zh-CN" 3.创建日志目录文件 #mkdir -pv /home/kibana/log/ #touch /home/kibana/log/kibana.log #chmod o+rw /home/kibana/log/kibana.log 4.启动kibana服务,并检查进程和监听端口: #systemctl enable kibana #systemctl start kibana #ps aux | grep kibana #netstat -tlanp |grep 5601
5.然后在浏览器里进行访问,如:http://192.168.1.224:5601/ ,此时是没有用户名和密码的,可以直接访问的:
注意:kibana6.7及以后的版本自带中文支持;
3. kibana 添加登录及权限
官方宣布从6.8和7.1开始,免费提供多项安全功能。其中包括tls加密通信,基于角色访问控制等功能。
可以使用企业CA证书来完成这一步骤,但是一般情况下,我们可以通过elasticsearch自带的elasticsearch-certutil的命令生成证书,
然后各节点通过该证书可以进行安全通信。
1.生成证书
搭建好了elasticsearch集群,在主节点(192.168.1.224)上操作,进入elasticsearch目录,然后执行以下命令。 #使用yum方式安装的可执行文件路径 #cd /usr/share/elasticsearch #生成证书到配置文件目录 #bin/elasticsearch-certutil cert -out /etc/elasticsearch/elastic-certificates.p12 -pass ""
注意:此处elasticsearch为集群版,与单节点版添加登录权限不一致;
# 成功提示
上面命令执行成功后,会在/etc/elasticsearch/文件夹下生成elastic-certificates.p12证书。 # chmod 644 elastic-certificates.p12
注意:默认证书权限是600,需要更改证书权限,否则运行elasticsearch程序的用户没有权限读取,会造成elasticsearch启动失败;
2.编辑配置文件,开启证书访问
在主节点上编辑配置文件/etc/elasticsearch/elasticsearch.yml,添加内容如下(注意证书路径) #vim /etc/elasticsearch/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:elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: elastic-certificates.p12 将上面步骤生成的elastic-certificates.p12证书复制到另外两个es节点上对应的/etc/elasticsearch/文件夹中, 同时将上面配置内容也都复制到对应节点的elasticsearch.yml文件里; #三个节点上都操作重启 #systemctl restart elasticsearch #systemctl status elasticsearch
3.设置密码
启动三个节点,待节点启动完毕之后,在主节点上elasticsearch目录,执行以下命令,进行密码设置: #cd /usr/share/elasticsearch #bin/elasticsearch-setup-passwords interactive
为了方便后续使用,这里密码都设置成一样;password: 123456
生成的用户:apm_system/kibana/logstash_system/beats_system/remote_monitoring_user/elastic
密码都是123456
4.验证集群设置的账号和密码
打开浏览器访问这个地址,出现需要输入账号密码的界面证明设置成功,集群的一个节点
http://192.168.1.224:9200/_security/_authenticate?pretty
账号密码:elastic/123456
5.Kibana组件访问带有安全认证的Elasticsearch集群
配置文件kibana.yml中修改以下配置 #vim /etc/kibana/kibana.yml elasticsearch.username: "elkstack" elasticsearch.password: "elkstack123456" #重启kibana生效 #systemctl restart kibana #systemctl status kibana
#重新登录http://192.168.1.224:5601,我们将会使用elastic超级用户进行登录
账号密码:elastic/123456
注意:可以在 Kibana 中配置基于角色的访问控制,即创建角色和用户后,使用不同的用户登录只能看到自己被授权的部分;
----------------------------------------------------------------------------------------------
参考链接:https://www.elastic.co/cn/blog/getting-started-with-elasticsearch-security