1. 程式人生 > >zabbix使用-使用fping,telent和namp來監測連接是否存在

zabbix使用-使用fping,telent和namp來監測連接是否存在

get 觸發器 代理 服務器端 cati 要求 需要 網絡 res

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來監測連接是否存在