Question:在给zabbix定义监控的时候,zabbix脚本获取的值与zabbix获取到的值不一样
实际获得的值:
zabbix获得的数据为5
排查方法:
首先将脚本中的wc -l去掉,通过zabbix获取脚本的输出:
发现权限不够!!
解决方法:
1.更改/etc/passwd文件将zabbix这一行的最后/sbin/nologin改为/bin/bash使得zabbix可以登陆
2.执行su zabbix进入zabbix用户,执行命令,发现返回值和通过zabbix的获得值是一样的(5),发现zabbix没有权限使用lsof命令查看特定pid,可是zabbix无法使用sudo命令,于是就需要给zabbix添加执行sudo的命令,
3.退出到root用户,执行visudo 在root ALL=(ALL) ALL这一行下面添加
zabbix ALL=NOPASSWD: /sbin/lsof(赋予zabbix能够使用sudo lsof的命令)
3.在脚本中的lsof前面添加sudo命令,成功解决
4.将/etc/passwd文件zabbix这一行再改回原来的/sbin/nologin
附:自定义项接收不到数据可能原因(web界面的监控项表现一般为(不支持))
1、zabbix agent的配置文件
2、脚本里的变量等是否写绝对路径
3、防火墙
4、selinux