版權聲明:本文爲博主原創文章,未經博主容許不得轉載。html
前提條件:mysql
(1) zabbix服務器端已經成功安裝而且運行。sql
(2) zabbix客戶端已經成功創建而且運行。數據庫
1 下載而且安裝msmtp軟件vim
Wget http://sourceforge.net/projects/msmtp/files/msmtp/1.4.32/msmtp-1.4.32.tar.bz2/download安全
tar jxvf msmtp-1.4.32.tar.bz2bash
cd msmtp-1.4.32服務器
./configure--prefix=/usr/local/msmtp學習
Make測試
Make install
二、手動創建配置文件,輸入外部smtp地址
mkdir –p /usr/local/msmtp/etc
vi /usr/local/msmtp/etc/msmtprc
添加如下內容
account default
host smtp.sohu.com #你的發送郵件服務器
port 25
from zabbix2014@sohu.com #要從哪一個郵箱發出
auth login
tls off
user zabbix2014 #郵箱用戶名
password xxxxx-xxx #郵箱密碼,若是你以爲不安全能夠把文件改成600屬性
logfile /var/log/mmlog
保存退出。
三、簡單測試一下
/usr/local/msmtp/bin/msmtp zabbix2014@sohu.com
hello,test
ctrl d
cat /usr/local/msmtp/msmtp.log 看看有沒有成功。
而後再到sohu郵箱中,看看信收到沒有
報錯以下
[root@cache-2 msmtp-1.4.32]# /usr/local/msmtp/bin/msmtp zabbix2014@sohu.com
msmtp: authentication failed (method LOGIN)
msmtp: server message: 535 5.7.0 Invalid result
msmtp: could not send mail (account default from /usr/local/msmtp/etc/msmtprc)
Google以後,須要安裝 mutt組件
四、下面開始安裝 MUTT若是是CentOS的話直接用yum就行了
yum install mutt
安裝完成後要手動給他創建一個配置文件,
vim /etc/Muttrc
setsendmail="/usr/local/msmtp/bin/msmtp" #你的msmtp命令路徑
set use_from=yes
set realname="zabbix2014@sohu.com"
set editor="vim"
簡單的4行就能夠了
好了,讓咱們來測試一下吧!
測試一下:echo"test mail" | mutt -s "test" zabbix2014@sohu.com
OK,測試了下,能收到已經發送的email,以下所示:
echo"test mail 2014 content tom 2" | mutt -s "test 2014 title2" zabbix2014@sohu.com
五、 建立 zabbix用於發送郵件的腳本
腳本放在什麼位置隨便,可是要保證zabbix能夠找到!
1)vim/usr/bin/zabbix2014,並寫入以下內容:
#!/bin/bash
echo "$3" | mutt -s "$2"$1 # $3表示郵件內容、$2表示郵件標題、$1表示收件人
(2)chmod a+x /usr/bin/zabbix2014
六、 zabbix配置
(1)建立meida types
1.登陸到zabbix,進入「Administration" >> 」Media types",點擊右上角「Create Media Type"。 Description填"mediatype-zabbix2014"或其它名稱,Type選擇"Script",Script填」 zabbix2014」。
2.點擊save保存,以下圖所示:
七、建立actions
1.登陸到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保存,以下圖所示:
八、zabbix用戶配置
登陸到zabbix, 進入"Adimistration" >>"Users",在以前選定要發送消息的組裏的Members欄位裏選擇一個用戶,例如選擇AdminZabbix用戶。
在用戶信息修改界面最下方的」Media"處點擊"Add"按鈕。
Type選擇"mediatype- zabbix2014",Send to填入收件人地址,點擊Add添加。
點擊"Save"保存配置。以下圖所示:
9 測試驗證郵件發送功能是否正常。
PS:這個驗證報警的實現,請參考 http://blog.csdn.net/mchdba/article/details/24540017 裏面有描述MySQL.ping_test是如何創建並生效的。
9.1 去stop服務器上的mysql服務,一會就應該會報警
[root@db-m2-slave-1~]# service mysql stop
Shutting downMySQL... [肯定]
[root@db-m2-slave-1~]#
可是沒有收到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,好比xxx@139.com),以下圖所示::
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的深刻的東西須要繼續學習繼續專研。
且行且努力吧。
參考文章:http://bbs.hx95.com/read-htm-tid-181423.html
附上網友北京醬油帝的建議,如何驗證trigger報警成功:
要想驗證trigger的有效性很簡單:
第一,trigger在monitor的界面有個events選項看到沒有,那裏面是能夠點擊機器ip的,你看你定義的trigger有沒有發生。
第二, 第二,若是trigger發生了,是要看腳本也就是media調用有沒有成功,若是成功了,最好在腳本里面加上日誌。