zabbix监控之邮件报警sendmail

zabbix监控之邮件报警

在zabbix的使用中,最重要的一点就是完善的报警机制,做为监控平台,须要时刻关注机器和服务的运行状态,更重要的是发现故障以后须要及时的报警给相关人员,早点发现问题,将隐患消除在未然阶段。这样才能保证服务的稳定运行。前端

报警的方式是多种多样的,微信短信邮件报警是咱们比较常见的方式。并且报警的频率和策略直接影响着运维人员的重视程度和检错效率。若是整个报警列表中都是一些无关痛痒的提示、轻度警告。而他们的发送频率又特别的高,则很是容易错过真正关键的报警。mysql

报警涉及的触发器(trigger)通常包括如下几个方面: 
(1)服务器的基本状态:磁盘容量、内存大小、cpu的负载; 
(2)基础服务状态:web服务器(nginx、apache)的状态,数据库的状态(mysql、oracle、nosql等); 
(3)应用服务器状态:应用服务器的可用性以及负载状态;nginx

以本人以前所在的游戏公司为例,平常的监控报警中主要集中在服务器的基本状态的报警:(1)好比随着服务器的运行,会产生大量的日志文件,由于来不及转移致使服务器的磁盘可用空间不足;(2)开启的应用过多致使cpu和内存的不足;web

第一种磁盘不足的状况,能够采用crontab按期清理日志的方式解决,注意 
为了防止日志内容的丢失,须要把日志及时的备份到远程的日志服务器中进行存放;sql

第二种状况则须要按期对服务器进行升配操做;数据库

基础服务状态应用服务器状态则须要提升报警级别,毕竟服务的不可用是很是严重的事故,另外给出建议是关键的服务必定要作到高可用,不能由于节约成本而致使服务故障,不然形成的损失也许更加巨大。apache

邮件报警配置步骤

邮件报警的配置主要划分为一下几个步骤:vim

1.在zabbix服务端配置邮件发送脚本和修改zabbix服务端配置文件; 
2.在zabbix前端控制台进行相关设置;安全

配置脚本

(1)邮件的发送能够采用系统自带的mail发送,可是须要配置mail的配置文件/etc/mail.rc,在该文件的末尾添加以下几行:bash

set from=********@sina.com
set smtp=smtp://smtp.sina.com
set smtp-auth-user=********@sina.com
set smtp-auth-password=********
set smtp-auth=login
  • 1
  • 2
  • 3
  • 4
  • 5

其中from为你所指定的邮件发送的发件方名称,smtp为所使用的邮件服务器,smtp-auth-usersmtp-auth-password分别进行用户名和密码的验证;

这个smtp的功能须要登陆邮箱进行开通: 
这里写图片描述

注意: 
我这里采用的是sina的邮箱发送,由于新浪的邮件内容审核相对比较宽松,除了sina以外,还能够选择网易邮箱或者qq邮箱,甚至为了方即可以本身搭建一个smtp服务器。

网易邮箱和qq邮箱的smtp分别以下:

网易 smtp.163.com 
qq smtp.exmail.qq.com

另外须要注意使用网易或者qq邮箱他们的smtp-auth-password密码会单独进行设定,不要与邮箱自己的登陆密码混淆。

(2)测试发送一个邮件给指定的用户:

[root@localhost conf]# echo "hello" | mail -s "hello" 597****76@qq.com
  • 1

在该用户的邮箱查看是否收到邮件: 
这里写图片描述

已经收到邮件,说明邮件的发送没有问题,若是邮件发送失败,可能会是如下几个缘由:

1)链接的邮件服务器错误,或者用户名、密码认证失败,这个是比较好排查的,能够经过telnet测试是否能够链接邮件服务器(邮件服务器的默认端口是25):

[root@localhost conf]# telnet smtp.sima.com 25
Trying 173.254.89.192...
Connected to smtp.sima.com.
Escape character is '^]'.
220-box1089.bluehost.com ESMTP Exim 4.86_1 #1 Wed, 23 Nov 2016 01:29:33 -0700 
220-We do not authorize the use of this system to transport unsolicited, 
220 and/or bulk e-mail.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

用户名密码认证失败会明确的告诉缘由;

2)发送的邮件内容没有经过发件方邮箱的审核;

