[Zabbix] 怎样实现邮件报警通知以及免费短信报警通知
?前提條件:
(1) zabbixserver端已經安裝成功而且執行。
(2) zabbixclient已經成功建立而且執行。
1 下載而且安裝msmtp軟件
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.bz2
cd msmtp-1.4.32
./configure--prefix=/usr/local/msmtp
Make
Make install
?
?
2、手動建立配置文件,輸入外部smtp地址
mkdir –p /usr/local/msmtp/etc
vi /usr/local/msmtp/etc/msmtprc
加入以下內容
account default?
host smtp.sohu.com????????????????????#你的發送郵件server
port 25
from zabbix2014@sohu.com??????#要從哪個郵箱發出
auth login
tls off
user ?zabbix2014??????????????????????#郵箱username
password xxxxx-xxx ? ? ? ? ? ? ? ? ?#郵箱密碼,假設你認為不安全能夠把文件改為600屬性
logfile /var/log/mmlog
保存退出。
?
?
3、簡單測試一下
/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組件
4、以下開始安裝 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
?
?
?
5、????創建 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
?
6、????zabbix配置
(1)創建meida types
1.登錄到zabbix,進入“Administration" >> ”Media types",點擊右上角“Create Media Type"。
Description填"mediatype-zabbix2014"或其他名稱,Type選擇"Script",Script填” zabbix2014”。
2.點擊save保存,例如以下圖所看到的:
?
7、創建actions
1.登錄到zabbix,進入"Configation" >> "Actions",點擊右上角"Create Actions"。輸入Name “action-zabbix2014” ,其他都默認點擊右側“Action Operations"下的"New"button,"Operation Type"選擇"Send message"。"Send Message to"選擇一個或多個要發送消息的用戶組,”Send only to"選擇我們之前新增的mediatype-zabbix2014。
2.點擊save保存。例如以下圖所看到的:
?
?
?
?
8、zabbix用戶配置
登錄到zabbix, 進入"Adimistration" >>"Users",在之前選定要發送消息的組里的Members欄位里選擇一個用戶。比如選擇AdminZabbix用戶。
在用戶信息改動界面最下方的”Media"處點擊"Add"button。
Type選擇"mediatype- zabbix2014",Send to填入收件人地址,點擊Add加入。
點擊"Save"保存配置。例如以下圖所看到的:
?
?
?
9 測試驗證郵件發送功能是否正常。
PS:這個驗證報警的實現,請參考 http://blog.csdn.net/mchdba/article/details/24540017?里面有描寫敘述mysql.ping_test是怎樣建立并生效的。
9.1 去stopserver上的mysql服務。一會就應該會報警
[root@db-m2-slave-1~]# service mysql stop
Shutting downMySQL...????????????????????????????????????[確定]
[root@db-m2-slave-1~]#
?
可是沒有收到email,所以我們須要去看events,是否有提示為什么會發不出email來。進去文件夾Monitoring—> Events?Group(選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郵箱。而且附帶免費短信報警功能實現。
進入文件夾,Administration?Users? 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繼續發送報警信息直到恢復正常為止。
進入文件夾,Configuration?Hosts?選中主機?Trigger?Name(比方進入check_mysql_status)?在Multiple PROBLEM events generation一欄打勾?Save。例如以下圖所看到的:
?
?
10 總結:
第一次zabbix的郵件報警試驗成功了,折騰了非常多天,也咨詢了非常多朋友,在此感謝他們,以下還有很多zabbix的深入的東西須要繼續學習繼續專研。
?
且行且努力吧。
?
參考文章:http://bbs.hx95.com/read-htm-tid-181423.html
?
附上網友北京醬油帝的建議,怎樣驗證trigger報警成功:
要想驗證trigger的有效性非常easy:
第一,trigger在monitor的界面有個events選項看到沒有,那里面是能夠點擊機器ip的。你看你定義的trigger有沒有發生。
第二。? 第二,假設trigger發生了,是要看腳本也就是media調用有沒有成功,假設成功了,最好在腳本里面加上日志。
?
?
轉載于:https://www.cnblogs.com/brucemengbm/p/6957069.html
總結
以上是生活随笔為你收集整理的[Zabbix] 怎样实现邮件报警通知以及免费短信报警通知的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 任意地方点击事件
- 下一篇: jQ 插件 iscroll.js