Zabbix7.4.8(三):通过Zabbix agent 2监控Docker相关指标

一、Docker插件配置 file (docker.conf)

#vi docker.conf

请注意:

默认值反映进程默认值,而不是随配置文件提供的值;

Zabbix 仅支持使用 UTF-8 编码且不带 BOM 的配置文件;

以 "#" 开头的注释仅支持位于行首。

|-------------------------|------------|------------|-----------------------------|-------------------------------------------------------|
| 参数 | 必填 | 范围 | 默认值 | 说明 |
| Plugins.Docker.Endpoint | no | | unix:///var/run/docker.sock | Docker 守护进程 unix-socket 位置。 必须包含 scheme(仅支持 unix://)。 |
| Plugins.Docker.Timeout | no | 1-30 | 全局超时时间 | 请求执行超时时间(单位为秒,表示在关闭请求之前等待其完成的时长)。 |

二、启动agent2

docker run --name docker-agent2 -e TZ=Asia/Shanghai -e ZBX_HOSTNAME="docker_204" -e ZBX_SERVER_HOST="172.22.0.1" -e ZBX_SERVER_PORT="10051" --network=sinops_network -p 10053:10050 -v /home/third_party_app/zbx_instance/zabbix-agent2/zabbix:/etc/zabbix --restart unless-stopped -v /var/run/docker.sock:/var/run/docker.sock:ro --group-add $(stat -c %g /var/run/docker.sock) -d zabbix/zabbix-agent2:ubuntu-7.0-latest

注:

-v /var/run/docker.sock:/var/run/docker.sock:ro 挂载 Docker Socket(只读),用于访问 API

-e ZBX_HOSTNAME="docker_204" 在 Zabbix Server 中添加主机时使用的主机名(必须一致)

-e ZBX_SERVER_HOST="172.22.0.1" sinops_network 的网关。

关键参数:--group-add $(stat -c %g /var/run/docker.sock)

它会自动获取宿主机 docker.sock 的组 ID(通常是984或 docker 组),并把容器内的 zabbix 用户加入该组。

2.1容器里面查看docker版本

zabbix_agent2 -t docker.info

docker.info s\|{"Id":"90686664-e6f2-4b35-8bf4-dcfcbfd2cfc5","Containers":26,"ContainersRunning":25,"ContainersPaused":0,"ContainersStopped":1,"Images":40,"Driver":"overlay2","MemoryLimit":true,"SwapLimit":true,"KernelMemory":false,"KernelMemoryTCP":false,"CpuCfsPeriod":true,"CpuCfsQuota":true,"CPUShares":true,"CPUSet":true,"PidsLimit":true,"IPv4Forwarding":true,"BridgeNfIptables":false,"BridgeNfIP6tables":false,"Debug":false,"NFd":318,"OomKillDisable":false,"NGoroutines":307,"LoggingDriver":"json-file","CgroupDriver":"systemd","NEventsListener":0,"KernelVersion":"6.14.0-29-generic","OperatingSystem":"Ubuntu 24.04.2 LTS","OSVersion":"24.04","OSType":"linux","Architecture":"x86_64","IndexServerAddress":"https://index.docker.io/v1/","NCPU":56,"MemTotal":135053045760,"DockerRootDir":"/home/third_party_app/docker","Name":"master","ExperimentalBuild":false,"ServerVersion":"28.2.2","ClusterStore":"","ClusterAdvertise":"","DefaultRuntime":"runc","LiveRestoreEnabled":false,"InitBinary":"docker-init","SecurityOptions":\["name=apparmor","name=seccomp,profile=builtin","name=cgroupns","Warnings":null}]

2.2监控效果

三、zabbix agent连接图

Zabbix agent 2 在 Linux 上通过 UNIX 套接字、在 Windows 上通过命名管道与插件进行双向连接。

下图展示了 Zabbix agent 2 与可加载插件之间的通信过程以及指标收集过程。

四、疑问

​​​​​​​进入容器时报groups: cannot find name for group ID 984,但Zabbix 能正常监控 Docker,这是为什么?

权限判定依据是:进程的有效 GID 是否匹配 /var/run/docker.sock 的组

/var/run/docker.sock 属于 root:984,权限为 srw-rw----

容器中 zabbix 用户的附加组包含 GID 984(即使没有名字)

所以 zabbix 进程有 读写权限,可以连接 Docker Daemon

结论:组名只是"别名",权限看的是 GID 数字

ls -l /var/run/docker.sock

相关推荐
qq_185198691 小时前
Docker 历史版本
docker
m0_738120721 小时前
渗透测试基础——基于Docker的Rsync服务靶场搭建与原理讲解
运维·服务器·网络·安全·web安全·docker·容器
杨浦老苏4 小时前
PDF文档管理平台PDFManager
docker·pdf·工具·群晖
ai产品老杨5 小时前
解耦异构安防:基于 Docker 与边缘计算的 AI 视频管理平台,如何实现 GB28181/RTSP 统一接入与全源码交付
人工智能·docker·边缘计算
骑上单车去旅行5 小时前
openEuler 22.03 离线源码编译 Zabbix 7.0.27 完整最终整合手册
linux·运维·服务器·zabbix
极客先躯6 小时前
高级java每日一道面试题-2026年02月09日-实战篇[Docker]-Docker 容器有哪些安全风险?如何缓解?
java·运维·网络·安全·docker·容器
yuanzhengme6 小时前
Ollama【部署 07】搭建本地智能体的简单说明(局域网离线部署Ollama+模型迁移+Docker部署AnythingLLM)
运维·docker·容器·大模型·ollama·本地智能体
想要成为计算机高手6 小时前
用meta quest 3 遥操宇树机器人-xr_teleoperate 复现(含docker安装与配置方式)
人工智能·docker·机器人·xr·g1·具身智能
“码”力全开7 小时前
云边端协同架构:基于 Docker 与边缘计算的 GB28181/RTSP 异构视频 AI 管理平台设计(附源码交付)
人工智能·docker·架构
IVEN_7 小时前
本地正常,Docker 怎么就空白:Next.js SSR 的 Alpine musl DNS 陷阱
前端·docker·next.js