Zabbix 3.0 監控交換機(2)——ICMP監控及郵件報警

將交換機加入到zabbix監控系統中之後,接下來應該做什麼呢,對了,就是要實時的知道交換機的在線狀態,這裏使用ICMP監控和郵件報警來實現這個目的。

一、ICMP監控

  Zabbix處理ICMP ping請求使用的fping這個命令,zabbix-3.0中默認是沒有安裝的,所以我們首先安裝fping。

  1.1 fping安裝

    下載fping

      命令:cd /usr/local/src

       wget http://www.fping.org/dist/fping-3.13.tar.gz

      fping1

    解壓fping              

      命令:tar -zxf fping-3.13.tar.gz

      fping2

    編譯安裝

      命令:cd fping-3.13

           ./configure  #默認會直接安裝在 /usr/local/sbin

           make

           make install

  1.2 修改fping的路徑

    zabbix默認fping的路徑是/usr/sbin/,不過在我安裝的zabbix-3.0的zabbix_server.conf中並沒有找到有關fping的配置,所以這裏直接將安裝好的fping  copy 到默認路徑下。

     命令:cp /usr/local/sbin/fping /usr/sbin/fping

  1.3 修改fping權限

    修改fping權限,讓用戶zabbix可以執行fping。

     命令:chown root:zabbix /usr/sbin/fping

         chmod 4710 /usr/sbin/fping  

  1.4 用戶zabbix測試fping

     命令:su zabbix

         fping 192.168.*.*

         192.168.*.* is alive   #表示fping命令返回成功

    fping3  

  1.5 爲Template增加ICPM監控項

    在原有的Template上增加 Template ICMP Ping,因爲所有交換機都需要的,所以在Template上增加,就等爲於所有交換機都加上了。

    ① 打開增加Template界面Configuration->Templates->在列表中選擇一個模板->Linked templates->Select。

    Templates-add

    ②選擇Template ICMP Ping。注意在Group那裏要選擇Templates。

    Templates-add-1

    ③點擊Add,確定增加這個模板給到這個Host,這一步很重要。

    Templates-add-2

    ④確定Linked templates裏面有我們剛纔選擇的模板之後,點擊Update,創建完成。

    Templates-add-3

    創建完成後的狀態如下圖, 一個Application,並且會自動創建三個triggers。

    Templates-add-4

    Application 的情況如下圖,ICMP帶有三個Items。

    Templates-add-6

    三個Items的配置如下圖

    Templates-add-7

    創建好的ICMP模板會自動創建三個triggers,這三個triggers就是我們監控交換機在線狀態要用到的觸發器。

    Templates-add-8

  1.6 建立Graph數據圖表

    在原有的Template上增加 Graph,因爲所有交換機都需要的,所以在Template上增加,就等爲於所有交換機都加上了。

    ①打開增加Graph界面Configuration->Templates->在列表中選擇一個模板->Graphs->Create Graph。

    graph1-1

    ②點擊Add增加要監控的ICMP項目。

    graph1

    ③勾選ICMP loss,ICMP ping,ICMP response time 這三項,點擊Select。

    graph2

    ④點擊Add,創建完成。

    graph3

    ⑤打開ICMP的監控圖表界面 Monitoring->Graphs->Group(Switch)->Host(選擇一臺交換機)->Graph(Ping Test)。

    graph4

