zabbix使用-使用fping,telent和namp來監測連接是否存在
Zabbix監控服務器,有個要求:如果有兩個主機A,B和服務端S,如何配置才能監控A到B的網絡狀況
監控網站是否能夠ping通
方案一:使用zabbix自帶的icmmping來進行連接監測
步驟一、安裝fping
1、 下載fping.tar.gz
2、tar -zxvf fpring.tar.gz
3、./configure --prefix=/usr/local/fping
4、 make && make install
5、測試是否能用
./fping baidu.com
baidu.com is alive
步驟二、zabbix配置使用fping
1、在zabbix_server.conf配置FpingLocation=/usr/local/fping/sbin/fping
2、創建監控項,監控項註意類型選擇“簡單代理”然後輸入鍵值“icmpping[mapi.alipay.com,4,1000,32,100000]”即可
3、之後創建觸發器。
【PS:很不幸的是,最後發現無法實現需求,因為icmpping是用來監測服務端與客戶端之間是否有效連接的,我不知道該用什麽辦法讓它能在客戶端監控與其它網站之間的連接,那麽只能用自定義key的方式來判斷是否順利聯通了】
方案二:使用編寫腳本,設置自定義Kye的方式來進行監控
1、下載安裝fping,客戶端下編寫測試是否聯通的腳本,腳本內容如下
# 使用fping進行校驗 if [ ! -n "$1" ] ;then echo -1 exit 1 else echo `/usr/local/fping/sbin/fping $1` alive="alive" result=$(echo $a | grep "${alive}") if [[ "$result" != "" ]] then echo 1 else echo 0 fi fi
2、在zabbix_agentd.conf中配置自定義key,
# fping ip,如果ping通返回1,ping不通返回-
UserParameter=fping.other.sys[*],/usr/local/zabbix/scripts/check_fping.sh $1
3、在服務端使用zabbix_get來測試是否有效
./zabbix_get -s 127.0.0.1 -p 10050 -k "fping.other.sys[baidu.com]"
(這裏遇到一個問題,在客戶端自測腳本是好的,但是到了服務端怎麽樣都執行不出來fping,因為fping必須由root執行,如果非root會報錯,這是權限問題,chmod u+s /usr/local/sbin/fping 就可以解決這個問題。)
監控網站端口是否可連接
方案1:使用telent監測服務器端口是否開放
1、退出telent界面的命令
首先需要按ctrl+] ,然後在按 q
2、 telnet監視的腳本
http://blog.csdn.net/james_lee1314/article/details/51103721
3、配置zabbix_agentd(客戶端)的自定義item
//telnet ip port,如果端口能夠連接返回1,不能夠連接返回0
UserParameter=telnet.other.sys[*],/usr/local/zabbix/scripts/checknet/check_telnet.sh $1 $2
4、然後在服務端死活無法監測接口,一直返回失敗,估計是telnet命令執行的問題
方案2:使用nmap來監測
1、既然本地命令執行有問題,那麽就采用fpirng類似的方式來監測端口好了
2、下載安裝nmap,然後配置,編寫shell腳本,之後設置權限,
3、最後,妥妥的
(最後提供一個zabbix用戶無法使用命令的方法:思路就是提權,為這些命令加上chmod u+x的權限;或者幹脆visudo給zabbix加上能夠使用所有命令的權限)
zabbix使用-使用fping,telent和namp來監測連接是否存在