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加上能夠使用所有指令的權限)