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