原文發表於cu:2016-06-21 Zabbix自動發現功能從配置流程上比較簡單:Discovery與Action。 在做Zabbix的自動發現驗證時,使用"ICMP ping"的check方式時,自動發現功能並不生效。 一.環境 1. zabbix環境 Zabbix:zabbix-3.0.1se ...
原文發表於cu:2016-06-21
Zabbix自動發現功能從配置流程上比較簡單:Discovery與Action。
在做Zabbix的自動發現驗證時,使用"ICMP ping"的check方式時,自動發現功能並不生效。
一.環境
1. zabbix環境
Zabbix:zabbix-3.0.1server/agent
2. 配置環境
Discovery
發現本地網路172.19.200.1-254,Check:ICMP ping,如下:
Action
ICMP ping方式下,UP狀態的主機添加到"Discovery hosts"組,如下:
二.自動發現失效
1. 現象
在自動發現的discovery與action流程配置正確的前提下,等待10分鐘觀察,自動發現功能並不生效。
2. 定位故障
#發現有"找不到/usr/sbin/fping文件"的信息記錄。 [root@localhost ~]# vim /tmp/zabbix_server.log 1412:20160621:110040.593 /usr/sbin/fping: [2] No such file or directory
3. 故障分析
"ICMP ping"的check方式,使用/usr/sbin/fping命令檢測狀態,如果系統沒有安裝或fping命令執行路徑有誤,則check方式不能發現設備,自動發現功能失效。
三.安裝配置fping
1. 安裝fping
#fping相對ping,可以同時ping多個目標並且有多種統計輸出格式; #fping目前只能通過編譯的方式安裝 [root@localhost ~]# cd /usr/local/src [root@localhost src]# wget http://www.fping.org/dist/fping-3.13.tar.gz [root@localhost src]# tar -zxvf fping-3.13.tar.gz [root@localhost src]# cd fping-3.13 [root@localhost fping-3.13]# ./configure [root@localhost fping-3.13]# make && make install
2. 配置fping執行路徑
#zabbix_server配置文件中預設fping的執行路徑被註釋掉了,此時預設路徑就為:/usr/sbin/fping #可以配置fping的執行路徑,如下: [root@localhost ~]# sed -i 's|# FpingLocation=/usr/sbin/fping|FpingLocation=/usr/local/sbin/fping|g' /usr/local/zabbix/etc/zabbix_server.conf #或者不修改 zabbix_server.conf文件,使用軟連接ln -s /usr/local/sbin/fping /usr/sbin/fping
3. 配置fping許可權
#fping必須由root用戶執行,如果非root賬號執行fping,查看zabbix_server日誌會有如下報警信息: #21822:20160621:151232.024 fping failed: (null): can't create socket (must run as root?) : Permission denied #如果是root賬號安裝的fping,可以不用修改owner; #但zabbix_server是使用zabbix賬號調用命令的,可以為fping設置SUID許可權,如下: [root@localhost ~]# chown root:root /usr/local/sbin/fping [root@localhost ~]# chmod u+s /usr/local/sbin/fping
四.驗證
1. 驗證Discovery
Monitoring--> Discovery--> Discovery rule,選擇"Local network"(創建discovery時的name),如下:
2. 驗證Action
Configuration--> Hosts--> Group,選擇"Discovery hosts"組,如下: