zabbix 3.0.2郵件報警

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

perl和web站點使用。

請注意,不是sendmail。我第一次看到這個名字,直接yum install -y sendmail了

然後下面就蒙圈了。


下載軟件

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

創建目錄

mkdir /usr/local/bin

解壓軟件

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

進入目錄

cd /usr/src/sendEmail-v1.56

複製文件,並設置權限

cp -a sendEmail /usr/local/bin

chmod +x /usr/local/bin/sendEmail

安裝組件

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

進入zabbix自定義的指定目錄

可以查看zabbix_server.conf配置文件AlertScriptsPath變量是如何定義的。

cd /usr/local/zabbix/alertscripts/

編輯腳本

vim sendEmail.sh

內容如下:


#!/bin/bash


to=$1

subject=$2

body=$3

/usr/local/bin/sendEmail  -f [email protected] -t "$to" -s smtp.exmail.qq.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu [email protected] -xp password -m "$body"


說明:

上面有4個地方我用紫色加粗字體表示了

[email protected] 表示發件人郵箱

smtp.exmail.qq.com 表示郵箱的smtp服務器,因爲我是用的騰訊企業郵箱。如果是其他郵箱,需要修改

password 表示發件人郵箱密碼


編輯完成後,給腳本權限

chmod +x sendEmail.sh

chown zabbix.zabbix sendEmail.sh

手動執行一次腳本,後面的參數分別對應接收人,主題,內容

./sendEmail.sh [email protected] test 123

登錄[email protected]的賬戶,查看郵件是否可以收到

如果腳本執行沒有報錯,收不到郵件的話,請檢查linux網絡問題,iptables、selinux是否關閉。


進入zabbix管理頁面

點擊管理->報警媒介類型 點擊最右邊的創建媒體類型

wKioL1cghBDCJPJaAABZuUFy0JE395.png

輸入腳本名稱,類型選擇腳本

添加以下3個參數,分別對應sendEmail.sh腳本需要的3個參數:收件人地址、主題、詳細內容

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

wKioL1cghJjjiXh0AABF7tiHPac348.png

解釋:很多人安裝zabbix 3.0之後,寫的腳本一直髮信不成功,手動執行時可以的。

那是因爲zabbix3.0之後,可以自定義參數了。所以不寫參數,它是不會傳參數的。

在2.x版本不存在這個問題,默認會傳3個參數。


點擊Admin用戶

wKiom1cgiAGDVx3FAAA8B3nqKI4199.png

點擊添加

wKioL1cgiQ7iEEhQAABQeX3jgl0760.png

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

wKiom1cgiOWjSCLuAAA0B3ukaXI927.png

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

wKiom1cgiS6CNt_zAACHMPvSEyw569.png

點權限->添加

wKioL1cgi-bB6-NyAABcXAFVMp4220.png


選擇所有

wKiom1cgi1TxPot5AAAntgulR40667.png

點擊更新

wKiom1cglbnQ5XSNAABOBaTSZ3g550.png

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

wKioL1cglv7jJ80dAABGRNTnOxI176.png

點擊操作->編輯

wKioL1cgl1nzaMzZAABVCmHIEvk323.png

修改持續時間爲60秒

修改步驟爲3,表示觸發3次動作

選擇用戶Admin

選擇僅送到sendEmail.sh

點擊更新

wKioL1cgl8yxxkqdAABiANAKiTM345.png

點擊更新

wKiom1cglzywWKXTAABME_yw5Gs171.png

解釋:默認的步驟是1-1,也即是從1開始到1結束。一旦故障發生,就是執行sendEmail.sh腳本發生報警郵件給Admin用戶和zabbix administrator組。

假如故障持續了1個小時,它也只發送一次。如果改成1-0,0是表示不限制.無限發送

間隔就是默認持續時間60秒。那麼一個小時,就會發送60封郵件。

如果需要短信報警的話,可以再創建一條新的動作,選擇短信腳本。


下面開始測試郵件報警

先添加一臺主機test,不存在的IP地址

等待幾分鐘,可以看到是紅色狀態

wKioL1chsH6SwpVHAABcdt2rrmo787.png

等待幾分鐘,就會收到郵件報警了

wKioL1chsOjgLEB8AABoDDUGs0w039.png

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

wKiom1chsGajru9OAAETt4AAels459.png

大家可以看到郵件裏面內容都堆到一起了,沒有換行,有點不爽。

可以修改動作日誌的內容格式

點擊 配置->動作->Report problems to Zabbix administrators

在默認信息每一行後面添加<br/>

列如:

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/>

點擊更新

再添加第2臺主機test_1

wKioL1chtWDTXjWgAABsrkoIbe8431.png

等待10分鐘左右,就會收到郵件,這次內容換行了。

wKioL1chtRiSPatbAABi9QoS7lg186.png

看英文有點不爽,我們還可以再改一下

wKiom1chtP2C8JYoAACE2pE8OXQ867.png

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


告警主機:&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}<br/>


下面給一張中文的報警內容

wKioL1chtsuRPE1LAABRcQEJ5yo336.png

其實主題zabbix alarm可以改成中文的。網頁顯示正常,但是foxmail客戶端,顯示亂碼。

所以主題還是用的英文,內容裏面的中文還是顯示正常的。


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