Zabbix自動發現之fping


原文發表於cu2016-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"組,如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM