Zabbix 如何實現郵件報警通知以及免費簡訊報警通知
前提條件:
(1) zabbix伺服器端已經成功安裝並且執行。
(2) zabbix客戶端已經成功建立並且執行。
1 下載並且安裝msmtp軟體
tar jxvf msmtp-1.4.32.tar.bz2
cd msmtp-1.4.32
./configure--prefix=/usr/local/msmtp
Make
Make install
2、手動建立配置檔案,輸入外部smtp地址mkdir –p /usr/local/msmtp/etcvi /usr/local/msmtp/etc/msmtprc新增以下內容account default host smtp.sohu.com #你的傳送郵件伺服器
3、簡單測試一下/usr/local/msmtp/bin/msmtp hello,test ctrl dcat /usr/local/msmtp/msmtp.log 看看有沒有成功。 然後再到sohu郵箱中,看看信收到沒有
報錯如下
[[email protected] msmtp-1.4.32]# /usr/local/msmtp/bin/msmtp [email protected]: authentication failed (method LOGIN)msmtp: server message: 535 5.7.0 Invalid resultmsmtp: could not send mail (account default from /usr/local/msmtp/etc/msmtprc)
Google之後,需要安裝 mutt元件
4、下面開始安裝 MUTT如果是CentOS的話直接用yum就好了yum install mutt
OK,測試了下,能收到已經發送的email,如下所示:
echo"test mail 2014 content tom 2" | mutt -s "test 2014 title2" [email protected]
5、建立 zabbix用於傳送郵件的指令碼
指令碼放在什麼位置隨便,但是要保證zabbix可以找到!
1)vim/usr/bin/zabbix2014,並寫入如下內容:#!/bin/bashecho "$3" | mutt -s "$2"$1 # $3表示郵件內容、$2表示郵件標題、$1表示收件人(2)chmod a+x /usr/bin/zabbix2014
6、 zabbix配置(1)建立meida types1.登入到zabbix,進入“Administration" >> ”Media types",點選右上角“Create Media Type"。 Description填"mediatype-zabbix2014"或其它名稱,Type選擇"Script",Script填” zabbix2014”。2.點選save儲存,如下圖所示:
7、建立actions1.登入到zabbix,進入"Configation" >> "Actions",點選右上角"Create Actions"。輸入Name “action-zabbix2014” ,其它都預設點選右側“Action Operations"下的"New"按鈕,"Operation Type"選擇"Send message","Send Message to"選擇一個或多個要傳送訊息的使用者組,”Send only to"選擇我們之前新增的mediatype-zabbix2014。2.點選save儲存,如下圖所示:
8、zabbix使用者配置登入到zabbix, 進入"Adimistration" >>"Users",在之前選定要傳送訊息的組裡的Members欄位裡選擇一個使用者,例如選擇AdminZabbix使用者。在使用者資訊修改介面最下方的”Media"處點選"Add"按鈕。Type選擇"mediatype- zabbix2014",Send to填入收件人地址,點選Add新增。點選"Save"儲存配置。如下圖所示:
9 測試驗證郵件傳送功能是否正常。
9.1 去stop伺服器上的mysql服務,一會就應該會報警
[[email protected]~]# service mysql stop
Shutting downMySQL... [確定]
但是沒有收到email,所以我們需要去看events,是否有提示為什麼會發不出email來。進去目錄Monitoring—> EventsGroup(選All)Host(選要監控的資料庫主機)Source(選Trigger)。
點開最左邊一列的連線 02 May 2014 12:34:06 ,
看到提示:
/usr/local/zabbix/scripts/zabbix2014: [2] Nosuch file or directory
記得是放在 /usr/bin/zabbix2014 ,所以將指令碼放在提示所需要的目錄上面,直接mv一下即可:
mv/usr/bin/zabbix2014 /usr/local/zabbix/scripts/zabbix2014
之後會看到新的報警PROBLEM資訊,email已經發送出去了,如下圖:
9.2 改email地址,改成139郵箱,並且附帶免費簡訊報警功能實現。
進入目錄,AdministrationUsers Zabbix administrators Users (1) AdminZabbix(最左邊一列)Media(選擇中間的那一個欄目)—> mediatype-zabbix2014(選擇用Trigger所用的mediatype)Edit(點選進去修改)Send to(後面的輸入框裡面填寫上139的email,比如[email protected]),如下圖所示::
9.3 切換139郵箱來驗證傳送簡訊功能
註冊139郵箱,開啟email,stop以及start資料庫上面的mysql程序服務,就會收到報警email以及簡訊通知,報警email如下:
記得開啟簡訊提示功能,簡訊免費。
9.4 如何讓zabbix繼續傳送報警資訊直到恢復正常為止。
進入目錄,ConfigurationHosts選中主機TriggerName(比如進入check_mysql_status)在Multiple PROBLEM events generation一欄打勾Save。如下圖所示:
10 總結:
第一次zabbix的郵件報警試驗成功了,折騰了很多天,也諮詢了很多朋友,在此感謝他們,下面還有許多zabbix的深入的東西需要繼續學習繼續專研。
且行且努力吧。
附上網友北京醬油帝的建議,如何驗證trigger報警成功:
要想驗證trigger的有效性很簡單:
第一,trigger在monitor的介面有個events選項看到沒有,那裡面是可以點選機器ip的,你看你定義的trigger有沒有發生。
第二, 第二,如果trigger發生了,是要看指令碼也就是media呼叫有沒有成功,如果成功了,最好在腳本里面加上日誌。