二、郵件報警

  本文通過配置腳本來發送郵件,只需要用到mailx功能,不需要安裝sendmail或sendEmail。Zabbix-3.0已自動安裝好mailx,所以我們直接配置郵件發送端信息。

  2.1 配置/etc/mail.rc

    在/etc/mail.rc最後增加以下幾行:

    #set for zabbix    
    #set sendcharsets=iso-8859-1,utf-8      
    set [email protected] smtp=mail.tryrus.com    
    set smtp-auth-user=tryrus smtp-auth-password=tryrus123456

    set smtp-auth=login

    #set sendcharsets=iso-8859-1,utf-8  #配置發送郵件的字符格式**非常重要,不然發送的郵件內容會變成附件

    set from  #配置發件郵箱地址

    smtp  #配置發件郵箱地址的郵箱服務器名稱。如果是163這種提供公共服務的郵箱服務器應=smtp.163.com,如是公司內部使用的exchang郵箱服務器應=mai.公司域名,一般公司的exchang郵箱服務器不提供對外服務,所以POP服務都是關閉的

    set smtp-auth-user  #配置發件郵箱地址的登陸名字,不帶域名

    smtp-auth-password  #配置發件郵箱地址的登陸密碼

    set smtp-auth  #配置認證登陸

    1

  2.2 測試mailx

    命令:

    su zabbix

    echo "郵件內容" | mailx -s "標題" [email protected]

    在郵箱中接收到的郵件如下圖所示

    3

  2.3 配置send_email.sh腳本

    cd /usr/local/zabbix-3.0.1/share/zabbix/alertscripts/

    vim send_email.sh

    send_email是zabbix中配置需要用到的,腳本如下。

    #!/bin/bash    
    #Program:    
    #This program is used to send email to admin    
    #History:    
    #2016/05/09 tryrus First release    
    #export LANG=en_US.UTF-8   //我用的是英文版的,這行可以不要,但還是加上爲好      
    #export LANG=zh_CN.UTF-8  //解決發送的中文變成了亂碼的問題,如果郵件中沒有中文,不要也沒關係,但是誰能保證後來者不在郵件中插進一些中文呢。

    body=/tmp/alertlog.txt  
    to=$1  #Media types中的第一個參數,即郵件收件人郵箱地址,等下會講到。    
    subject=$2  #Media types中的第二個參數,即郵件主題。    
    echo "$3" >$body  #Media types中的第三個參數,即郵件內容。    
    dos2unix -k $body  #將郵件內容轉爲linux可識別的格式,**非常重要,不然發送的郵件內容會變成附件

    cat $body | mailx -s "$subject" "$to"

    send_email

    爲用戶zabbix增加對腳本send_email.sh的可執行權限

    chown zabbix.zabbix /usr/local/zabbix-3.0.1/share/zabbix/alertscripts/send_email.sh  #設置腳本所有者爲用戶zabbix

    chmod +x /usr/local/zabbix-3.0.1/share/zabbix/alertscripts/send_email.sh  #設置腳本執行權限

  2.4 配置zabbix_server.conf

    在zabbix_server.conf中配置腳本地址,命令如下

    vim /usr/local/zabbix-3.0.1/etc/zabbix_server.conf

    #AlertScriptsPath=/usr/local/zabbix-3.0.1/share/zabbix/alertscripts  注意確實是帶#這個符號的,**非常重要,不然發送的郵件內容會變成附件

    alertscript

  2.4 創建郵件發送類型

    打開創建media type界面Configuration->Media types->Create media type

    4

    創建Media type

    ①輸入Media type的名字Send_email。

    ②選擇type的類型爲Script。

    ③輸入腳本的名字,是要帶後綴的。

    ④增加這三個腳本參數,不然腳本里面的$1,$2,$3就沒有數據來源了。第一個參數的數據是傳遞給$1,以此類推,如果更改這三個參數的順序,記得更改腳本里面的賦值順序。

    ⑤點擊Add,創建完成。

    5-1

    創建完成後如下圖所示。

    6-1

  2.5 創建用戶郵件報警地址

    打開創建用戶郵件報警地址界面Configuration->Users->選擇需配置郵件報警的用戶->Media->Add

    7-1

    在Media選項中我們要做如下配置。   

    ①Type選擇我們剛剛創建的Send_email。

    ②填寫收件人的郵箱地址。

    ③其它全部默認即可,點擊Add,創建完成。

    8-1

    創建完成後如下圖所示,不要忘記點Update來保存配置。

    9-1

  2.6 創建zabbix郵件報警的動作

    打開創建Action界面Configuration->Actions->Create action

    10

    ①輸入Action的名字Send_email。

    ②這個參數默認即可。

    ③可以按照我以下的參數及格式配置。

    Hostname:{HOSTNAME1}

    Trigger date:{EVENT.DATE} {EVENT.TIME}

    Trigger name: {TRIGGER.NAME}

    Trigger status: {TRIGGER.STATUS}

    Trigger severity: {TRIGGER.SEVERITY}

 

    Item values:

    1. {ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}

    Original event ID: {EVENT.ID}    

    ④這個勾上,表示觸發器正常後會發送一份恢復確認的郵件。

    ⑤激活這個觸發動作。

    11-1

    ⑥選擇Conditons選項,將Type of calculation修改成爲or,其它默認即可。

    12-1

    ⑦選擇Operations選項,點擊Action operations選項中的New,設置這個觸發動作的其它信息。

    13-1

    ⑧Default operaion step duration 修改成60s。

    ⑨Operation type選擇Send message。

    ⑩Send to User groups 或Send to Users 選擇這個觸發動作要發送郵件的對像,羣組或單個用戶。點擊Add,創建完成。

    14-1

    創建完成後如下圖所示。

    15

  2.7 測試zabbix郵件報警

    創建一個不存在的交換機來進行測試,創建完成等待一分鐘左右的時候後,可以在Monitoring->Triggers中看到被觸發器報故障的交換機。

    16-1

    在Monitoring->Events中看可以看到這臺交換機詳細故障情況,以及報警郵件的發送情況,如下圖所示,Actions的狀態爲Sent,即表示郵件已發送完成。

    17-1

    在郵箱中收到的郵件如下圖所示。

    18-1

    OK ,到這裏,我們要實現的功能已全部實現,完成目標。

謝謝你打開這篇博文,並一直堅持看到了這裏,如果覺得對你有幫助,請不要吝嗇在右下角的贊上點一下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章