Zabbix郵件報警設定方法
說明:
Zabbix監控服務端、客戶端都已經部署完成,被監控主機已經新增,Zabiix監控執行正常。
實現目的:
在Zabbix服務端設定郵件報警,當被監控主機宕機或者達到觸發器預設值時,會自動傳送報警郵件到指定郵箱。
具體操作:
以下操作在Zabbix監控服務端進行
備註:Zabbix監控服務端
作業系統:CentOS
主機名:zabbix.osyunwei.com
郵件報警有兩種情況:
1、Zabbix服務端只是單純的傳送報警郵件到指定郵箱,傳送報警郵件的這個郵箱賬號是Zabbix服務端的本地郵箱賬號(例如:[email protected]),只能傳送,不能接收外部郵件。
2、使用一個可以在網際網路上正常收發郵件的郵箱賬號(例如:[email protected]
第一種:使用Zabbix服務端本地郵箱賬號傳送郵件
一、安裝sendmail或者postfix
yum install sendmail #安裝 service sendmail start #啟動 chkconfig sendmail on #設定開機啟動 yum install postfix service postfix start chkconfig postfix on
CentOS 5.x 預設已經安裝好sendmail
CentOS 6.x 預設已經安裝好postfix
sendmail和postfix只需要安裝一個即可並開啟服務即可。
二、安裝郵件傳送工具mailx
yum install mailx #安裝
CentOS 5.x 編譯安裝mailx,直接yum安裝的mailx版本太舊,使用外部郵件傳送會有問題。
yum remove mailx #解除安裝系統自帶的舊版mailx
下載mailx:
wget tar jxvf mailx-12.4.tar.bz2 #解壓 cd mailx-12.4 #進入目錄 make #編譯 make install UCBINSTALL=/usr/bin/install #安裝 ln -s /usr/local/bin/mailx /bin/mail #建立mailx到mail的軟連線 ln -s /etc/nail.rc /etc/mail.rc #建立mailx配置檔案軟連線 whereis mailx #檢視安裝路徑 mailx -V #檢視版本資訊 echo "zabbix test mail" |mail -s "zabbix" [email protected]
#測試傳送郵件,標題zabbix,郵件內容:zabbix test mail,傳送到的郵箱:[email protected]
三、配置Zabbix服務端郵件報警
1、開啟Zabbix
管理-示警媒介型別-Email
名稱:Email
型別:電子郵件
SMTP伺服器:zabbix.sa.huanqiu.com
SMTP HELO:zabbix.sa.huanqiu.com
SMTP電郵:[email protected]
已經用:勾選
存檔
備註:zabbix.sa.huanqiu.com為Zabbix監控端主機名稱,建議修改,否則使用預設的localhost.localdomain傳送郵件會被當做垃圾郵件攔截。
2、設定Zabbix使用者報警郵箱地址
組態-使用者-Admin (Zabbix Administrator)
切換到示警媒介
新增
型別:Email
其他預設即可,也可以根據需要設定
狀態:已啟用
存檔
3、設定Zabbix觸發報警的動作
組態-動作-建立動作
名稱: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}
已啟用:打鉤
切換到操作選項
新的
操作型別:送出資訊
送到使用者:新增
預設資訊:打鉤
使用者:勾選Admin
選擇
僅送到:Email
存檔
四、測試Zabbix報警
關閉Zabbix客戶端服務
service zabbix_agentd stop
檢視[email protected]郵箱,會收到報警郵件
再開啟Zabbix客戶端服務
service zabbix_agentd start
檢視[email protected]郵箱,會收到恢復郵件
使用Zabbix服務端本地郵箱賬號傳送郵件設定完成。
第二種:使用外部郵箱賬號傳送報警郵件設定
一、關閉sendmail或者postfix
service sendmail stop #關閉 chkconfig sendmail off #禁止開機啟動 service postfix stop chkconfig postfix off
備註:
使用外部郵箱賬號時,不需要啟動sendmail或者postfix
如果在sendmail或者postfix啟動的同時使用外部郵箱傳送報警郵件,首先會讀取外部郵箱
配置資訊。
二、安裝郵件傳送工具mailx
CentOS 5.x 編譯安裝mailx,直接yum安裝的mailx版本太舊,使用外部郵件傳送會有問題。
yum remove mailx #解除安裝系統自帶的舊版mailx wget tar jxvf mailx-12.4.tar.bz2 #解壓 cd mailx-12.4 #進入目錄 make #編譯 make install UCBINSTALL=/usr/bin/install #安裝 ln -s /usr/local/bin/mailx /bin/mail #建立mailx到mail的軟連線 ln -s /etc/nail.rc /etc/mail.rc #建立mailx配置檔案軟連線 whereis mailx #檢視安裝路徑 mailx -V #檢視版本資訊
三、配置Zabbix服務端外部郵箱
vi /etc/mail.rc #編輯,新增以下資訊 set [email protected] smtp=smtp.163.com set [email protected] smtp-auth-password=123456 set smtp-auth=login :wq! #儲存退出 echo "zabbix test mail" |mail -s "zabbix" [email protected]
#測試傳送郵件,標題zabbix,郵件內容:zabbix test mail,傳送到的郵箱:[email protected]
#這時候,郵箱[email protected]會收到來自[email protected]的測試郵件
四、配置Zabbix服務端郵件報警
1、開啟Zabbix
管理-示警媒介型別-建立媒體型別
名稱:Sendmail
型別:指令碼
指令碼名稱:sendmail.sh
已啟用:勾選
存檔
2、設定Zabbix使用者報警郵箱地址
組態-使用者-Admin (Zabbix Administrator)
切換到示警媒介-新增
型別:Sendmail
其他預設即可,也可
以根據需要設定
狀態:已啟用
存檔
3、設定Zabbix觸發報警的動作
組態-動作-建立動作
名稱: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}
已啟用:打鉤
切換到操作選項
新的
操作型別:送出資訊
送到使用者:新增
預設資訊:打鉤
選擇使用者:Admin
選擇
僅送到:Sendmail
存檔
4、新增Zabbix服務端郵件傳送指令碼
cd /usr/local/zabbix/share/zabbix/alertscripts #進入指令碼存放目錄 vi sendmail.sh #編輯,新增以下程式碼 #!/bin/sh echo "$3" | mail -s "$2" $1 :wq! #儲存退出 chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#設定指令碼所有者為zabbix使用者
chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#設定指令碼執行許可權
五、測試Zabbix報警
關閉Zabbix客戶端服務
service zabbix_agentd stop
檢視[email protected]郵箱,會收到報警郵件
再開啟Zabbix客戶端服務
service zabbix_agentd start
檢視[email protected]郵箱,會收到恢復郵件
使用外部郵箱賬號傳送報警郵件設定完成。
至此,Zabbix郵件報警設定完成。