设为首页 收藏本站
查看: 1339|回复: 0

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

[复制链接]

尚未签到

发表于 2017-4-20 11:19:28 | 显示全部楼层 |阅读模式
  前提条件:
  (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
hellotest
ctrl d
cat /usr/local/msmtp/msmtp.log
看看有没有成功。
  然后再到sohu邮箱中,看看信收到没有
  
  报错如下
  [iyunv@cache-2msmtp-1.4.32]#/usr/local/msmtp/bin/msmtpzabbix2014@sohu.com
msmtp:authenticationfailed(methodLOGIN)
msmtp:servermessage:5355.7.0Invalidresult
msmtp:couldnotsendmail(accountdefaultfrom/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
   DSC0000.jpg
  
  
  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

  
  6zabbix配置
(1)
创建meida types
1
.登录到zabbix,进入“Administration" >> ”Media types",点击右上角“Create Media Type" Description"mediatype-zabbix2014"或其它名称,Type选择"Script"Script” zabbix2014”
2
.点击save保存,如下图所示:
   DSC0001.jpg
  

  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保存,如下图所示:
   DSC0002.jpg
  
  
  
  8zabbix用户配置

登录到zabbix, 进入"Adimistration" >>"Users",在之前选定要发送消息的组里的Members栏位里选择一个用户,例如选择AdminZabbix用户。

在用户信息修改界面最下方的”Media"处点击"Add"按钮。

Type
选择"mediatype- zabbix2014"Send to填入收件人地址,点击Add添加。

点击"Save"保存配置。如下图所示:
  
   DSC0003.jpg
  
  
  9 测试验证邮件发送功能是否正常。
  PS:这个验证报警的实现,请参考 http://blog.csdn.net/mchdba/article/details/24540017里面有描述mysql.ping_test是如何建立并生效的。
  
  9.1 去stop服务器上的mysql服务,一会就应该会报警
  [iyunv@db-m2-slave-1~]# service mysql stop
  Shutting downMySQL...[确定]
  [iyunv@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
DSC0004.jpg

  
  记得是放在 /usr/bin/zabbix2014 ,所以将脚本放在提示所需要的目录上面,直接mv一下即可:
  mv/usr/bin/zabbix2014 /usr/local/zabbix/scripts/zabbix2014
  之后会看到新的报警PROBLEM信息,email已经发送出去了,如下图:
DSC0005.jpg

  
  9.2 改email地址,改成139邮箱,并且附带免费短信报警功能实现。
  进入目录,AdministrationUsers Zabbix administrators Users (1) AdminZabbix(最左边一列)Media(选择中间的那一个栏目)—> mediatype-zabbix2014(选择用Trigger所用的mediatype)Edit(点击进去修改)Send to(后面的输入框里面填写上139的email,比如xxx@139.com),如下图所示:
   DSC0006.jpg

  

  
  9.3 切换139邮箱来验证发送短信功能
  注册139邮箱,打开email,stop以及start数据库上面的mysql进程服务,就会收到报警email以及短信通知,报警email如下:
  
DSC0007.jpg

  记得开启短信提示功能,短信免费。
DSC0008.jpg


  
  
  9.4 如何让zabbix继续发送报警信息直到恢复正常为止。
  进入目录,ConfigurationHosts选中主机TriggerName(比如进入check_mysql_status)在Multiple PROBLEM events generation一栏打勾Save。如下图所示:

DSC0009.jpg

  
  
  10 总结:
  第一次zabbix的邮件报警试验成功了,折腾了很多天,也咨询了很多朋友,在此感谢他们,下面还有许多zabbix的深入的东西需要继续学习继续专研。
  
  且行且努力吧。
  
  参考文章:http://bbs.hx95.com/read-htm-tid-181423.html
  
  附上网友北京酱油帝的建议,如何验证trigger报警成功:
  要想验证trigger的有效性很简单:
  第一,trigger在monitor的界面有个events选项看到没有,那里面是可以点击机器ip的,你看你定义的trigger有没有发生。
  第二, 第二,如果trigger发生了,是要看脚本也就是media调用有没有成功,如果成功了,最好在脚本里面加上日志。
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-366809-1-1.html 上篇帖子: zabbix_api 请求 java版写法 下篇帖子: zabbix 2.0以上版本远程命令action重复执行
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表