0
点赞
收藏
分享

微信扫一扫

zabbix实现邮件报警通知以及免费短信报警通知

前提条件:

 (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 地址  

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

 保存退出。

  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" 按钮, "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 测试验证邮件发送功能是否正常。

  PS:这个验证报警的实现, 里面有描述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 May2014 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à Zabbixadministrators à 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调用有没有成功,如果成功了,最好在脚本里面加上日志。



举报

相关推荐

0 条评论