3)发送的邮件内容没有经过收件方的白(黑)名单活着邮件内容的审核;

上述的二、3两种失败状况邮件服务器都会发送给错误码进行查询,通常qq邮箱和网易邮箱的审核相对比较严格。为了防止被拒绝,能够选择sina或者139等邮箱,审核相对宽松。甚至能够本身搭建邮件服务器。

(3)编写zabbix发送邮件的脚本sendmail.sh

建立脚本所在目录/usr/local/etc/alertscripts

[root@localhost conf]# mkdir /usr/local/etc/alertscripts
  • 1

编写发送脚本:

[root@localhost conf]# cat /usr/local/etc/alertscripts/sendmail.sh 
#!/bin/bash

messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

改变所属用户和组为zabbix,授予可执行权限:

[root@localhost conf]# chown zabbix.zabbix /usr/local/etc/alertscripts/ -R
[root@localhost conf]# chmod +x /usr/local/etc/alertscripts/sendmail.sh
  • 1
  • 2

建立日志文件,修改所属用户和组:

[root@localhost conf]# chown zabbix.zabbix /tmp/sendmail.log
  • 1

(4)修改zabbix服务端配置文件,而且重启服务:

[root@localhost conf]# vim /usr/local/etc/zabbix_server.conf
  • 1

添加以下内容,设置脚本目录为刚才建立的目录:

AlertScriptsPath=/usr/local/etc/alertscripts
  • 1

修改完成后重启zabbix服务:操做略。

配置zabbix控制台

1.首先设置报警媒介(指定邮件发送的脚本),点击“管理”—“报警媒介类型”—“Email”: 
这里写图片描述

2.将类型选定为脚本,而后指定脚本的名称。在zabbix3.x以后还须要指定传递给邮件发送脚本的参数(邮件接收方{ALERT.SENDTO}、邮件主题{ALERT.SUBJECT}、邮件内容{ALERT.MESSAGE})。 
这里写图片描述

3.在用户组群中开启调试模式,点开启用: 
这里写图片描述

4.点击相关组群设置组群的权限,由于是对管理员用户设置邮件,这里设定对全部组群具备读写权限(*表明全部组群): 
这里写图片描述

5.而后设置管理菜单下的用户,这里对Admin用户进行设置: 
这里写图片描述

6.在“报警媒介”中点击编辑设置邮件: 
这里写图片描述

7.指定报警的类型为Email,指定邮件地址为接收方的邮件地址,为了让邮件能够准确的到达,须要在接收方的邮件中设置白名单,容许发送方的邮件被接收。 
这里写图片描述

8.配置相关的动做,这个是针对触发器设定的,当监控的item达到必定的条件(由触发器Trigger设置),则会使trigger执行设定好的动做,一个动做能够针对多个触发器设定,当他们满则条件时都会执行相应的动做,由于是邮件报警,因此当trigger被触发时,咱们给相关用户的邮箱发送邮件,这样运维人员会根据邮件的报错提示及时解决问题,当问题结局时还会发送恢复邮件,这样就能够把机器及业务的运行状态及时的监控起来。 
这里写图片描述

条件是针对动做什么时候执行。能够多个条件并存或者任意存在,这个能够编写相关的逻辑进行判断。

操做恢复操做分开设置是zabbix3.2.1和以前的版本有所不一样的,在操做中进行设定: 
这里写图片描述

而后设置恢复操做: 
这里写图片描述

操做示例

咱们这里设定的条件是当zabbix客户端5分钟内没有链接的时候,则会触发该警报。

1.首先能够关闭zabbix agent,查看仪表盘的监控信息,五分钟后显示以下: 
这里写图片描述

2.邮箱能够接受到对应的报警信息: 
这里写图片描述

3.当咱们启动zabbix agent,则会看到故障恢复的报警信息: 
这里写图片描述

小结

上述是关于zabbix邮件报警的信息,正常状况下的操做很简单,可是笔者在设置的时候,发现网络和邮件审查的因素会对邮件的发送有很大的影响(安全和利益使然),因此你们在搭建的时候须要选择稳定可靠的邮箱,确保邮件的准确发送,还有就是再次基础上根据不一样公司的业务和监控指标,须要设定好邮件发送的频率。祝你们工做顺利!

相关文章
相关标签/搜索