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秒。