1. 程式人生 > >zabbix3 設定郵件報警

zabbix3 設定郵件報警

 

Zabbix郵件報警配置

一、安裝sendmail或者postfix(安裝一種即可)

yum install sendmail #安裝
service sendmail start  #啟動
chkconfig sendmail on #設定開機啟動
或者
yum install postfix
service postfix start
chkconfig postfix on

二、安裝郵件傳送工具mailx

yum install mailx         #安裝  

三、設定傳送郵件的email,用於郵件傳送

cat /etc/mail.rc  //內容如下
set from=[email protected] set smtp=smtp.sina.com set smtp-auth-user=[email protected] set smtp-auth-password=xxxxxxx set smtp-auth=login

傳送測試郵件

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

四.zabbix伺服器端編寫郵件傳送指令碼.

mkdir /etc/zabbix/alertscripts 

vim /etc/zabbix/zabbix_server.conf                  //
修改alert scripts為以下路徑 AlertScriptsPath=/etc/zabbix/alertscripts /etc/init.d/zabbix_server restart            //重新啟動zabbix服務端 #vim /etc/zabbix/alertscripts/sendmail.sh //編寫郵件傳送指令碼 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

增加可執行許可權

chown zabbix.zabbix /etc/zabbix/alertscripts/sendmail.sh
chmod +x /etc/zabbix/alertscripts/sendmail.sh

給日誌賦予許可權:

1 chown zabbix.zabbix /tmp/sendmail.log
2 測試:
3       su - zabbix
4        /etc/zabbix/alertscripts/sendmail.sh [email protected] " 測試郵件標題" "測試郵件內容"
5  
6 看是否可以由zabbix使用者執行呼叫.

測試傳送指令碼

/etc/zabbix/alertscripts/sendmail.sh [email protected] "測試郵件標題" "測試郵件內容"

上述操作均在zabbix service端操作.

五.zabbix後臺配置,登入zabbix 控制檯http://IP地址/zabbix.

1.> Administration|Media types | Create media type ,進入告警方式配置介面,建立sendmail.sh告警方式.

Name這裡可以隨便自己定義,Type選擇scripts;Script name則輸入linux下編寫的指令碼名稱,即sendmail.sh,在Script parameters處點選Add分別新增
{ALERT.SENDTO},

{ALERT.SUBJECT},

{ALERT.MESSAGE} 3個引數,分別對應sendEmail.sh指令碼需要的3個引數:收件人地址、主題、詳細內容然後點選Add新增完成.

點選Administration | Users,進入使用者配置介面,點選Admin使用者,在”Media”選項卡中配置使用者接收告警的郵箱地址。點選”Add”,在彈出的視窗中輸入使用者郵箱,見下圖:

配置完成後如下圖:

點選User groups,點選zabbix administrator組後面的呼叫模式,點選一下,就啟用了,如下圖:

點選 Zabbix administrators 組名稱 點Permissions->Add 選擇所有 點選select進行更新。

2.>設定Zabbix觸發報警的動作。

Configuration-->Action 點選右上方的Create action建立action (也可以修改已有的Actions),具體如下:

Name    名字自己隨便定義(如Server-Sendmail)

Default subject   故障{TRIGGER.STATUS},伺服器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!
#Default subject定義收到郵件頭的資訊.
Default message      #定義郵件的內容資訊

告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊: {TRIGGER.NAME}
告警專案:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

Recovery message    打鉤  #服務恢復後的資訊

Recovery subject  恢復{TRIGGER.STATUS}, 伺服器:{HOSTNAME1}: {TRIGGER.NAME}已恢復!

Recovery message

告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊: {TRIGGER.NAME}
告警專案:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

 點選 Configuration | Actions | Operations  如圖:

修改以下內容(實際情況,大家根據自己需求填寫,這裡僅僅為了展示)

Default operation step duration 為60秒 
Steps 為3,表示觸發3次動作 
Send to User groups 選擇Zabbix administrators 
Send to Users 選擇 Admin (Zabbix Administrator)
Send only to 選擇 sendmail.sh

點選Add

 解釋: 
預設的步驟是1-1,也即是從1開始到1結束。一旦故障發生,就是執行sendEmail.sh指令碼發生報警郵件給Admin使用者和zabbix administrator組。 
假如故障持續了1個小時,它也只發送一次。如果改成1-0,0是表示不限制.無限傳送間隔就是預設持續時間60秒。那麼一個小時,就會發送60封郵件 

至此zabbix郵件報警基本配置完成!

測試時,停止zabbix_agent看能否收到郵件資訊!如收到資訊格式個資訊內容基本如下;

檢視Reports | Action log 檢視日誌資訊和傳送狀態.

 

 參考文件:

https://www.cnblogs.com/saneri/p/6078069.html