2017年03月16日 18:03:51服務器
閱讀數:12121dom
說明:工具
Zabbix監控服務端、客戶端都已經部署完成,被監控主機已經添加,Zabiix監控運行正常。post
實現目的:測試
在Zabbix服務端設置郵件報警,當被監控主機宕機或者達到觸發器預設值時,會自動發送報警郵件到指定郵箱。spa
具體操做:操作系統
如下操做在Zabbix監控服務端進行.net
備註:Zabbix監控服務端事件
操做系統:CentOSip
主機名:zabbix.osyunwei.com
郵件報警有兩種狀況:
一、Zabbix服務端只是單純的發送報警郵件到指定郵箱,發送報警郵件的這個郵箱帳號是Zabbix服務端的本地郵箱帳號(例如:root@localhost.localdomain),只能發送,不能接收外部郵件。
二、使用一個能夠在互聯網上正常收發郵件的郵箱帳號(例如:xxx@163.com),經過在Zabbix服務端中設置,使其可以發送報警郵件到指定郵箱。
第一種:使用Zabbix服務端本地郵箱帳號發送郵件
1、安裝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只須要安裝一個便可並開啓服務便可。
2、安裝郵件發送工具mailx
yum install mailx #安裝
CentOS 5.x 編譯安裝mailx,直接yum安裝的mailx版本太舊,使用外部郵件發送會有問題。
yum remove mailx #卸載系統自帶的舊版mailx
下載mailx:
http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2
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" xxx@163.com
#測試發送郵件,標題zabbix,郵件內容:zabbix test mail,發送到的郵箱:xxx@163.com
3、配置Zabbix服務端郵件報警
一、打開Zabbix
管理-示警媒介類型-Email
名稱:Email
類型:電子郵件
SMTP伺服器:zabbix.sa.huanqiu.com
SMTP HELO:zabbix.sa.huanqiu.com
SMTP電郵:zabbix@zabbix.sa.huanqiu.com
已經用:勾選
存檔
備註:zabbix.sa.huanqiu.com爲Zabbix監控端主機名稱,建議修改,不然使用默認的localhost.localdomain發送郵件會被當作垃圾郵件攔截。
二、設置Zabbix用戶報警郵箱地址
組態-用戶-Admin (Zabbix Administrator)
切換到示警媒介
添加
類型:Email
收件人:xxx@163.com
其餘默認便可,也能夠根據須要設置
狀態:已啓用
存檔
三、設置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
存檔
4、測試Zabbix報警
關閉Zabbix客戶端服務
service zabbix_agentd stop
查看xxx@163.com郵箱,會收到報警郵件
再開啓Zabbix客戶端服務
service zabbix_agentd start
查看xxx@163.com郵箱,會收到恢復郵件
使用Zabbix服務端本地郵箱帳號發送郵件設置完成。
第二種:使用外部郵箱帳號發送報警郵件設置
1、關閉sendmail或者postfix
service sendmail stop #關閉
chkconfig sendmail off #禁止開機啓動
service postfix stop
chkconfig postfix off
備註:
使用外部郵箱帳號時,不須要啓動sendmail或者postfix
若是在sendmail或者postfix啓動的同時使用外部郵箱發送報警郵件,首先會讀取外部郵箱
配置信息。
2、安裝郵件發送工具mailx
yum install mailx #安裝
CentOS 5.x 編譯安裝mailx,直接yum安裝的mailx版本太舊,使用外部郵件發送會有問題。
yum remove mailx #卸載系統自帶的舊版mailx
下載mailx:
http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2
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 #查看版本信息
3、配置Zabbix服務端外部郵箱
vi /etc/mail.rc #編輯,添加如下信息
set from=xxx@163.com smtp=smtp.163.com
set smtp-auth-user=xxx@163.com smtp-auth-password=123456
set smtp-auth=login
:wq! #保存退出
echo "zabbix test mail" |mail -s "zabbix" yyy@163.com
#測試發送郵件,標題zabbix,郵件內容:zabbix test mail,發送到的郵箱:yyy@163.com
#這時候,郵箱yyy@163.com會收到來自xxx@163.com的測試郵件
4、配置Zabbix服務端郵件報警
一、打開Zabbix
管理-示警媒介類型-建立媒體類型
名稱:Sendmail
類型:腳本
腳本名稱:sendmail.sh
已啓用:勾選
存檔
二、設置Zabbix用戶報警郵箱地址
組態-用戶-Admin (Zabbix Administrator)
切換到示警媒介-添加
類型:Sendmail
收件人:xxx@163.com
其餘默認便可,也可
以根據須要設置
狀態:已啓用
存檔
三、設置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
存檔
四、添加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
#設置腳本執行權限
5、測試Zabbix報警
關閉Zabbix客戶端服務
service zabbix_agentd stop
查看xxx@163.com郵箱,會收到報警郵件
再開啓Zabbix客戶端服務
service zabbix_agentd start
查看xxx@163.com郵箱,會收到恢復郵件
使用外部郵箱帳號發送報警郵件設置完成。
至此,Zabbix郵件報警設置完成。