分布式監(jiān)控系統(tǒng)Zabbix3.2給異常添加郵件報警

在前一篇分布式監(jiān)控系統(tǒng)Zabbix3.2跳坑指南中已安裝好服務(wù)端和客戶端,此處客戶端是被監(jiān)控的服務(wù)器,可能有上百臺服務(wù)器。監(jiān)控的目的一個是可以查看歷史狀態(tài),可以對比零晨和工作區(qū)間數(shù)據(jù)的對比,以便后期進(jìn)行優(yōu)化指導(dǎo)。還有一個是報警,總不能等到服務(wù)器出現(xiàn)異常了才去從頭查是什么問題吧。所以這篇主要介紹報警中最基礎(chǔ)的一個 配置郵件預(yù)警。

通常zabbix提供了 e-mail、sms、jabber、微信等預(yù)警方式,sms等前期需要資金投入那就先否決吧,誰叫老板不給錢。

安裝郵件發(fā)送工具mailx

這里我選擇的是mailx,所以的關(guān)閉其他的郵件發(fā)送工具

service sendmail stop#關(guān)閉

chkconfig sendmail off#禁止開機(jī)啟動

service postfix stop

chkconfig postfix off

執(zhí)行安裝mailx的命令:

yum install mailx

配置Zabbix服務(wù)端外部郵箱

打開文件vi /etc/mail.rc 如果mail.rc文件沒有,就手動創(chuàng)建 內(nèi)容如下:

set sendcharsets=iso-8859-1,utf-8setfrom=123456789@163.com

set smtp=smtp.163.com:25

set smtp-auth-user=123456789@163.com#認(rèn)證用戶,一般與from保持一致

set smtp-auth-password=xxx#認(rèn)證密碼,如何開通授權(quán)可自行g(shù)oogle

測試郵件是否可以發(fā)出

echo"zabbix test mail"|mail -s"zabbix"yyy@163.com#這時候,郵箱yyy@163.com會收到來自123456789@163.com的測試郵件

編寫發(fā)送郵件腳本

進(jìn)入下面路徑:/usr/local/zabbix/alertscripts 創(chuàng)建sendmail.sh文件,內(nèi)容如下

echo "$3" | mail -s "$2" "$1"

上面的這個三個參數(shù)是接收從web頁面中傳遞過來的,$1:收件人郵箱地址;$2:郵件標(biāo)題;$3:郵件內(nèi)容

為什么我們會在這個路徑下面創(chuàng)建這個腳本呢,這是在我們的zabbix_server.conf文件中配置的

AlertScriptsPath=/usr/local/zabbix/alertscripts

所以你不想將這個腳本放在這個目錄下面,需要修改服務(wù)端的配置文件中的AlertScriptsPath的值。

配置web頁面

創(chuàng)建媒體類型

點(diǎn)擊創(chuàng)建媒體類型

添加以下3個參數(shù),分別對應(yīng)sendmail.sh腳本需要的3個參數(shù):收件人地址、主題、詳細(xì)內(nèi)容

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

如果在3.0中不添加這三個參數(shù)會報錯,因為在3.0以后zabbix允許自定義參數(shù)了,所以不會默認(rèn)傳遞參數(shù),在2.0的時候會默認(rèn)傳遞三個參數(shù),所以在3.0如果不寫這三個參數(shù)會報錯。

給用戶添加報警媒介

在這以Admin用戶為例 管理—》用戶—》點(diǎn)擊Admin

點(diǎn)擊Admin

添加接收人

添加動作

填寫動作選項

此處添加以一般嚴(yán)重 狀態(tài)的信息都報警。

除了自己填寫一個名稱以外,其余的都默認(rèn)就好了。當(dāng)然也可以修改成中文:參考如下

默認(rèn)接收人:

故障{TRIGGER.STATUS},服務(wù)器:{HOSTNAME1}發(fā)生:{TRIGGER.NAME}故障!

默認(rèn)信息:

告警主機(jī):{HOSTNAME1}

告警時間:{EVENT.DATE}{EVENT.TIME}

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

問題詳情:{ITEM.NAME}:{ITEM.VALUE}

當(dāng)前狀態(tài):{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

恢復(fù)信息:打鉤

恢復(fù)主題:

恢復(fù){TRIGGER.STATUS},服務(wù)器:{HOSTNAME1}: {TRIGGER.NAME}已恢復(fù)!

恢復(fù)信息:

告警主機(jī):{HOSTNAME1}

恢復(fù)時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}

#這里注意了,很多教程都是復(fù)制故障通知消息,這里時間需要設(shè)置為EVENT.RECOVERY.DATE 才會發(fā)送正確的故障恢復(fù)時間,否則會發(fā)送故障發(fā)生時的時間。

告警時間:{EVENT.DATE}{EVENT.TIME}

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

問題詳情:{ITEM.NAME}:{ITEM.VALUE}

當(dāng)前狀態(tài):{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

已啟用:打鉤

填寫條件選項

解釋:

默認(rèn)的步驟是1-1,也即是從1開始到1結(jié)束。一旦故障發(fā)生,就是執(zhí)行sendEmail.sh腳本發(fā)生報警郵件給Admin用戶和zabbix administrator組。

假如故障持續(xù)了1個小時,它也只發(fā)送一次。如果改成1-0,0是表示不限制.無限發(fā)送 間隔就是默認(rèn)持續(xù)時間60秒。那么一個小時,就會發(fā)送60封郵件。

到這我們的郵件報警配置就完成了,這是只要我們設(shè)置的觸發(fā)器觸發(fā),就會自動給我發(fā)送報警郵件。

測試郵件報警

我將zabbix自帶的模板中的對可用內(nèi)存的監(jiān)控中的觸發(fā)器的臨界值改為大于0,進(jìn)入模板列表

點(diǎn)擊修改,改成可用內(nèi)存小于2g就報警,這樣就容易觸發(fā)。

保存以后 將收到一份報警郵件 內(nèi)容如下:

在此就配好了郵件發(fā)送。

補(bǔ)坑注意:

在郵件發(fā)送時,按上面的sendmail.sh中的寫可能會出現(xiàn)zabbix郵件內(nèi)容為附件和zabbix圖中出現(xiàn)中文亂碼問題。

下面是參考園友的解決方法:

安裝zabbix之后,設(shè)置郵件腳本報警的時候,發(fā)送的報警內(nèi)容變成了tcmime.1278.1278.1724.bin或ATT00001.bin。

安裝dos2unix:

yum -y install mailx dos2unix //安裝mailx工具和dos2unix轉(zhuǎn)換工具

以下是腳本內(nèi)容

打開 /usr/local/zabbix/alertscripts/sendmail.sh

替換內(nèi)容

#!/bin/bashexport LANG=zh_CN.UTF-8file=/tmp/zabbix_mail.txt

echo"$3">$file

dos2unix-k $file/bin/mailx -s"$2"$1 < $file

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容