基于rhel7.2的Zabbix平台搭建和部署(五)


zabbix3.2.1邮件报警设置

说明:zabbix监控服务端、客户端都已经部署完成,被监控主机已经添加,zabiix监控运行正常。

在zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱。

一、zabbix报警部署步骤(操作在Zabbix监控服务端进行):

  1. 安装sendmail两个依赖包

    [[email protected] ~]# yum install -y perl-Net-SSLeay perl-IO-Socket-SSL

  2. 解压sendmail,然后将sendemail复制到/usr/local/bin/目录下,并加上可执行权限,然后修改用户和群组。

    [[email protected] ~]# tar -zxvf sendEmail-v1.56.tar.gz

    [[email protected] ~]# cd sendEmail-v1.56

    [[email protected] sendEmail-v1.56]# cp sendEmail /usr/local/bin/sendEmail

    [[email protected] sendEmail-v1.56]# chown zabbix:zabbix /usr/local/bin/sendEmail

    [[email protected] sendEmail-v1.56]# ll /usr/local/bin/sendEmail

    -rwxr-xr-x 1 zabbix zabbix 80213 Jun 16 23:13 /usr/local/bin/sendEmail

    基于rhel7.2的Zabbix平台搭建和部署(五)

  3. 执行# /usr/local/bin/sendEmail -h可查看sendEmail的帮助

    基于rhel7.2的Zabbix平台搭建和部署(五)

  4. 邮箱设置

    说明:先去申请一个邮箱,这里以163邮箱为例。

    基于rhel7.2的Zabbix平台搭建和部署(五)

    基于rhel7.2的Zabbix平台搭建和部署(五)


    基于rhel7.2的Zabbix平台搭建和部署(五)

    基于rhel7.2的Zabbix平台搭建和部署(五)

    基于rhel7.2的Zabbix平台搭建和部署(五)

    基于rhel7.2的Zabbix平台搭建和部署(五)

    说明:授权码是428xxxwtf

  5. 邮箱测试

    [[email protected] sendEmail-v1.56]# sendEmail -f [email protected] -t [email protected] -s smtp.163.com -u "hello" -o message-content-type=html -o message-charset=utf8 -xu [email protected] -xp 428xxxwtf -m "测试邮件!"

    说明:

    /usr/local/bin/sendEmail          #命令主程序

    -f  [email protected]              #发件人邮箱

    [email protected]                     #收件人邮箱

    -ssmtp.163.com                   #发件人邮箱的smtp服务器

    -u"我是邮件主题"                 #邮件的标题

    -omessage-content-type=html      #邮件内容的格式,html表示它是html格式

    -omessage-charset=utf8           #邮件内容编码

    [email protected]                  #发件人邮箱的用户名

    -xp428xxxwtf                     #发件人邮箱密码或授权码

    -m"我是邮件内容"                 #邮件的具体内容

    基于rhel7.2的Zabbix平台搭建和部署(五)

    从上图我们看出,邮件没发成功,有报错。

    原因是:sendemail软件和perl5里面的ssl版本不兼容导致的,通过修改sendemail里面的内容可以解决这个问题。

    解决办法如下:

    [[email protected] ~]# vim /usr/local/bin/sendEmail

    将1906行改为如下内容:

    1906   if (! IO::Socket::SSL->start_SSL($SERVER)) {

    基于rhel7.2的Zabbix平台搭建和部署(五)

    再次验证


    基于rhel7.2的Zabbix平台搭建和部署(五)

  6. 登入邮箱查看

    基于rhel7.2的Zabbix平台搭建和部署(五)

    基于rhel7.2的Zabbix平台搭建和部署(五)

    测试成功!

二、报警脚本

  1. 创建报警脚本

    [[email protected] ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/

    [[email protected] alertscripts]# vim mail.sh

    #!/bin/bash

    to=$1

    subject=$2

    body=$3

    /usr/local/bin/sendEmail  -o tls=auto -f [email protected] -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu [email protected] -xp 428xxxwtf -m "$body"

  2. 执行脚本并测试发邮件

    [[email protected] alertscripts]# chmod +x mail.sh

    [[email protected] alertscripts]# ll mail.sh

    -rwxr-xr-x 1 root root 239 Jun 17 00:39 mail.sh

    [[email protected] alertscripts]# sh mail.sh [email protected] test 第二次测试

    基于rhel7.2的Zabbix平台搭建和部署(五)

  3. 再次查看邮箱

    基于rhel7.2的Zabbix平台搭建和部署(五)

    基于rhel7.2的Zabbix平台搭建和部署(五)

三、zabbix web端配置

  1. 上面的邮件脚本配置好后,就要在web端添加报警媒介,在web页面的管理,报警媒介类型页面,点击右边的创建媒体类型

    基于rhel7.2的Zabbix平台搭建和部署(五)

  2. 进入创建页面,然后输入名称“邮件报警脚本”,类型选择脚本,名称选择mail.sh,点击添加按钮,添加三个脚本参数,分别是{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESSAGE},分别对于mail.sh中的to、subject和body。添加完成后点下面的添加按钮,我们的报警媒介就创建完成了。

    基于rhel7.2的Zabbix平台搭建和部署(五)

    发现上面步骤完成后报警!从报错内容上分析,应该是名称“邮件报警”无法使用中文。

    解决方法:

    将名称那一项改为:“youjianbaojing”

    基于rhel7.2的Zabbix平台搭建和部署(五)

    基于rhel7.2的Zabbix平台搭建和部署(五)

    说明:添加成功后,会多出一个报警媒介类型!

  3. 创建好报警媒介后,就需要将报警媒介关联到我们的用户。点击管理,用户,然后选择我们的用户admin也可新建一个用户,点击用户名就进入到用户配置界面。点击报警媒介,然后点添加,选择我们上一步创建的邮件报警脚本,输入收件人,选择报警时间和类型,然后点击添加,就将创建好的报警媒介关联到我们的用户上面了。

    基于rhel7.2的Zabbix平台搭建和部署(五)

    基于rhel7.2的Zabbix平台搭建和部署(五)

    基于rhel7.2的Zabbix平台搭建和部署(五)基于rhel7.2的Zabbix平台搭建和部署(五)

  4. 现在需要做的是,创建一个触发动作,即系统出现故障时,触发这个动作,然后给我们的邮箱发送报警邮件。点击配置,选择动作,然后点击右边的创建动作。

    在动作这一页名称中写入我们定义的动作名以及触发条件。

    基于rhel7.2的Zabbix平台搭建和部署(五)

    基于rhel7.2的Zabbix平台搭建和部署(五)

    基于rhel7.2的Zabbix平台搭建和部署(五)

    基于rhel7.2的Zabbix平台搭建和部署(五)

    基于rhel7.2的Zabbix平台搭建和部署(五)

    基于rhel7.2的Zabbix平台搭建和部署(五)

    基于rhel7.2的Zabbix平台搭建和部署(五)

    说明:步骤是1-3,也即是从1开始到3结束。一旦故障发生,就是执行Email.sh脚本发生报警邮件给zabbix用户。

    假如故障持续了1个小时,它也只发送3次,第1-3次(即前3次)邮箱发送给zabbix用户,时间间隔为0秒。

    如果改成1-0,0是表示不限制.无限发送 

    接着设置“恢复操作”:

    基于rhel7.2的Zabbix平台搭建和部署(五)

    基于rhel7.2的Zabbix平台搭建和部署(五)

  5. 报警测试

    将192.168.100.120服务器的zabbix_agent进程关闭,然后等待邮件。

    [[email protected] ~]# systemctl stop zabbix_agentd

    [[email protected] ~]# systemctl status zabbix_agentd

    基于rhel7.2的Zabbix平台搭建和部署(五)

    查看163邮箱

    基于rhel7.2的Zabbix平台搭建和部署(五)

  6. 最后,点击”报表“->”动作日志“,可以看到触发动作的次数(右边还看查看到邮件发送状态“已发送”)。

    基于rhel7.2的Zabbix平台搭建和部署(五)