centos7之zabbix郵件報警(短信報警)


前言

  前面我們介紹了zabbix的基本linux和window及SNMP流量的簡單監控,我們知道作為運維人員,需要7x24小時待命,但是我們不可能時時刻刻都坐在電腦旁邊查看監控上的各個主機狀態,所以我們需要配置一個郵件報警,也是郵件報警。

准備工作:

  centos7.4

  zabbix添加linux和windows監控主機,且工作狀態正常。

Zabbix服務端

  首先你得安裝發送郵件的工具mailx

yum -y install mailx 

  1、配置mail,這個配置文件應該放到/etc/下面,安裝完成后它會有個默認的mail.rc文件,備份它后新建一個相同名字的文件,把下面的內容寫入就行。

       注意:

                1、這里新開通的126郵箱,除了需要開通SMTP服務外,還需要開通授權碼登錄,這里寫的不再是登錄密碼,而是授權碼。

                2、可能是因為126郵箱的問題,這里確認申請成功后,在別的電腦上嘗試登錄是否正常。

                3、發送郵箱smtp服務器地址,新開的郵箱地址是smtp.126.com。

                如果測試中報535錯誤,請仔細檢查以上三條注意事項。

set bsdcompat
set from=發送郵箱賬號(這里必須寫全了,別忘了@后面)
set smtp=smtp.163.com     #發送郵箱smtp服務器地址(必須開啟smtp服務)
set smtp-auth-user=發送郵箱賬號(這里只需要寫全拼就行。不需要@后面字符)
set smtp-auth-password=發送郵箱賬號的密碼
set smtp-auth=login   #登錄

  2、測試(我這里是去163郵箱申請賬戶,開啟smtp服務,發送給我的個人郵箱)

echo "test" | mail -s 'test linux'  接收郵件的郵箱地址

 

  2、編寫郵件發送腳本sendmail.sh(內容如下下)

#cd /usr/local/zabbix/share/zabbix/alertscripts/
#chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh 
#chmod 755 /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh

  cat sendmail.sh

#!/bin/bash

messages=`echo $3 | tr '\r\n' '\n'`

subject=`echo $2 | tr '\r\n' '\n'`

echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1

  3、配置zabbix_server.conf文件,讓zabbix執行sendmail這個可執行文件

vim /etc/zabbix/zabbix_server.conf

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts

  4、再次測試

  #su zabbix

  #/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh 接收郵件的郵箱地址 "test linux" "test"

  

注意:

切換到zabbix賬戶測試報警郵件很重要,這里如果提示以下錯誤,除了要給/tmp/sendmail.log這個文件執行權限外,還需要給屬主屬組的權限。這里通過不了,后面也是白瞎。

[zabbix@localhost root]$ /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh leihaidong@gaosiedu.com "test zabbix No1" "test"
/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh: line 4: /tmp/sendmail.log: Permission denied

 

Zabbix的web端配置

   1、管理 ----  報警媒介類型 -----  創建媒介類型。

   

  2、創建媒體類型

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

 

  3、管理 ---- 用戶 ----- 選擇admin用戶。(自己創建一個用戶也可以),這里你要是選擇admin的話,你所有的機器只有有故障就會報警,很煩的,因為有些機器是不用郵件報警的話,就尷尬了,所以我這里不選擇admin,我這里是新建一個單獨的用戶組。

   

  如何實現部分郵件報警呢,首先我們需要創建一個用戶群組。

  

  我這里提前創建了一個管理員的組,把管理員加到這個組。

  

  這里需要我們把郵件報警的組都加到這個組里面,被加到這個組里的組,才會報警。

  

  下面我們配置管理員這個用戶的郵件報警。

  

  管理員的配置。

  

  我這里是已經創建好的報警媒介。

  

  具體內容如下。

  

  我們看一下會報警的群組。

  

  4、上面我們創建了用戶和組,也創建了回報警的哪些群組。下面我們來看看,具體的報警和恢復后的郵件內容配置方法。下面這條是我已經創建好的報警。

  

  我們來看看他的具體寫法。首先是名稱,添加條件,只需要在觸發器名稱后面的空白框鍵入is unreachable for 5 minutes,然后點擊添加就行。

  。。。。。。。。。。。。。。。。。。。###########################。。。。。。。。。。。。。。。。。。。。。。。。。。

  注意,注意,注意:

  這個is .....是什么意思呢?就是說只要報警里面出現這幾個字母,就會發郵件報警,這里有個坑,就是我icmp郵件報警,因為默認loss是警告,所以它不會顯示在儀表盤里面,所以我們需要看圖形,這樣很麻煩,所以我們需要將icmpping loss這個觸發器改成一般嚴重,這樣就會出現在儀表盤里面了,但是,但是,但是,它還是不短信報警,那怎么辦呢?我們ping監控一個地址的時候,報警出現在儀表盤里面的話,會提示你Ping loss is too high on這句話,這個時候,我們要將這句話加到動作里面。意思是只要儀表盤里面報這句英文的時候,就會觸發郵件(短信)報警。

  

 

  同理,以后你想讓出現哪個報警項,郵件報警的話,就在這里把那個報警信息加到這里就行。

  。。。。。。。。。。。。。。。。。。。###########################。。。。。。。。。。。。。。。。。。。。。。。。。。

  

  

  下面才是最關鍵的配置,持續時間我們改成60秒,也就是說1分鍾報警一次,至於讓它一直60秒間隔報警的話,這里可以把步驟改成1-0,0代表如果故障不恢復,就一直報下去。

  

默認接收人  故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!

告警主機IP地址:{HOST.CONN}
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}

  

 

  

   上面我們只是配置了出現故障時候報警的主題,信息等消息,下面我們看當故障恢復后發給我們的郵件。

默認接收人   恢復{TRIGGER.STATUS}, 服務器:{HOSTNAME1}: {TRIGGER.NAME}已恢復!

告警主機IP地址:{HOST.CONN}
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}

  

  報警郵件

  

  恢復郵件:

 

  注意:

    1、我們上面說的郵件報警,但是需要短信報警的話,就簡單了,我們申請一個移動139郵箱,然后接收報警郵件地址寫成移動139郵箱,這樣的話有報警手機也能收到短信。

    2、只有狀態時一般嚴重(含),才會在儀表盤里面顯示為橘黃色,一般情況下短信報警設置報警級別為一般嚴重(含)。

    3、fping需要支持報警級別需要將icmpping loss狀態更改為一般嚴重。

  參考地址:https://www.cnblogs.com/zoulongbin/p/6420239.html

 

方案二

   

 注意:

  如果你想用某個郵箱給你的郵箱發郵件的話,上面這么搞太費經,比如本文將的用126給我們的139和個人郵箱發報警短信,沒問題。如果你想用不想用126或者163(smtp服務器的郵件賬戶)給你發郵件的話,可以考慮下面的方法。

  1、你不用如上面說的替換原來/etc/mail.rc文件,默認就行。

  2、你不用像第一步那樣創建一個"創建媒介類型",直接修改自帶的Email這個媒介就行,剩下的方法一樣。

  3、需要注意的是你需要給報警這件事兒,創建一個用戶組合用戶,讓它對哪些主機群組有權限,都是在用戶群組里面設置。  

 


免責聲明!

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



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