如何使用Zabbix实现MongoDB监控,现有模板配置不生效该如何排查
MongoDB监控故障排查步骤
1. 基础组件兼容性校验
- 首先确认Ubuntu 18.04主机上部署的是Zabbix Agent 2而非传统Zabbix Agent:执行
dpkg -l | grep zabbix查看安装包名称,传统Agent包名为zabbix-agent,Agent2包名为zabbix-agent2,MongoDB官方模板依赖Agent2原生插件,传统Agent不支持该监控能力 - 检查Agent2配置文件
/etc/zabbix/zabbix_agent2.conf的Server、ServerActive参数已正确指向Zabbix Server地址,修改配置后执行systemctl restart zabbix-agent2重启服务生效
2. MongoDB权限及连接校验
- 若MongoDB开启了身份认证,需为监控创建专用账号,账号需具备
clusterMonitor角色权限,创建参考语句:
use admin db.createUser({ user: "zabbix_monitor", pwd: "自定义监控密码", roles: [{role: "clusterMonitor", db: "admin"}] })
- 若MongoDB未开启身份认证,直接在Ubuntu 18.04本地执行
mongo --eval "db.serverStatus()",确认命令可正常返回实例状态数据 - 执行
ss -tunlp | grep 27017确认MongoDB默认端口27017正常监听,且/etc/mongod.conf中的bindIp配置允许127.0.0.1本地访问
3. Zabbix模板与宏配置校验
- 确认绑定的MongoDB模板为Zabbix 5.0版本兼容的模板,过高版本的模板与5.0 Server存在兼容性问题,会导致数据无法正常采集
- 检查主机宏配置是否正确填写MongoDB连接参数:
{$MONGODB.USER}:填写创建的MongoDB监控用户名,无认证场景留空{$MONGODB.PASSWORD}:填写对应监控密码,无认证场景留空{$MONGODB.PORT}:填写MongoDB监听端口,默认值为27017{$MONGODB.CONNSTRING}:自定义连接场景填写,常规单实例场景留空即可
- 配置完成后在Zabbix Server端执行测试命令验证采集能力:
zabbix_get -s <Ubuntu18.04主机IP> -p 10050 -k "mongodb.ping",返回值为1说明连接正常,返回其他值可判定为配置异常
4. 日志定位根因
若上述配置均无问题仍无法采集数据,查看Agent2运行日志定位具体报错:执行tail -f /var/log/zabbix/zabbix_agent2.log搜索MongoDB相关报错,常见报错包含权限不足、连接被拒绝、认证失败等,根据报错内容调整对应配置即可。
内容的提问来源于stack exchange,提问作者Nguyen Xuan Tung
相关产品推荐
相关产品推荐

