分布式监控系统Zabbix3.2给异常添加邮件报警
在前一篇 分布式监控系统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
分布式监控系统Zabbix3.2给异常添加邮件报警的更多相关文章
- 分布式监控系统Zabbix3.2监控数据库的连接数
在 分布式监控系统Zabbix3.2跳坑指南 和 分布式监控系统Zabbix3.2给异常添加邮件报警 已经介绍了如何安装以及报警.此篇通过介绍监控数据库的3306端口连接数来了解如何监控其它端口和配置 ...
- 分布式监控系统Zabbix-3.0.3-完整安装记录(7)-使用percona监控MySQL
前面已经介绍了分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控,但是没有提供可以直接使用的Key,太过简陋,监控效果不佳.要想更加仔细的监控Mysql,业内同学们都会选择 ...
- 分布式监控系统Zabbix3.2对数据库的连接数预警
在前篇分布式监控系统Zabbix3.2监控数据库的连接数 中已经对数据库的端口3306进行了监控,可以看到数据库的连接数历史变化有高有低,那如果达到了数据库连接数的阀值是不是主动通知给运维人员去检查问 ...
- 分布式监控系统Zabbix-3.0.3-新版微信报警(企业微信取代企业号)
一般来说,Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是现在越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人 ...
- 分布式监控系统Zabbix-3.0.3-完整安装记录(1)
分布式监控系统Zabbix-3.0.3的安装记录 环境说明zabbix-server:192.168.1.30 #zabbix的服务端(若要监控本机,则需要配置本机的Zabbix agent, ...
- 分布式监控系统Zabbix-3.0.3-完整安装记录(0)
一.Linux下开源监控系统简单介绍1)cacti:存储数据能力强,报警性能差2)nagios:报警性能差,存储数据仅有简单的一段可以判断是否在合理范围内的数据长度,储存在内存中.比如,连续采样数据存 ...
- 分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控
Zabbix3.0 Server以后就自带了MySQL插件来监控mysql数据库的模板,只需要配置好agent客户端,然后在web端给主机增加模板就行了. 以下是公司线上的zabbix3.0环境下添加 ...
- 分布式监控系统Zabbix3.2添加自动发现磁盘IO并注册监控
zabbix并没有给我们提供这么一个模板来完成在Linux中磁盘IO的监控,所以我们需要自己来创建一个,在此还是在Linux OS中添加. 由于一台服务器中磁盘众多,如果只一两台可以手动添加,但服务 ...
- 分布式监控系统Zabbix-3.0.3-完整安装记录 - 添加shell脚本监控
对公司的jira访问状态进行监控,当访问状态返回值是200的时候,脚本执行结果为1:其他访问状态返回值,脚本执行结果是0.然后将该脚本放在zabbix进行监控,当非200状态时发出报警.jira访问状 ...
随机推荐
- Servlet 笔记-Cookie 处理
Cookie 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息. 识别返回用户包括三个步骤: 服务器脚本向浏览器发送一组 Cookie.例如:姓名.年龄或识别号码等. 浏览器将这些信息存储在本地 ...
- 树莓派.系统.修改声音输出通道(auto,hdmi,耳机接口)
树莓派平时通过耳机接口一直在正常使用 有一天外接了一个HDMI的屏幕, 结果耳机接口连着的音箱突然就没声音了,在网上查了资料,发现原来树莓派声音输出有3种模式 记录如下: 在命令行终端上输入下面命令将 ...
- 本地idea调试spark2.x程序
1.构建使用idea 构建maven 项目 选择org.scala-tools.archetypes:scala-archetype-simple,然后一直点next,maven最好选中本地配置国内源 ...
- Spark SQL数据源
[TOC] 背景 Spark SQL是Spark的一个模块,用于结构化数据的处理. ++++++++++++++ +++++++++++++++++++++ | SQL | | Dataset API ...
- TinyOS编程思想和Nesc基础语法
TinyOS操作系统由nesc语言写成,从程序员角度看,它的基本作用就是提供了一组API接口以及一些编程规则. 具体来说,基于nesc语言的TinyOS编程行为具有以下特点: a.兼容C语言:使用ne ...
- Spring框架学习之依赖注入
Spring框架从2004年发布的第一个版本以来,如今已经迭代到5.x,逐渐成为JavaEE开发中必不可少的框架之一,也有人称它为Java下的第一开源平台.单从Spring的本身来说,它贯穿着整个表现 ...
- 快速配置vs2012+opencv
关于OpenCV+Windows+VS配置的文章网上有很多,多是类似 OpenCV中文网 上的安装方法. 不管什么方法,配置的步骤毫无疑问是: 1. 配置环境变量, 2. 配置VS. 在这个过程中,令 ...
- 「设计模式」JavaScript - 设计模式之单例模式与场景实践
单例介绍 上次总结了设计模式中的module模式,可能没有真真正正的使用在场景中,发现效果并不好,想要使用起来却不那么得心应手, 所以这次我打算换一种方式~~从简单的场景中来看单例模式, 因为Java ...
- asp.net后台发送HTTP请求
一.文件流方式(转自:http://blog.csdn.net/u011511086/article/details/53216330) /// 发送请求 /// </summary> / ...
- SqlServer 数据库附加问题:不是主数据库文件
一.前言 今天公司要切换数据库服务器,数据库文件大于2G,结果再附加到另一服务器的数据库里面,就产生了一个问题.如下: 标题:Microsoft SQL Server Management Studi ...