Zabbix 中“无法解析主机名:无法解析主机:”

Zabbix 中“无法解析主机名:无法解析主机:”

尽管 Zabbix Active Agent 的 DNS 和主机名正确,但在 Zabbix 服务器中收到“无法解析主机名:无法解析主机:example.zabbixagent.com;名称或服务未知”的错误信息。这是 Zabbix 中的错误还是配置错误?请帮忙。

答案1

如果通过复制粘贴名称(而不是重新输入)从命令行解析此信息,则可能是您更改了resolv.conf。在早期版本的 Zabbix 中,更改该文件后必须重新启动守护进程。由于您没有指定 Zabbix 版本,因此假设您的版本仍然需要重新启动。

如果这没有帮助,请从主机属性复制主机 DNS 并执行pingdig或从服务器框执行类似操作,并确保将主机设置调整为正确的名称。

答案2

答案在评论经过用户427751

我发现问题出在外部 DNS 之外,没有使用最近为该特定主机配置的新域名进行更新。添加新域名并从 DNS 列表中删除旧域名后,Zabbix 服务器能够解决主机解析问题。

答案3

问题中没有提到,所以我认为可能不是,但如果 zabbix 在 docker 内部运行,则可能由于 docker 的网络配置而发生此错误。

解决方案要么是在 docker 守护进程配置中添加显式 dns 条目喜欢:

{
        ...
        "dns":["208.67.222.222","208.67.220.220"],
        ...
}

这对我来说很有效。我想,或者像建议的那样添加一个额外的主机网络条目这个答案也可能有效:

services:
  mycontainer:
    ...
    networks:
      ...
      - bridge
...
networks:
  ...
  bridge:
    external: true

测试时,请注意 curl 的域名解析比 ping 更挑剔,例如,你可能有

$ docker exec -ti mycontainer ping -c 3 myhost.example.com   # Works
$ docker exec -ti mycontainer curl myhost.example.com        # Fails

并且 zabbix 的网络监控使用/依赖于 curl,因此“ping 工作正常”还不足以进行很好的测试。

相关内容