zabbix3.0.4 郵件告警詳細配置

sendEmail是一個輕量級,命令行的SMTP郵件客戶端。如果你需要使用命令行發送郵件,那麼sendEmail是非常完美的選擇:使用簡單並且功能強大.這個被設計用在php、bash 
perl和web站點使用。

1.下載軟件

wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz

2.創建目錄

mkdir /usr/local/bin

3.解壓軟件

tar zxf sendEmail-v1.56.tar.gz -C /usr/src

4.進入目錄

cd /usr/src/sendEmail-v1.56

5.複製文件,並設置權限

cp -a sendEmail /usr/local/bin
chmod +x /usr/local/bin/sendEmail

6.安裝組件

yum install perl-Net-SSLeay perl-IO-Socket-SSL -y

7.測試郵件功能

# /usr/local/bin/sendEmail -f [email protected] -t [email protected] -s smtp.163.com -u "我是郵件主題" -o message-content-type=html -o message-charset=utf8 -xu [email protected] -xp 123456 -m "我是郵件內容" -l /var/log/sendMyEmail.log

命令說明:

/usr/local/bin/sendEmail        命令主程序-f from@163.com                 發件人郵箱-t to@163.com                   收件人郵箱-s smtp.163.com                 發件人郵箱的smtp服務器-u "我是郵件主題"                 郵件的標題-o message-content-type=html    郵件內容的格式,html表示它是html格式-o message-charset=utf8         郵件內容編碼-xu from@163.com                發件人郵箱的用戶名-xp 123456                      發件人郵箱密碼-m "我是郵件內容"                 郵件的具體內容
-l
/var/log/sendMyEmail.log     非必輸項,郵件發送日誌記錄到日誌文件

8.查看編輯腳本配置

進入zabbix自定義的指定目錄,我這裏是/usr/local/zabbix 
可以查看zabbix_server.conf配置文件AlertScriptsPath變量是如何定義的。

vim /usr/local/zabbix/etc/zabbix_server.conf

找到AlertScriptsPath選項,可以自定義位置

### Option: AlertScriptsPath#       Full path to location of custom alert scripts.#       Default depends on compilation options.## Mandatory: no# Default:# AlertScriptsPath=${datadir}/zabbix/alertscriptsAlertScriptsPath=/usr/local/zabbix/alertscripts

cd /usr/local/zabbix/alertscripts/ 
9.編輯腳本

vim sendEmail.sh

內容如下:

#!/bin/bashto=$1subject=$2body=$3/usr/local/bin/sendEmail  -f [email protected] -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu [email protected] -xp password -m "$body"

說明: 
[email protected] 替換成自己的發件郵箱 
smtp.163.com 表示郵箱的smtp服務器,這裏展示使用的是163郵箱,替換自己的郵箱SMTP地址 
password 替換成發件郵箱密碼

10.編輯完成後,給腳本權限

chmod +x sendEmail.shchown zabbix.zabbix sendEmail.sh

11.web界面配置

進入zabbix管理頁面 
點擊管理->報警媒介類型 點擊最右邊的創建媒體類型

輸入腳本名稱,類型選擇腳本並添加以下3個參數,分別對應sendEmail.sh腳本需要的3個參數:收件人地址、主題、詳細內容

{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE}

解釋:很多人安裝zabbix 3.0之後,寫的腳本一直髮信不成功,手動執行時可以的。 
那是因爲zabbix3.0之後,可以自定義參數了。所以不寫參數,它是不會傳參數的。 
在2.x版本不存在這個問題,默認會傳3個參數。

點擊Admin用戶

點擊報價媒介-添加

選擇sendEmail.sh腳本,輸入收件人的郵箱地址

點擊用戶羣組,點擊zabbix administrator後面的調用模式,點擊一下,就啓用了

點擊Zabbix administrators組名稱 點權限->添加

選擇所有 點擊更新。

點擊配置->動作 點擊默認的動作:

點擊操作->編輯:

修改以下內容(實際情況,大家根據自己需求填寫,這裏僅僅爲了展示) 
修改持續時間爲60秒 
修改步驟爲3,表示觸發3次動作 
選擇用戶Admin 
選擇僅送到sendEmail.sh 
點擊更新

解釋: 
默認的步驟是1-1,也即是從1開始到1結束。一旦故障發生,就是執行sendEmail.sh腳本發生報警郵件給Admin用戶和zabbix administrator組。 
假如故障持續了1個小時,它也只發送一次。如果改成1-0,0是表示不限制.無限發送 
間隔就是默認持續時間60秒。那麼一個小時,就會發送60封郵件。 
如果需要短信報警的話,可以再創建一條新的動作,選擇短信腳本。

我這裏添加一個條件,觸發後: 
郵件發送後內容爲:

點擊報表->動作日誌 可以看到觸發動作的次數。只會有3次,除非test主機狀態改變,也就是正常的時候,會觸發一次,否則不會再觸發。

大家可以看到郵件裏面內容都堆到一起了,沒有換行,有點不爽。 
可以修改動作日誌的內容格式 
點擊 配置->動作->Report problems to Zabbix administrators 
在默認信息每一行後面添加 
列如:

Trigger: {TRIGGER.NAME}<br/>Trigger status: {TRIGGER.STATUS}<br/>Trigger severity: {TRIGGER.SEVERITY}<br/>Trigger URL: {TRIGGER.URL}<br/>Item values:<br/>1. {ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}<br/>2. {ITEM.NAME2} ({HOST.NAME2}:{ITEM.KEY2}): {ITEM.VALUE2}<br/>3. {ITEM.NAME3} ({HOST.NAME3}:{ITEM.KEY3}): {ITEM.VALUE3}<br/>

Original event ID: {EVENT.ID}

因爲我用sendEmail.sh腳本指定格式是html,所以換行就是<br/>

或者改成中文提示:

默認信息和恢復信息是一樣的

告警主機:&nbsp;{HOSTNAME1}<br/>
告警時間:&nbsp;{EVENT.DATE} {EVENT.TIME}<br/>
告警等級:&nbsp;{TRIGGER.SEVERITY}<br/>
告警信息: &nbsp;{TRIGGER.NAME}<br/>
告警項目:&nbsp;{TRIGGER.KEY1}<br/>
問題詳情:&nbsp;{ITEM.NAME}:&nbsp;{ITEM.VALUE}<br/>
當前狀態:&nbsp;{TRIGGER.STATUS}:&nbsp;{ITEM.VALUE1}<br/>
事件ID:&nbsp;{EVENT.ID}

參考資料 http://www.itnpc.com/news/web/146181043560596.html 
http://blog.csdn.net/xiegh2014/article/details/52118643

轉自http://www.cnblogs.com/rysinal/p/5834421.html

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