分布式监控系统Zabbix3.2给异常添加邮件报警

原创 2017年12月06日 08:45:57

  在前一篇 分布式监控系统Zabbix3.2跳坑指南 中已安装好服务端和客户端,此处客户端是被监控的服务器,可能有上百台服务器。监控的目的一个是可以查看历史状态,可以对比零晨和工作区间数据的对比,以便后期进行优化指导。还有一个是报警,总不能等到服务器出现异常了才去从头查是什么问题吧。所以这篇主要介绍报警中最基础的一个 配置邮件预警。

  通常zabbix提供了 e-mail、sms、jabber、微信等预警方式,sms等前期需要资金投入那就先否决吧,谁叫老板不给钱。

安装邮件发送工具mailx

  这里我选择的是mailx,所以的关闭其他的邮件发送工具

service sendmail stop #关闭
chkconfig sendmail off #禁止开机启动
service postfix stop
chkconfig postfix off

 执行安装mailx的命令:

yum install mailx

配置Zabbix服务端外部邮箱

打开文件vi /etc/mail.rc 如果mail.rc文件没有,就手动创建 内容如下:

set sendcharsets=iso-8859-1,utf-8
set from=123456789@163.com
set smtp=smtp.163.com:25
set smtp-auth-user=123456789@163.com #认证用户,一般与from保持一致
set smtp-auth-password=xxx #认证密码,如何开通授权可自行google

 

测试邮件是否可以发出

echo "zabbix test mail" |mail -s "zabbix" yyy@163.com
#这时候,邮箱yyy@163.com会收到来自123456789@163.com的测试邮件

编写发送邮件脚本

进入下面路径:/usr/local/zabbix/alertscripts 创建sendmail.sh文件,内容如下
echo "$3" | mail -s "$2" "$1"


  上面的这个三个参数是接收从web页面中传递过来的,$1:收件人邮箱地址;$2:邮件标题;$3:邮件内容
  为什么我们会在这个路径下面创建这个脚本呢,这是在我们的zabbix_server.conf文件中配置的
  AlertScriptsPath=/usr/local/zabbix/alertscripts
  所以你不想将这个脚本放在这个目录下面,需要修改服务端的配置文件中的AlertScriptsPath的值。

配置web页面

  创建媒体类型

  点击创建媒体类型

 

 

  添加以下3个参数,分别对应sendmail.sh脚本需要的3个参数:收件人地址、主题、详细内容
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
  如果在3.0中不添加这三个参数会报错,因为在3.0以后zabbix允许自定义参数了,所以不会默认传递参数,在2.0的时候会默认传递三个参数,所以在3.0如果不写这三个参数会报错。

给用户添加报警媒介

在这以Admin用户为例 管理—》用户—》点击Admin

 

点击Admin

 

添加接收人

添加动作


填写动作选项 

此处添加以一般严重 状态的信息都报警。

除了自己填写一个名称以外,其余的都默认就好了。当然也可以修改成中文:参考如下

默认接收人:
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障!
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复信息:打钩

恢复主题:

