为ELK配置密码访问, 以docker镜像sebp/elk为例
所有文件目录参考链接:Docker安装ELK8.x
1. 生成证书
- 进入docker容器:
docker exec -it elk /bin/bash
- 进入ES的bin目录:
cd /opt/elasticsearch/bin
- 生成ca文件,
./elasticsearch-certutil ca
,可以指定文件名,配置密码 - 生成节点秘钥文件,
./elasticsearch-certutil cert --ca elastic-stack-ca.p12
,可以指定文件名,配置密码 复制节点秘钥文件到各节点的指定目录下:
# 退出Dcoker容器, 在宿主机创建certs目录, 用于存放证书 mkdir /data/elk/elasticsearch/config/certs cd /data/elk/elasticsearch/config/certs # 从docker复制证书到宿主机 docker cp elk:/opt/elasticsearch/elastic-certificates.p12 . docker cp elk:/opt/elasticsearch/elastic-stack-ca.p12 . # 更改certs目录权限 cd /data/elk/elasticsearch/config chown -R 991 certs chgrp -R 991 certs
如果指定了秘钥文件密码,需要执行以下两条命令(不执行启动会报错,所有节点都要执行)
bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
实测会报错:
ERROR: will not overwrite keystore at [/etc/elasticsearch/elasticsearch.keystore], because this incurs changing the file owner
这个报错暂时没解决, 建议以上3-4步骤不要设置密码, 先跳过第6步
2. 配置elasearch开启密码
修改, 增加如下几行
vim /data/elk/elasticsearch/config/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
重启Docker容器
3. 设置密码
# 进入docker
docker exec -it elk /bin/bash
cd /opt/elasticsearch/bin
# 手动设置密码
./elasticsearch-setup-passwords interactive
# 在后面的提示中配置密码,配置密码即可, 会有很多个密码, 都配一样的
4. 为Kibana配置访问密码
vim /data/elk/kibana/config/kibana.yml:
# elk体系有很多的用户组,kibana是默认的用户组之一,可以使用默认的用户,也可以自定义用户
# 这里不能使用elastic账户
elasticsearch.username: "kibana"
elasticsearch.password: "1qaz@WSX3edc"
重启kibana或Docker容器docker restart elk
浏览器打开kibana页面, 使用elastic / 1qaz@WSX3edc 帐号登录
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。