[Zabbix] 如何实现邮件报警通知以及免费短信报警通知

 前提条件: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—> 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的有效性很简单:

第一,trigger在monitor的界面有个events选项看到没有,那里面是能够点击机器ip的,你看你定义的trigger有没有发生。

第二,  第二,若是trigger发生了,是要看脚本也就是media调用有没有成功,若是成功了,最好在脚本里面加上日志。

相关文章
相关标签/搜索