zabbix端item某项出现Value should be a JSON object错误。

明显数据格式错误,在zabbix server上进行get测试。

[root@ops-zabbix-server~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.2.7 -p 10050 -k "ipmi.dev[discovery,cpu]"
Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory
Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory
Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory
Get Device ID command failed
Unable to open SDR for reading
{
	"data":[
	 ]
}

如上,原来是获取数据出错。但是在agent端上获取数据是没有问题的。

[root@xenserver-gmkyokmz bin]# ./ipmi.sh discovery cpu
{
	"data":[
	 {
			"{#DEV}":"CPU1"},
	 {
			"{#DEV}":"CPU2"}
	 ]
}

并且相应的modprobe模块已经加载。经过多次搜索,无果。

后来仔细查看错误,发现Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory这个可能是权限问题导致的。查看此文件权限为 crw——- 1 root root 245, 0 Feb 14 2019 /dev/ipmi0 明显权限root所有,再查看zabbix运行用户

[root@xenserver-adgvucvt ~]# ps -ef|grep zabbix
zabbix     912     1  0 10:29 ?        00:00:00 /usr/local/zabbix/sbin/zabbix_agentd
zabbix     914   912  0 10:29 ?        00:00:43 /usr/local/zabbix/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix     915   912  0 10:29 ?        00:00:05 /usr/local/zabbix/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix     916   912  0 10:29 ?        00:00:04 /usr/local/zabbix/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix     917   912  0 10:29 ?        00:00:05 /usr/local/zabbix/sbin/zabbix_agentd: listener #3 [waiting for connection]
zabbix     918   912  0 10:29 ?        00:00:28 /usr/local/zabbix/sbin/zabbix_agentd: active checks #1 [idle 1 sec]

手动尝试给/dev/ipmi0增加权限777,然后测试就正常了。

[root@xenserver-gmkyokmz bin]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -p 10050 -k "ipmi.dev[discovery,cpu]"
{
	"data":[
	 {
			"{#DEV}":"CPU1"},
	 {
			"{#DEV}":"CPU2"}
	 ]
}

这两天搞zabbix监控,又学了不少东西啊。