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

Zabbix数据库连接是否支持DNS SRV记录及替代配置方案咨询

Zabbix数据库连接是否支持DNS SRV记录及替代配置方案咨询

根据我对Zabbix和MySQL InnoDB集群的实际使用经验,先给你明确核心结论:Zabbix目前并不支持直接将DNS SRV记录(比如_mysql._tcp.example.com)作为数据库主机地址进行解析配置——不管是Zabbix Server的zabbix_server.conf配置文件,还是Web界面的数据库连接设置,都无法直接识别SRV格式的地址。

不过针对你的InnoDB集群场景,有几个可靠的替代方案可以解决这个问题:

  • 方案一:在Zabbix服务器/Web节点本地部署MySQL Router
    这是最推荐的方式,因为MySQL Router本身就是为InnoDB集群设计的代理组件,能自动解析SRV记录、处理节点故障转移和负载均衡。具体步骤大概是:

    1. 在Zabbix Server和Web服务器上分别安装MySQL Router;
    2. 用SRV记录初始化Router:执行mysqlrouter --bootstrap cluster_admin@_mysql._tcp.example.com --user=mysqlrouter(替换成你的集群管理员账号),这个命令会自动解析SRV记录并生成Router的配置文件;
    3. 启动MySQL Router服务,默认它会监听本地的6446端口(读写端口);
    4. 最后修改Zabbix的数据库连接配置:把DB host设为127.0.0.1,端口设为6446,其他用户名、密码等参数保持不变即可。
      这种方式下,Zabbix只需要和本地Router通信,Router会自动处理后端集群的节点切换,完全不需要Zabbix感知集群的拓扑变化。
  • 方案二:使用SRV解析代理工具
    如果你不想在每个Zabbix节点部署Router,可以用第三方的SRV解析代理工具(比如dns-srv-proxy这类轻量工具),让它监听本地端口,自动解析指定的SRV记录,并将数据库请求转发到对应的MySQL节点。不过这种方式需要额外维护代理工具的稳定性,可靠性不如官方的MySQL Router。

  • 不推荐:手动配置多个集群节点地址
    虽然Zabbix支持在DB host里填多个地址(用逗号分隔),但它只会按顺序尝试连接,无法自动感知集群的故障转移状态——当某个节点宕机后,Zabbix不会自动切换到其他可用节点,除非当前连接断开后重新尝试,这会导致监控中断,所以不适合InnoDB集群的动态拓扑场景。

另外还要注意,不管用哪种方案,都要确保Zabbix的数据库连接参数(比如字符集、认证插件)和MySQL集群的配置一致,避免出现连接失败的问题。

备注:内容来源于stack exchange,提问作者Ritz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 13:37:49