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

Posted brucemengbm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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 [email protected]      #
要从哪个邮箱发出
auth login
tls off
user  zabbix2014                      #
邮箱username
password xxxxx-xxx                  #
邮箱密码,假设你认为不安全能够把文件改为600属性
logfile /var/log/mmlog
保存退出。

 

 

3、简单測试一下

/usr/local/msmtp/bin/msmtp 
[email protected] 
hellotest 
ctrl d
cat /usr/local/msmtp/msmtp.log
看看有没有成功。

 
  然后再到sohu邮箱中。看看信收到没有

 

报错例如以下

[[email protected] msmtp-1.4.32]# /usr/local/msmtp/bin/msmtp [email protected]
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="
[email protected]"
set editor="vim"
简单的4行就能够了
好了,让我们来測试一下吧!



測试一下:echo"test mail" | mutt -s "test" [email protected]

 

OK。測试了下,能收到已经发送的email,例如以下所看到的:

echo"test mail 2014 content tom 2" | mutt -s "test 2014 title2"  [email protected]

 技术分享

 

 

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保存。例如以下图所看到的:

 技术分享

 

 

 

8zabbix用户配置

登录到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服务。一会就应该会报警

[[email protected]~]# service mysql stop

Shutting downMySQL...                                    [确定]

[[email protected]~]#

 

可是没有收到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,比方[email protected])。例如以下图所看到的:

技术分享


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调用有没有成功,假设成功了,最好在脚本里面加上日志。

 

 

以上是关于[Zabbix] 怎样实现邮件报警通知以及免费短信报警通知的主要内容,如果未能解决你的问题,请参考以下文章

zabbix实现QQ邮件报警通知(最详细)--技术流ken

配置zabbix通过微信报警企业微信报警

Zabbix利用msmtp+mutt发送邮件报警

Zabbix实现微信平台报警----基于zabbix3.0.4

zabbix-3.2.11短信报警

分布式系统监视zabbix讲解二之邮件报警通知--技术流ken