天天看点

zabbix 自动发现Discovery无法获取主机

在正确配置了zabbix的 Discovery和Actions后,等待一段时间,发现zabbix并没有和预想中的一样获取到主机信息。

检查zabbix的日志文件

tail -n 100 /tmp/zabbix_server.log ##倒序查看日志文件
           

发现有 报错

8178:20170905:122117.849  /usr/sbin/fping: [2] No such file or directory
           

原因是zabbix 3之后把ping更换为fping了,所以需要安装fping

wget http://www.fping.org/dist/fping-3.16.tar.gz
tar -zxvf fping-3.16.tar.gz
cd fping-3.16
./configure --prefix=/usr/local/fping
make && make install
           

zabbix-server的默认设置fping的路径为 /usr/sbin/fping 

修改zabbix的配置文件

设置 FpingLocation=/usr/local/fping/sbin/fping 可以手动修改:

vim /usr/local/zabbix/etc/zabbix_server.conf
           

也可以使用命令直接替换:

sed -i 's|# FpingLocation=/usr/sbin/fping|FpingLocation=/usr/local/fping/sbin/fping|g' /usr/local/zabbix/etc/zabbix_server.conf
           

###########或者不做上述修改,直接设置一个软链接 

ln -s /usr/local/fping/sbin/fping  /usr/sbin/fping
           

由于fping必须由root用户执行,如果非root账号执行fping,查看zabbix_server日志会有如下报警信息:

8178:20170905:131423.340 fping failed: /usr/local/fping/sbin/fping: can't create socket (must run as root?) : Permission denied

但是zabbix_server是使用zabbix账号运行,所以为fping设置SUID权限:

chown root.root /usr/local/fping/sbin/fping
chmod u+s /usr/local/fping/sbin/fping
           

设置完成之后

Monitoring--> Discovery--> Discovery rule 

zabbix 自动发现Discovery无法获取主机

选择设置的Discovery 进行查看,

也可以再跟踪一下zabbix的日志

tail -f /tmp/zabbix_server.log