基於sendEmail的簡單zabbix郵件報警


一.sendmail和sendEmail區別

sendmail是一款郵件服務器軟件(MTA),sendEmail是命令行SMTP郵件客戶端(MUA)

二.senEmail安裝

下載地址:http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz

#sendEmail解壓后即可使用
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz -P /download
tar xf /download/sendEmail-v1.56.tar.gz -C /download/tmp
cp /download/tmp/sendEmail-v1.56/sendEmail /usr/local/bin/

測試能否成功發送郵件

/usr/local/bin/sendEmail -f "xiami@qsquant.com" -t "26?????877@qq.com" -s "smtp.mxhichina.com" -u "myTest" -o message-content-type=html -o message-charset=utf-8 -xu "xiami@qsquant.com" -xp "Q????234@" -m "hello,this is the test contents"
#成功后提示下列內容
Aug 24 14:50:26 sysqsquantop009 sendEmail[12003]: Email was sent successfully!

*163郵箱、qq郵箱默認沒有開啟pop3/smtp/imap服務,若發件端為163或qq,執行將會出錯,請先開啟pop3/smtp/imap服務后再嘗試

命令說明

/usr/local/bin/sendEmail 命令主程序
-f ttlsafrom@163.com  發件人郵箱
-s smtp.163.com       發件人郵箱的smtp服務器
-u "我是郵件主題"     郵件的標題
-o message-content-type=html   郵件內容的格式,html表示它是html格式
-o message-charset=utf8        郵件內容編碼
-xu ttlsafrom@163.com          發件人郵箱的用戶名
-xp 123456               發件人郵箱密碼
-m "我是郵件內容"        郵件的具體內容

--help          使用命令幫助
命令說明

三.編寫報警郵件發送腳本

#!/bin/bash
#export LANG=zh_CN.UTF-8
to=$1
subject=$2
iconv -f UTF-8 -t GB2312 $subject > $subject    #解決foxmail收郵件的時候中文標題亂碼
body=$3
from=xiami@qsquant.com
smtp=smtp.mxhichina.com

passwd=Q????234@
/usr/local/bin/sendEmail  -f "$from" -t "$to" -s "$smtp" -u "$subject" -o message-content-type=html -o message-charset=utf-8 -xu "$from"  -xp "$passwd" -m "$body"
sendEmail.sh

#chmod +x /opt/alertscripts/sendEmail.sh

四.配置zabbix

4.1 創建一個告警動作(參考筆者上一篇博客第七步http://www.cnblogs.com/xiami-xm/p/7323926.html

第一步:創建告警媒介操作稍有不同,不用設置smtp服務器,直接用腳本實現

4.2 設置執行腳本路徑

vim /usr/local/etc/zabbix_server.conf
AlertScriptsPath=/opt/alertscripts 
#重啟zabbix服務
#ps -ef |grep zabbix_server|awk '{print $2}'|xargs kill -9
#/usr/local/sbin/zabbix_server 

五.測試  

接收的告警郵件內容不換行怎么辦?

sendEmail.sh腳本指定格式是html,所以用<br/>標簽進行換行

 嫌英文別扭的可以改為中文:

====================================================

# 默認接收人:

故障{TRIGGER.STATUS},服務器【{HOST.NAME1}】發生【 {TRIGGER.NAME}】故障!

====================================================

# 默認信息:

告警主機:{HOST.NAME1}<br/>

告警時間:{EVENT.DATE} {EVENT.TIME}<br/>

告警等級:{TRIGGER.SEVERITY}<br/>

告警信息: {TRIGGER.NAME}<br/>

告警項目:{TRIGGER.KEY1}<br/>

問題詳情:{ITEM.NAME}:{ITEM.VALUE}<br/>

當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}<br/>

事件ID:{EVENT.ID}<br/>

====================================================

# 恢復主旨:

恢復{TRIGGER.STATUS},服務器【{HOST.NAME1}】故障【 {TRIGGER.NAME}】已恢復!

====================================================

# 恢復信息:

告警主機:{HOST.NAME1}<br/>

告警時間:{EVENT.DATE} {EVENT.TIME}<br/>

告警等級:{TRIGGER.SEVERITY}<br/>

告警信息: {TRIGGER.NAME}<br/>

告警項目:{TRIGGER.KEY1}<br/>

問題詳情:{ITEM.NAME}:{ITEM.VALUE}<br/>

當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}<br/>

事件ID:{EVENT.ID}<br/>

  

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM