git地址:github.com/amir20/dozz…
设置身份验证:dozzle.dev/guide/authe…
远程主机设置:dozzle.dev/guide/remot…
注意啊!!! 别通过这个下载大日志文件,小心榨干内存,影响服务
dozzle简介
Dozzle 是 一款基于接口来监视Docker日志的轻量级的应用,它不存储任何日志文件,而仅仅是实时监视你的容器日志。
本机启动dozzle服务
生成密码:
#安装shasum命令
yum install perl-Digest-SHA
#生成密码
echo -n 密码 | shasum -a 256
echo -n '密码' | sha256sum
users.yml
users:
# "admin" here is username
admin:
name: "admin"
# Just sha-256 which can be computed with "echo -n password | shasum -a 256"
password: "f15c16b99f82d8201767d3a841ff40849c8a1b812ffbfd2e393d2b6aa6682a6e"
email: me@email.net
启动带认证服务
docker run -d -p 9992:8080 --name dozzle --network=elk -v /var/run/docker.sock:/var/run/docker.sock -v /docker/dozzle:/data amir20/dozzle:v7.0.2 --auth-provider simple --hostname node80



设置为中文

远程windows下docker desktop
宿主机IP:192.168.50.139
开启守护进程服务端口2375(生产环境需要配置证书)

关闭防火墙

启动dozzle服务
docker run -d -p 9992:8080 --name dozzle --network=elk -v /var/run/docker.sock:/var/run/docker.sock -v /docker/dozzle:/data -e "DOZZLE_ENABLE_ACTIONS=true" -e "DOZZLE_REMOTE_HOST=tcp://192.168.50.139:2375|local" amir20/dozzle:v7.0.2 --auth-provider simple --hostname node80

远程其他linux下docker服务
服务节点: 192.168.137.81
开启守护进程服务端口2375(生产环境需要配置证书)
#编辑文件
vim /usr/lib/systemd/system/docker.service
#修改ExecStart的值,添加-H tcp://0.0.0.0:2375如下:
-H tcp://0.0.0.0:2375
#重载systemctl配置
systemctl daemon-reload
#重启 Docker
service docker restart
#查看Docker服务状态
service docker status
#开放5672端口
firewall-cmd --zone=public --add-port=2375/tcp --permanent
#配置立即生效
firewall-cmd --reload

启动dozzle服务
docker run -d -p 9992:8080 --name dozzle --network=elk -v /var/run/docker.sock:/var/run/docker.sock -v /docker/dozzle:/data -e "DOZZLE_ENABLE_ACTIONS=true" -e "DOZZLE_REMOTE_HOST=tcp://192.168.50.139:2375|local,tcp://192.168.137.81:2375|node81" amir20/dozzle:v7.0.2 --auth-provider simple --hostname node80

远程其他linux下docker服务(使用TLS证书)
节点规划
| 节点IP | 部署服务 |
|---|---|
| 192.168.137.80 | dozzle、go01 |
| 192.168.137.81 | go01 |
| 192.168.137.82 | go01 |
使用脚步生成证书(分别81和82节点进行操作)
生成证书的脚本:gitee.com/dromara/Jpo…
wget https://gitee.com/dromara/Jpom/raw/master/script/docker-tls.sh
sh docker-tls.sh
脚本只有一个输入项,输入本机IP

生成证书

开启守护进程服务端口2375并设置证书(分别81和82节点进行操作)
#编辑文件
vim /usr/lib/systemd/system/docker.service
#修改ExecStart的值,添加-H tcp://0.0.0.0:2375如下:
-H tcp://0.0.0.0:2375 --tlsverify --tlscacert=/app/tls/ca.pem --tlscert=/app/tls/server-cert.pem --tlskey=/app/tls/server-key.pem
#重载systemctl配置
systemctl daemon-reload
#重启 Docker
service docker restart
#查看Docker服务状态
service docker status
#开放5672端口
firewall-cmd --zone=public --add-port=2375/tcp --permanent
#配置立即生效
firewall-cmd --reload
80节点上传81和82节点证书
#创建此目录,上传81节点 key.pem、ca.pem、cert.pem证书
cd /app/cert/192.168.137.81
#创建此目录,上传82节点 key.pem、ca.pem、cert.pem证书
cd /app/cert/192.168.137.82


80节点启动dozzle服务(挂载证书目录)
多个节点证书挂载,使用{host}进行区分,如dozzle容器的/certs/192.168.137.81;
单个节点直接挂载在/certs下;
docker run -d -p 9992:8080 --name dozzle --network=elk -v /var/run/docker.sock:/var/run/docker.sock -v /docker/dozzle:/data -v /app/cert/192.168.137.81:/certs/192.168.137.81 -v /app/cert/192.168.137.82:/certs/192.168.137.82 -e "DOZZLE_ENABLE_ACTIONS=true" -e "DOZZLE_REMOTE_HOST=tcp://192.168.137.81:2375|node81,tcp://192.168.137.82:2375|node82" amir20/dozzle:v7.0.2 --auth-provider simple --hostname node80
查看dozzle服务

过滤容器
DOZZLE_FILTER 是一个用于过滤容器日志的选项,允许你只查看符合指定条件的容器日志。
详细说明:
- 默认值:
""(空字符串),表示不过滤任何容器,显示所有容器的日志。 - 作用: 通过为
DOZZLE_FILTER传递容器名称的子字符串或正则表达式,Dozzle 会仅显示匹配该条件的容器的日志。多个条件可以通过逗号分隔。
指定容器名称筛选:
- 过滤特定容器:
DOZZLE_FILTER="nginx"将只显示包含nginx的容器日志。 - 使用多个过滤条件:
DOZZLE_FILTER="nginx,redis"可以同时显示nginx和redis容器的日志。
通过这个选项,可以更轻松地聚焦特定容器的日志,而不是查看所有容器的输出。
结合容器标签筛选
为容器添加标签:
你可以在启动容器时使用 Docker 标签(labels)来标识容器。
#使用 docker run 命令时可以指定标签
docker run -d --label app=webserver nginx
docker run -d --label app=database redis
通过标签值进行过滤:你可以在 DOZZLE_FILTER 中指定标签名和值的格式来过滤容器日志。
例如,过滤标签为 app=webserver 的容器:
#这将只显示打上 app=webserver 标签的容器(如 nginx)的日志
DOZZLE_FILTER="label=app=webserver"
多标签或条件过滤:
如果你想过滤多个标签或条件,可以使用逗号分隔不同的标签或过滤条件:
#这个示例会筛选同时具有 app=webserver 和 env=production 标签的容器日志
DOZZLE_FILTER="label=app=webserver,label=env=production"
标签与容器名称混合过滤:
你还可以将基于容器名称的过滤和基于标签的过滤结合起来。例如:
DOZZLE_FILTER="nginx,label=app=database"
此命令会显示容器名称包含 nginx 的日志,以及带有 app=database 标签的容器日志
结束!!!