1.创建kibana容器并启动
docker run -it \
-p 5601:5601 \
--name kibana \
--restart=always \
--log-driver \
json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
kibana:8.3.3
2.另开一个窗口登录服务器
执行
docker cp kibana:/usr/share/kibana/config /home/mfw/elk/kibana/
docker cp kibana:/usr/share/kibana/data /home/mfw/elk/kibana/
docker cp kibana:/usr/share/kibana/plugins /home/mfw/elk/kibana/
docker cp kibana:/usr/share/kibana/logs /home/mfw/elk/kibana/
3.给挂载目录设置权限,使容器内外权限一致,kibana内部用户gid:1000,uid:1000
停掉kibana容器;
设置权限
chown -R 1000:1000 ~/elk/kibana
4.创建kibana运行脚本
mkdir ~/elk/kibana/shell/
vim ~/elk/kibana/shell/kibana.sh
docker run -itd \
-p 5601:5601 \
--name kibana \
--restart=always \
-v /home/mfw/elk/kibana/config:/usr/share/kibana/config \
-v /home/mfw/elk/kibana/data:/usr/share/kibana/data \
-v /home/mfw/elk/kibana/plugins:/usr/share/kibana/plugins \
-v /home/mfw/elk/kibana/logs:/usr/share/kibana/logs \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
kibana:8.3.3
5.kibana运行脚本赋予执行权限
chmod +x ~/elk/kibana/shell/kibana.sh
6.启动kibana配置elasticsearch
#删除kibana容器
docker rm -f kibana
#创建kibana容器并启动(非后台模式)
docker run -it \
-p 5601:5601 \
--name kibana \
--restart=always \
-v /home/mfw/elk/kibana/config:/usr/share/kibana/config \
-v /home/mfw/elk/kibana/data:/usr/share/kibana/data \
-v /home/mfw/elk/kibana/plugins:/usr/share/kibana/plugins \
-v /home/mfw/elk/kibana/logs:/usr/share/kibana/logs \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
kibana:8.3.3
7.浏览器访问http://kibana所在服务器ip:5601
8.在浏览器里面配置连接elasticsearch
配置前kibana.yml内容
在浏览器里面输入token(elasticsearch启动日志里面找)
ℹ️ Configure Kibana to use this cluster:
• Run Kibana and click the configuration link in the terminal when Kibana starts.
• Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
eyJ2ZXIiOiI4LjMuMyIsImFkciI6WyIxOTIuMTY4LjE4Mi4xMjg6OTIwMCJdLCJmZ3IiOiI5ZmVmY2ZjYjZmYzllODBmNGVjYjc4NzNiMGU0ZDRmNTI0ZjU5N2EyMjgyNjViYzJkZDE1ZDY5MzZhNjUxZGE4Iiwia2V5IjoiUEp5OTM0WUJWX1drWExuREc2Z1c6OGFJVEhwMzJRZDJfWWl5MVRPcmdpQSJ9
此时在kibana服务日志里面会出现验证码
在浏览器输入验证即可
如果出现错误
Couldn't configure Elastic
Generate a new enrollment token or configure manually.
说明token过期了,需要重新生成一个(elasticsearch生成的token只有半个小时有效期)
进入elasticsearch容器
docker exec -it elasticsearch /bin/bash
进入elasticsearch的bin目录
cd /usr/share/elasticsearch/bin
./elasticsearch-create-enrollment-token -s kibana --url "https://192.168.182.128:9200"
这里提示命令权限是root而当前账户是elasticsearch
解决办法,使用root登录容器
docker exec -u root -it elasticsearch /bin/bash
./elasticsearch-create-enrollment-token -s kibana --url "https://192.168.182.128:9200"
将生成的token再次复制到浏览器上
9.解决报错
查看kibana配置文件
vim ~/elk/kibana/config/kibana.yml
经过浏览器配置后,kibana的配置文件已经被修改了
添加两行配置
i18n.locale: "zh-CN"
server.publicBaseUrl: "http://kibana服务所在ip:5601"
10.删除之前创建的kibana容器并运行启动脚本
docker rm -f kibana
~/elk/kibana/shell/kibana.sh
11.浏览器登录kibana验证
登录用户名密码来自于elasticsearch日志
ℹ️ Password for the elastic user (reset with bin/elasticsearch-reset-password -u elastic
):
+4TMJBgOpjdgH+1MJ0nC
登录成功表示kiban部署成功
下一篇
docker搭建简单elk日志系统4