zabbix設置郵件告警的兩種方式(內部mail和腳本)

說明:

Zabbix監控服務端、客戶端都已經部署完成,被監控主機已經添加,Zabiix監控運行正常。

實現目的:

在Zabbix服務端設置郵件報警,當被監控主機宕機或者達到觸發器預設值時,會自動發送報警郵件到指定郵箱。

具體操作:

以下操作在Zabbix監控服務端進行

備註:Zabbix監控服務端

操作系統:CentOS

主機名:zabbix.osyunwei.com

郵件報警有兩種情況:

1、Zabbix服務端只是單純的發送報警郵件到指定郵箱,發送報警郵件的這個郵箱賬號是Zabbix服務端的本地郵箱賬號(例如:[email protected]),只能發送,不能接收外部郵件。

2、使用一個可以在互聯網上正常收發郵件的郵箱賬號(例如:[email protected]),通過在Zabbix服務端中設置,使其能夠發送報警郵件到指定郵箱。

第一種:使用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:

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 #創建mailxmail的軟連接

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

收件人:[email protected]

其他默認即可,也可以根據需要設置

狀態:已啓用

存檔

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

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 #查看版本信息

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

vi /etc/mail.rc #編輯,添加以下信息

set from=[email protected] smtp=smtp.163.com

set smtp-auth-user=[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

收件人:[email protected]

其他默認即可,也可

以根據需要設置

狀態:已啓用

存檔

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郵件報警設置完成。

發佈了45 篇原創文章 · 獲贊 23 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章