1. 程式人生 > >監控zabbix 3.4.11異常通過郵件報警步驟

監控zabbix 3.4.11異常通過郵件報警步驟

    監控的目的一個是可以檢視歷史狀態,可以對比零晨和工作區間資料的對比,以便後期進行優化指導。還有一個是報警,總不能等到伺服器出現異常了才去從頭查是什麼問題吧。所以這篇主要介紹報警中最基礎的一個 配置郵件預警。

安裝郵件傳送工具mail 

我選擇的是mailx,所以的關閉其他的郵件傳送工具

#systemctl stop sendmail  #關閉
#systemctl disable  sendmail #禁止開機啟動
#systemctl stop postfix  #關閉
#systemctl disable  postfix#禁止開機啟動

安裝mailx

安裝zabbix之後,設定郵件指令碼報警的時候,傳送的報警內容變成了tcmime.1278.1278.1724.bin或ATT00001.bin。

安裝dos2unix:
yum -y install mailx dos2unix //安裝mailx工具和dos2unix轉換工具

#yum install mailx -y
#yum -y install dos2unix #安裝mailx工具和dos2unix轉換工具

配置Zabbix服務端外部郵箱

#vim /etc/mail.rc #在此配置檔案中新增
set from[email protected]163.com smtp=smtp.163
.com #自己的郵箱 set [email protected]163.com set [email protected]312588 set smtp-auth=login

測試郵件是否可以發出

echo "zabbix test mail" |mail -s "zabbix" [email protected]163.com
#這時候,郵箱[email protected]163.com會收到來自[email protected]163.com的測試郵件

編寫傳送郵件指令碼

# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath
=/usr/lib/zabbix/alertscripts #此路徑是編寫傳送郵件的路徑 #cd /usr/lib/zabbix/alertscripts #vim sendmaail.sh
#!/bin/bash

export LANG=zh_CN.UTF-8

file=/tmp/zabbix_mail.txt
echo "$3" > $file
dos2unix -k $file
/bin/mailx -s "$2" $1 < $file
上面的這個三個引數是接收從web頁面中傳遞過來的,$1:收件人郵箱地址;$2:郵件標題;$3:郵件內容

配置web頁面

 建立媒體型別 →建立媒體型別

 

 

新增以下3個引數,分別對應sendmail.sh指令碼需要的3個引數:收件人地址、主題、詳細內容

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
注:
如果在3.0中不新增這三個引數會報錯,因為在3.0以後zabbix允許自定義引數了,所以不會預設傳遞引數,在2.0的時候會預設傳遞三個引數,所以在3.0如果不寫這三個引數會報錯

給使用者新增報警媒介

以Admin使用者為例 管理→使用者→點選Admin

 

新增收件人

 新增動作

填寫動作選項

 

除了自己填寫一個名稱以外,修改成中文:參考如下

預設接收人:
故障{TRIGGER.STATUS},伺服器:{HOSTNAME1}發生:{TRIGGER.NAME}故障!
預設資訊:
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE}{EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊: {TRIGGER.NAME}
告警專案:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

恢復主題:

恢復{TRIGGER.STATUS},伺服器:{HOSTNAME1}: {TRIGGER.NAME}已恢復!
恢復資訊:
告警主機:{HOSTNAME1}
恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
#這裡注意了,很多教程都是複製故障通知訊息,這裡時間需要設定為EVENT.RECOVERY.DATE 才會傳送正確的故障恢復時間,否則會發送故障發生時的時間。
告警時間:{EVENT.DATE}{EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊: {TRIGGER.NAME}
告警專案:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

填寫條件選項

解釋:

預設的步驟是1-1,也即是從1開始到1結束。一旦故障發生,就是執行sendemail.sh指令碼發生報警郵件給Admin使用者和zabbix administrator組。

假如故障持續了1個小時,它也只發送一次。如果改成1-0,0是表示不限制.無限傳送 間隔就是預設持續時間60秒。那麼一個小時,就會發送60封郵件。
到這我們的郵件報警配置就完成了,這時只要我們設定的觸發器觸發,就會自動給我傳送報警郵件。

測試郵件報警

此處模擬的是監控伺服器的nginx宕機,給郵件接收者發郵件

此時手動將被監控伺服器上nginx停用,這將收到觸發後的郵件(故障發生和故障恢復)