恢复{TRIGGER.STATUS},服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:
告警主机:{HOSTNAME1}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
#这里注意了,很多教程都是复制故障通知消息,这里时间需要设置为EVENT.RECOVERY.DATE 才会发送正确的故障恢复时间,否则会发送故障发生时的时间。
告警时间:{EVENT.DATE}{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
已启用:打钩

填写条件选项

 

解释:

默认的步骤是1-1,也即是从1开始到1结束。一旦故障发生,就是执行sendEmail.sh脚本发生报警邮件给Admin用户和zabbix administrator组。

假如故障持续了1个小时,它也只发送一次。如果改成1-0,0是表示不限制.无限发送 间隔就是默认持续时间60秒。那么一个小时,就会发送60封邮件。
到这我们的邮件报警配置就完成了,这是只要我们设置的触发器触发,就会自动给我发送报警邮件。

测试邮件报警

我将zabbix自带的模板中的对可用内存的监控中的触发器的临界值改为大于0,进入模板列表

点击修改,改成可用内存小于2g就报警,这样就容易触发。

保存以后 将收到一份报警邮件 内容如下:

在此就配好了邮件发送。

补坑注意:

  在邮件发送时,按上面的sendmail.sh中的写可能会出现zabbix邮件内容为附件和zabbix图中出现中文乱码问题。

下面是参考园友的解决方法:

安装zabbix之后,设置邮件脚本报警的时候,发送的报警内容变成了tcmime.1278.1278.1724.bin或ATT00001.bin。

安装dos2unix:
yum -y install mailx dos2unix //安装mailx工具和dos2unix转换工具

以下是脚本内容
打开 /usr/local/zabbix/alertscripts/sendmail.sh
替换内容

#!/bin/bash

export LANG=zh_CN.UTF-8

file=/tmp/zabbix_mail.txt
echo "$3" > $file
dos2unix -k $file
/bin/mailx -s "$2" $1 < $file

 

版权声明:作者:欢醉 公众号【一个码农的日常】技术群:319931204 1号群: 437802986 2号群: 340250479 出处:http://blog.csdn.net/zs1041126478 本文版权归作者和博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

zabbix3.2邮件报警

1、sendEmail安装 cd /usr/local/src/ wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v...
  • xiegh2014
  • xiegh2014
  • 2016年12月27日 21:25
  • 6649

zabbix3.2邮件报警配置

1.编辑zabbix_server.conf文件 编辑zabbix_server.conf文件,修改AlertScriptsPath参数,该参数用于指定外部脚本的绝对路径。 vim /etc/za...
  • wszll_Alex
  • wszll_Alex
  • 2017年08月16日 14:48
  • 2028

Zabbix3.2邮件告警python脚本

zabbix监控也起到重要作用,以下是使用python脚本发送告警邮件配置方法。之前使用过sendemail邮件报警但是发现邮件主题为中文时候会出现乱码的问题。...
  • xiegh2014
  • xiegh2014
  • 2017年06月18日 18:18
  • 3168

zabbix3.2使用sendEmail发送告警邮件

首先介绍下sendemail,sendEmail是一个免费、轻量级、命令行的SMTP邮件客户端。其实就是个Perl脚本文件。使用简单,不需要大量的配置工作。尽管他是一个很简单的应用,但是白开在使用过程...
  • liang_baikai
  • liang_baikai
  • 2016年12月13日 15:48
  • 97640

Zabbix3.0邮件告警配置

概述 安装环境 编写脚本 修改配置文件 新建媒体类型 添加收件人 配置报警动作 测试概述最近在部署调试zabbix3.0监控系统,邮件告警是监控系统中必不可少的一部分,下面就来谈谈通过自定义脚本的方式...
  • cheng10cc
  • cheng10cc
  • 2016年07月08日 00:15
  • 4032

centos7.2+zabbix3.2+sedmail邮件告警

sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php、bash、perl和web...
  • xiegh2014
  • xiegh2014
  • 2017年02月21日 10:18
  • 3375

ZABBIX3.04设置外部邮件报警

本文是继ZABBIX3.04设置中文界面以及修改字体(2016-10-10 00:43)的后一篇 本文早期参考地址已经遗忘,如有侵权请告知 1: 安装软件包     yum -y install...
  • tianhua79658788
  • tianhua79658788
  • 2016年10月10日 01:06
  • 5874

监测mysql错误日志,有错误自动邮件报警

#检查错误日志里是否有ERROR,有的话,邮件报警 #每分钟监控一次 #*/1 * * * *  /download/dandan/shell_script/monitor_errlog.sh >...
  • YABIGNSHI
  • YABIGNSHI
  • 2016年05月18日 13:48
  • 1198

Zabbix分布式监控系统实践之 (2) 自定义配置

 目录结构 Zabbix分布式监控系统实践之 (0) 什么是Zabbix Zabbix分布式监控系统实践之 (1) 环境部署 Zabbix分布式监控系统实践之 (2) ...
  • zm_21
  • zm_21
  • 2015年07月14日 13:51
  • 1420

cacti 设置接收报警邮件

邮件报警功能对于cacti来说很重要,管理者通过报警邮件,可以在第一时间得知被监控设备异常状态,为发现问题,处理问题节省了很多宝贵的时间,它的设置并不复杂,下面就来做一下简单的图文配置; 首先,打开”...
  • tangmeisuan
  • tangmeisuan
  • 2015年01月06日 16:57
  • 1253
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:分布式监控系统Zabbix3.2给异常添加邮件报警
举报原因:
原因补充:

(最多只允许输入30个字)