前提条件:
(1) zabbix服务器端已经成功安装并且运行。
(2) zabbix客户端已经成功建立并且运行。
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地址
3、简单测试一下
报错如下
[root@cache-2 msmtp-1.4.32]# /usr/local/msmtp/bin/msmtp zabbix2014@sohu.com
Google之后,需要安装 mutt组件
4、下面开始安装 MUTT如果是CentOS的话直接用yum就好了
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,并写入如下内容:
6、 zabbix配置

7、创建actions

8、zabbix用户配置

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的深入的东西需要继续学习继续专研。
且行且努力吧。