You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署的Zabbix Server与Agent无法双向通信问题求助

问题排查与解决方案

核心问题定位

  1. 主机名不匹配导致的注册失败
    你看到的host [xxxxxx] not found报错是核心原因:zabbix/zabbix-agent 镜像默认会将容器ID作为自身的Hostname上报给Zabbix Server,但是你并未在Zabbix前端控制台添加对应Hostname的监控主机,因此Server会直接拒绝Agent的注册和上报请求。
  2. 监控项数值类型不匹配
    报错Value of type "string" is not suitable for value type "Numeric (unsigned)"是因为对应vfs.fs.size[/,pused]监控项的数值类型配置为「无符号数值」,但实际采集返回的是带小数的百分比数值,类型不兼容导致指标不生效。
  3. 偶发域名解析失败
    Agent日志里短暂的cannot resolve [zabbix-server]是启动顺序导致的:Agent启动时Zabbix Server还未完成初始化注册到Docker网络,后续解析恢复就属于正常状态,不需要特殊处理,也可以调整启动依赖优化。

具体解决步骤

  • 第一步:固定Agent主机名并配置允许的Server地址
    修改docker-compose.yml中zabbix-agent服务的配置,新增Hostname配置和允许的被动检查Server地址:
zabbix-agent:
  image: zabbix/zabbix-agent:latest
  container_name: pooyesh-zabbix-agent
  hostname: pooyesh-zabbix-agent # 新增这行,固定Agent的主机名
  privileged: true
  environment:
    - ZBX_SERVER_HOST=zabbix-server
    - ZBX_SERVERS=zabbix-server,127.0.0.1 # 新增这行,允许来自Zabbix Server的被动检查请求
  volumes:
    - pooyesh-zabbix-agent:/etc/zabbix/
  depends_on: # 新增启动依赖,保证Server先启动
    - zabbix-server
  • 第二步:在Zabbix前端添加对应监控主机
    访问zabbix前端(默认地址为你配置的http://本机IP:8090,默认管理员账号Admin,密码zabbix),进入「配置」-「主机」-「创建主机」:
    • 主机名称填写pooyesh-zabbix-agent(和上面配置的hostname完全一致)
    • 群组选择「Linux servers」或者自定义群组
    • Interfaces处添加Agent接口,IP地址填pooyesh-zabbix-agent(Docker网络内部服务名),端口填10050
    • 模板页签关联「Linux by Zabbix agent」模板
    • 点击添加即可
  • 第三步:修复不兼容的监控项
    如果是默认模板里的vfs.fs.size[/,pused]报错,进入该监控项的配置页面,将「类型的信息」从「Numeric (unsigned)」修改为「Numeric (float)」,保存后等待下次采集就会恢复正常。

验证方法

修改配置后执行docker-compose up -d --force-recreate zabbix-agent重启Agent服务,等待1-2分钟查看两边日志,没有host not found报错、前端主机列表对应的Agent可用性图标变绿即说明通信正常。

内容的提问来源于stack exchange,提问作者Emad Helmi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:45:03