跳转至

zabbix_get 采集数据空值


2014-11-03 by dongnan

问题描述

使用 zabbix_get 采集一台新部署的服务器 zabbix_agent 返回空值,其它服务器没有问题。

zabbix_get -s 127.0.0.1 -k 'net.if.discovery'
{
"data":[]
}

使用 google 大法,可能是 selinux 问题导致的。

sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

解决方法

尝试关闭 selinux

编辑文件

vim /etc/selinux/config

确保为值为 disabled

SELINUX=disabled

重启服务器

sync && init 6

验证

selinux 关闭状态

sestatus
SELinux status:                 disabled

再次使用 zabbix_get 命令采集数据,返回数据正常。

zabbix_get -s 127.0.0.1 -k 'net.if.discovery'
{
"data":[
{
"{#IFNAME}":"lo"},
{
"{#IFNAME}":"em1"},
{
"{#IFNAME}":"em2"},
{
"{#IFNAME}":"bond0"}]}

扩展

最简单检测 zabbix服务端能否取到数据的方法,在服务端运行:

zabbix_get -s <客户端IP> -k "<客户端监控项的key值>"

例如
zabbix_get -s 172.27.244.30 -k "agent.ping"
  • 如果有数据返回,说明zabbix通信正常。
  • 如果返回ZBX_NOTSUPPORTED,说明监控项有问题。
  • 进入系统配置->主机->监控项,查看你的客户端主机的监控项是活跃还是不支持。
  • zabbix_agentd.conf 配置文件 Timeout参数默认为3秒如果脚本执行时间较长可以根据需求调整比如15秒。
回到页面顶部