分布式监控系统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-8set [email protected]
set smtp=smtp.163.com:25set [email protected] #认证用户,一般与from保持一致set smtp-auth-password=xxx #认证密码,如何开通授权可自行google

测试邮件是否可以发出

echo "zabbix test mail" |mail -s "zabbix" [email protected]#这时候,邮箱[email protected]会收到来自[email protected]的测试邮件

编写发送邮件脚本

进入下面路径:/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/bashexport LANG=zh_CN.UTF-8file=/tmp/zabbix_mail.txt
echo "$3" > $file
dos2unix -k $file/bin/mailx -s "$2" $1 < $file
时间: 2024-11-08 19:50:15

分布式监控系统Zabbix3.2给异常添加邮件报警的相关文章

分布式监控系统Zabbix3.2监控数据库的连接数

在 分布式监控系统Zabbix3.2跳坑指南 和 分布式监控系统Zabbix3.2给异常添加邮件报警 已经介绍了如何安装以及报警.此篇通过介绍监控数据库的3306端口连接数来了解如何监控其它端口和配置自定义监控项的过程. 添加监控脚本 在要监控的客户端上新建脚本: /usr/local/zabbix/alertscripts/check_3306_port_num.sh 内容如下: #!/bin/bash ss -an|grep 3306|grep ESTAB|wc -l 这个脚本很简单,就是获

分布式监控系统Zabbix-3.0.3-完整安装记录(1)

分布式监控系统Zabbix-3.0.3的安装记录 环境说明zabbix-server:192.168.1.30 #zabbix的服务端(若要监控本机,则需要配置本机的Zabbix agent,下面会提到)zabbix-agent:192.168.1.7 #zabbix的客户端(被监控端,需要配置Zabbix agent,下面会提到) 一.zabbix-server端的操作记录(192.168.1.30 ) zabbix服务器端要提前安装好LNMP环境(mysql,nginx,php5的安装目录均

分布式监控系统Zabbix3.2对数据库的连接数预警

在前篇分布式监控系统Zabbix3.2监控数据库的连接数 中已经对数据库的端口3306进行了监控,可以看到数据库的连接数历史变化有高有低,那如果达到了数据库连接数的阀值是不是主动通知给运维人员去检查问题呢,总不能实时盯着看吧,下面就怎么配置预警作简单介绍. 在这里我们是针对模板级别来进行配置,而有些园友如果只针对某台服务进行预警那也是可以的,只需要在此台服务器上的触发器列表中添加一项即可,配置步骤一样. 配置触发器 找到Template App MySQL模板 >触发器>创建触发器 在新增页面

分布式监控系统Zabbix-3.0.3-完整安装记录(0)

Zabbix是一个基于Web界面的提供分布式系统监视以及网络监视功能的企业级开源解决方案.借助Zabbix,可以很轻松地减轻运维人员们繁重的服务器管理任务,实现业务系统的持续运行. 下面会逐步介绍Zabbix分布式监控系统的部署及使用记录 首先介绍Zabbix部署前的LNMP环境的搭建过程: 一.配置好IP.DNS .网关,确保使用远程连接工具能够连接服务器 二.配置防火墙,开启80端口.3306端口 [[email protected] ~]# vim /etc/sysconfig/iptab

分布式监控系统Zabbix-3.0.3-完整安装记录 -添加apache监控

前面介绍了zabbix3.0.3环境及相关监控项的添加,下面介绍下针对apache的监控配置:1)在apache配置文件中打开server-status状态访问功能(自带的) [[email protected] ~]# /data/apache/bin/httpd -v Server version: Apache/2.4.25 (Unix) Server built: Jun 19 2017 19:18:00 [[email protected] ~]# cat /data/apache/c

分布式监控系统Zabbix-3.0.3-完整安装记录 -添加进程与端口监控

对于进程和端口的监控,可以使用zabbix自带的key进行监控,只需要在server端维护就可以了,相比于nagios使用插件去监控的方式更为简单.下面简单介绍配置:1)监控端口zabbix监控端口使用如下key:key:net.tcp.listen[port]Checks if this port is in LISTEN state. 0 - it is not, 1 - it is inLISTEN state.解释:监听端口状态,返回结果为1,则运行:返回结果为0,则没有运行.比如监控s

分布式监控系统Zabbix-3.0.3-完整安装记录(5)-邮件报警部署

前面几篇陆续介绍了zabbix3.0.3监控系统的部署和监控项配置,今天这里分享下zabbix3.0.3的邮件报警的配置过程~ 由于采用sendmail发送邮件,常常会被认为是垃圾邮件被拒,所以不推荐这种方式! 这里,针对zabbix报警信息的发送,可以采用下面两种方式中的任意一种:(1)利用sendEmail程序来发送报警邮件.sendEmail是一个轻量级,命令行的SMTP邮件客户端,非常完美,使用简单并且功能强大.这个被设计用在php.bash .perl和web站点使用.(2)利用pyt

分布式监控系统Zabbix-3.0.3-完整安装记录(4)-解决zabbix监控图中出现中文乱码问题

之前部署了Zabbix-3.0.3监控系统,在安装数据库时已经将zabbix库设置了utf-8字符. 首先确定zabbix开启了中文支持功能:登录到zabbix服务器的数据目录下(前面部署的zabbix数据目录是/data/www/zabbix),打开 locales.inc.php文件[[email protected] include]# pwd/data/www/zabbix/include[[email protected] include]# vim locales.inc.php 然

分布式监控系统Zabbix-3.0.3-完整安装记录(4)-监控nginx,php,memcache,Low-level discovery磁盘IO

前段时间在公司IDC服务器上部署了zabbix3.0.3监控系统,除了自带的内存/带宽/CPU负载等系统资源监控模板以及mysql监控模板外,接下来对诸如nginx.php.memcache.磁盘IO的监控项配置在此做下记录,希望能帮助到有用到的朋友们~ nginx的监控模板:zbx_nginx_templates.xmlphp的监控模板:zbx_php-fpm_templates.xmlmemcache的监控模板:zbx_memcached_templates.xmlLow-level dis