zabbix郵件監控配置

參考博客:http://blog.chinaunix.net/uid/26118446.html  小鑽風

                 http://www.iyunv.com/thread-61736-1-1.html 運維網論壇帖子

搭建好zabbix監控服務系統後,就是增加郵件報警功能,還是費了點時間,因爲先是能發送到163郵箱,不能發送到QQ郵箱,後又是以附件的形式發送郵件,而不是直接顯示其報警內容:

用163做的測試:


使用外部郵箱賬號發送報警郵件設置


一、關閉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版本太舊,使用外部郵件發送會有問題,CentOS6.X自帶版本爲mailx12.4。


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 #進入zabbix腳本存放目錄


vi sendmail.sh #編輯,添加以下代碼


#!/bin/sh

echo "$3" | mail -s "$2" $1

:wq! #保存退出

這個是運維網復貼的:

01

02

03

#! /bin/bash

#echo "$3" | mail -s  "$2" $1

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


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]郵箱,會收到恢復郵件


六、郵件可以收到,但是隻是以附件的形式

原因:

       Unix 系統裏,每行結尾只有“<換行>”,即"\n"Windows系統裏面,每行結尾是“<回車><換行>”,即“\r\n”Mac系統裏,每行結尾是“<回車>”,即"\r";。一個直接後果是,Unix/Mac系統下的文件在Windows裏打開的話,所有文字會變成一行;而Windows裏的文件在Unix/Mac下打開的話,在每行的結尾可能會多出一個^M符號。"
於是就有一中方法,dos2unix 轉換一下.bin文件格式


解決辦法:

安裝dos2unix格式轉換軟件

yum -y install dos2unix


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

1.  #!/bin/bash

2.  export zabbixemailto="$1"

3.  export zabbixsubject="$2"

4.  export zabbixbody="$3"

5.  FILE=/usr/local/zabbix/share/zabbix/alertscripts/mail.txt

6.  echo "$3" > $FILE

7.  /usr/bin/dos2unix -k $FILE

8.  mail -s "$2" $1 < $FILE


這樣配置後依然只收到附件,後網上搜了一下,大部分都是這個配置方式,找到一位網友貼的一方法,試試可行:

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

1.  #!/bin/bash

2.  exportzabbixemailto="$1"

3.  exportzabbixsubject="$2"

4.  exportzabbixbody="$3"

5.  zabbixbody=`echo $zabbixbody|tr '\r' '\n'`

6.  cat << EOF |mail -s "$2"$1

7.  $zabbixbody

8.  EOF


測試成功後,將用戶接收郵箱改爲QQ郵箱,也執行成功,只不過QQ郵件限制很多,發送的郵件內容有可能通不過審查,會退回,引起接收不到郵件,前邊QQ郵箱接收不到可能是以*.bin爲後綴的附件通不過審查,現在QQ郵箱都實現SSL安全認證。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章