1. 程式人生 > >zabbix 配置郵件報警

zabbix 配置郵件報警

一、安裝郵件傳送工具mailx

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

service sendmailstop #關閉

chkconfig sendmailoff #禁止開機啟動

service postfixstop

chkconfig postfixoff

yum install mailx

二、配置Zabbix服務端外部郵箱

vi /etc/mail.rc

[email protected] smtp=smtp.163.com

set [email protected]=123456

set smtp-auth=login

:wq! #儲存退出

echo"zabbix test mail" |mail -s "zabbix" [email protected]

#測試傳送郵件,標題zabbix,郵件內容:zabbixtest mail,傳送到的郵箱:[email protected]

#這時候,郵箱[email protected]會收到來自[email protected]的測試郵件

三、配置Zabbix服務端郵件報警

1、進入zabbix管理頁面

點選管理->報警媒介型別 點選最右邊的建立媒體型別

名稱:Sendmail

型別:指令碼

指令碼名稱:sendmail.sh

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

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}


解釋:很多人安裝zabbix3.0之後,寫的指令碼一直髮信不成功,手動執行時可以的。那是因為zabbix3.0之後,可以自定義引數了。所以不寫引數,它是不會傳引數的。在2.x版本不存在這個問題,預設會傳3個引數。

2、點選Admin使用者


點選新增


選擇Sendmail指令碼,輸入收件人的郵箱地址

 

3、點選使用者群組,點選zabbixadministrator後面的呼叫模式,點選一下,就啟用了

點許可權->新增,選擇所有


4、點選配置->動作 點選建立動作

名稱:Action-Email

預設接收人:故障{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.DATE}{EVENT.TIME}

告警等級:{TRIGGER.SEVERITY}

告警資訊: {TRIGGER.NAME}

告警專案:{TRIGGER.KEY1}

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

當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

已啟用:打鉤


點選操作

修改持續時間為60秒

新的

操作型別:送出資訊

送到使用者:新增

預設資訊:打鉤

選擇使用者:Admin

選擇

僅送到:Sendmail

存檔

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

假如故障持續了1個小時,它也只發送一次。如果改成1-0,0是表示不限制.無限傳送

間隔就是預設持續時間60秒。那麼一個小時,就會發送60封郵件。

5、新增Zabbix服務端郵件傳送指令碼

cd/usr/local/zabbix/share/zabbix/alertscripts #進入指令碼存放目錄

vi sendmail.sh #編輯,新增以下程式碼

#!/bin/sh

#export.UTF-8

echo"$3" | sed s/'\r'//g | mail -s "$2" $1

:wq! #儲存退出

chownzabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh

#設定指令碼所有者為zabbix使用者

chmod +x/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh

#設定指令碼執行許可權

四、測試Zabbix報警

關閉Zabbix客戶端服務

servicezabbix_agentd stop

檢視[email protected]郵箱,會收到報警郵件

再開啟Zabbix客戶端服務

servicezabbix_agentd start

檢視[email protected]郵箱,會收到恢復郵件

使用外部郵箱賬號傳送報警郵件設定完成。

至此,Zabbix郵件報警設定完成。