解决zabbix_get 获取不到自定义key一例

解决zabbix_get 获取不到自定义key一例 

最近发现线上一个机器A无法ping通,***另一端机器B。请公司网络组的兄弟确认路由后(同一段的其他机器均正常),怀疑可能是的系统问题。之间决定让值班的同事在零晨重启网络服务。之后,杯具发生了......

零晨重启网络服务后,死都连不上这台机器A;接到夜晚值班同事的电话后,进行简单判断怀疑是系统问题;该机上所运行的应用对业务系统相当重要,立即连接到公司网络。考虑到对业务系统的影响,便立即在另外一台机器上快速恢复应用。之后,决定天亮上班后,再请管服务器的兄弟看看。

具体情况如下:

A机器应用: 1、业务系统   2、zabbix_proxy (接收线上其他业务系统监控数据)

具体操作如下:

找到C机器,设置双IP后重新安装业务系统与zabbix_proxy,发现监控正常后,回家睡觉。

关于zabbix 获取不到自定义key

下午上班看了一下监控,发现线上系统所有关于自定义key的数据都在A机器故障前。其他zabbix_proxy监控的节点,却没有这种情况。

 分析:

1、其他节点相同的自定义key是有数据的,表明我的自定义不存在问题,毕竟已经跑了很久了。

2、被C机器监控的节点,系统自带的key数据都是正常的,排除网络问题。

3、在C机器上使用zabbix_get 无法获取到节点的自定义key的值,基本上是返回一个空值。

经过多次验证,发现问题的根源其实很简单。

C机器  eth0  a.a.a.a (该机器本身的IP)  eth0:0 b.b.b.b (B机器的IP地址) 

原因: 被监控节点,发数据发送给b.b.b.b,在zabbix_proxy上执行zabbix_get时,使用的源地址是a.a.a.a,这就导致了使用zabbix_get返回空值。

解决方法:

方法1:使用脚本批量修改了被监控节点的Server地址为a.a.a.a 

方法2:修改zabbix_proxy的配置文件选项# SourceIP=b.b.b.b <已进行测试确认OK>

方法3: 把eth0 eth0:1 的IP互换一下<这个最简单,但是系统在跑,没法搞>

使用方法2时,使用zabbix_get时,返回的仍然是空值。但是zabbix_server/zabbix_proxy是能够正常接收的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章