You need to enable JavaScript to run this app. 如何修改Zabbix Agent以监控TLS加密的Docker守护进程套接字
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Zabbix Agent以监控TLS加密的Docker守护进程套接字

Docker 配置TLS加密后Zabbix Agent Docker监控失效的处理方案

故障核心原因

  • 原zabbix_module_docker.so模块默认通过本地匿名unix socket(/var/run/docker.sock)连接Docker daemon获取监控数据,当Docker daemon开启TLS加密保护后,会收紧本地socket的访问权限、同时对所有跨socket连接强制校验客户端证书,原模块没有携带合法TLS凭证,因此无法正常和daemon通信,导致监控中断。

具体调整步骤

1. 配置Zabbix进程的证书访问权限

  • 定位Docker开启TLS时生成的客户端证书存储目录,常规包含三个核心客户端访问凭证:CA根证书、客户端公钥证书、客户端私钥
  • 调整证书文件的属主和权限,确保Zabbix Agent的运行用户(默认用户为zabbix)拥有三个凭证的只读权限,避免出现证书读取失败的问题。

    注意:客户端私钥不要设置全局可读权限,防止证书泄露造成Docker daemon被未授权访问。

2. 修改Zabbix侧的Docker模块连接配置

编辑/etc/zabbix/zabbix_agentd.conf.d/docker.conf配置文件,替换原模块依赖的默认socket连接逻辑,显式指定带TLS校验的连接参数,参考配置示例:

# 加载Docker监控模块(原有配置保留)
LoadModule=zabbix_module_docker.so
# 指定开启TLS后Docker daemon的本地监听地址(默认TLS监听端口为2376)
DockerEndpoint=tcp://127.0.0.1:2376
# 指定三个TLS凭证的绝对路径
DockerTLSCA=/etc/docker/tls/ca.pem
DockerTLSCert=/etc/docker/tls/client-cert.pem
DockerTLSKey=/etc/docker/tls/client-key.pem

3. 重启服务并验证可用性

  • 重启Zabbix Agent进程,使新的模块配置生效
  • 本地使用zabbix_get命令拉取Docker相关监控项的数据,确认模块可以正常返回容器状态、资源占用等指标
  • 检查Zabbix Agent运行日志,排除TLS握手失败、权限拒绝、连接超时类的报错

常见问题排查

  • 若配置后依然无法连接,需确认本地防火墙规则未拦截127.0.0.1对2376端口的回环访问,无需对全网段开放该端口权限
  • 确认配置的证书是客户端访问凭证,而非Docker daemon使用的服务端证书,避免证书角色不匹配导致TLS校验失败
  • 若使用的zabbix_module_docker版本过低,不支持自定义TLS连接参数,需先升级模块版本到支持TLS配置的版本,再完成上述参数配置

内容的提问来源于stack exchange,提问作者محسن عباسی

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.08 11:27:03