将交换机加入到zabbix监控系统中之后,接下来应该做什么呢,对了,就是要实时的知道交换机的在线状态,这里使用ICMP监控和邮件报警来实现这个目的。

一、ICMP监控

  Zabbix处理ICMP ping请求使用的fping这个命令,zabbix-3.0中默认是没有安装的,所以我们首先安装fping。

  1.1 fping安装

    下载fping

      命令:cd /usr/local/src

       wget http://www.fping.org/dist/fping-3.13.tar.gz

      fping1

    解压fping              

      命令:tar -zxf fping-3.13.tar.gz

      fping2

    编译安装

      命令:cd fping-3.13

           ./configure  #默认会直接安装在 /usr/local/sbin

           make

           make install

  1.2 修改fping的路径

    zabbix默认fping的路径是/usr/sbin/,不过在我安装的zabbix-3.0的zabbix_server.conf中并没有找到有关fping的配置,所以这里直接将安装好的fping  copy 到默认路径下。

     命令:cp /usr/local/sbin/fping /usr/sbin/fping

  1.3 修改fping权限

    修改fping权限,让用户zabbix可以执行fping。

     命令:chown root:zabbix /usr/sbin/fping

         chmod 4710 /usr/sbin/fping  

  1.4 用户zabbix测试fping

     命令:su zabbix

         fping 192.168.*.*

         192.168.*.* is alive   #表示fping命令返回成功

    fping3  

  1.5 为Template增加ICPM监控项

    在原有的Template上增加 Template ICMP Ping,因为所有交换机都需要的,所以在Template上增加,就等为于所有交换机都加上了。

    ① 打开增加Template界面Configuration->Templates->在列表中选择一个模板->Linked templates->Select。

    Templates-add

    ②选择Template ICMP Ping。注意在Group那里要选择Templates。

    Templates-add-1

    ③点击Add,确定增加这个模板给到这个Host,这一步很重要。

    Templates-add-2

    ④确定Linked templates里面有我们刚才选择的模板之后,点击Update,创建完成。

    Templates-add-3

    创建完成后的状态如下图, 一个Application,并且会自动创建三个triggers。

    Templates-add-4

    Application 的情况如下图,ICMP带有三个Items。

    Templates-add-6

    三个Items的配置如下图

    Templates-add-7

    创建好的ICMP模板会自动创建三个triggers,这三个triggers就是我们监控交换机在线状态要用到的触发器。

    Templates-add-8

  1.6 建立Graph数据图表

    在原有的Template上增加 Graph,因为所有交换机都需要的,所以在Template上增加,就等为于所有交换机都加上了。

    ①打开增加Graph界面Configuration->Templates->在列表中选择一个模板->Graphs->Create Graph。

    graph1-1

    ②点击Add增加要监控的ICMP项目。

    graph1

    ③勾选ICMP loss,ICMP ping,ICMP response time 这三项,点击Select。

    graph2

    ④点击Add,创建完成。

    graph3

    ⑤打开ICMP的监控图表界面 Monitoring->Graphs->Group(Switch)->Host(选择一台交换机)->Graph(Ping Test)。

    graph4

二、邮件报警

  本文通过配置脚本来发送邮件,只需要用到mailx功能,不需要安装sendmail或sendEmail。Zabbix-3.0已自动安装好mailx,所以我们直接配置邮件发送端信息。

  2.1 配置/etc/mail.rc

    在/etc/mail.rc最后增加以下几行:

    #set for zabbix    
    #set sendcharsets=iso-8859-1,utf-8      
    set from=tryrus@tryrus.com smtp=mail.tryrus.com    
    set smtp-auth-user=tryrus smtp-auth-password=tryrus123456

    set smtp-auth=login

    #set sendcharsets=iso-8859-1,utf-8  #配置发送邮件的字符格式**非常重要,不然发送的邮件内容会变成附件

    set from  #配置发件邮箱地址

    smtp  #配置发件邮箱地址的邮箱服务器名称。如果是163这种提供公共服务的邮箱服务器应=smtp.163.com,如是公司内部使用的exchang邮箱服务器应=mai.公司域名,一般公司的exchang邮箱服务器不提供对外服务,所以POP服务都是关闭的

    set smtp-auth-user  #配置发件邮箱地址的登陆名字,不带域名

    smtp-auth-password  #配置发件邮箱地址的登陆密码

    set smtp-auth  #配置认证登陆

    1

  2.2 测试mailx

    命令:

    su zabbix

    echo "邮件内容" | mailx -s "标题" tryrus@tryrus.com

    在邮箱中接收到的邮件如下图所示

    3

  2.3 配置send_email.sh脚本

    cd /usr/local/zabbix-3.0.1/share/zabbix/alertscripts/

    vim send_email.sh

    send_email是zabbix中配置需要用到的,脚本如下。

    #!/bin/bash    
    #Program:    
    #This program is used to send email to admin    
    #History:    
    #2016/05/09 tryrus First release    
    #export LANG=en_US.UTF-8   //我用的是英文版的,这行可以不要,但还是加上为好      
    #export LANG=zh_CN.UTF-8  //解决发送的中文变成了乱码的问题,如果邮件中没有中文,不要也没关系,但是谁能保证后来者不在邮件中插进一些中文呢。

    body=/tmp/alertlog.txt  
    to=$1  #Media types中的第一个参数,即邮件收件人邮箱地址,等下会讲到。    
    subject=$2  #Media types中的第二个参数,即邮件主题。    
    echo "$3" >$body  #Media types中的第三个参数,即邮件内容。    
    dos2unix -k $body  #将邮件内容转为linux可识别的格式,**非常重要,不然发送的邮件内容会变成附件

    cat $body | mailx -s "$subject" "$to"

    send_email

    为用户zabbix增加对脚本send_email.sh的可执行权限

    chown zabbix.zabbix /usr/local/zabbix-3.0.1/share/zabbix/alertscripts/send_email.sh  #设置脚本所有者为用户zabbix

    chmod +x /usr/local/zabbix-3.0.1/share/zabbix/alertscripts/send_email.sh  #设置脚本执行权限

  2.4 配置zabbix_server.conf

    在zabbix_server.conf中配置脚本地址,命令如下

    vim /usr/local/zabbix-3.0.1/etc/zabbix_server.conf

    #AlertScriptsPath=/usr/local/zabbix-3.0.1/share/zabbix/alertscripts  注意确实是带#这个符号的,**非常重要,不然发送的邮件内容会变成附件

    alertscript

  2.4 创建邮件发送类型

    打开创建media type界面Configuration->Media types->Create media type

    4

    创建Media type

    ①输入Media type的名字Send_email。

    ②选择type的类型为Script。

    ③输入脚本的名字,是要带后缀的。

    ④增加这三个脚本参数,不然脚本里面的$1,$2,$3就没有数据来源了。第一个参数的数据是传递给$1,以此类推,如果更改这三个参数的顺序,记得更改脚本里面的赋值顺序。

    ⑤点击Add,创建完成。

    5-1

    创建完成后如下图所示。

    6-1

  2.5 创建用户邮件报警地址

    打开创建用户邮件报警地址界面Configuration->Users->选择需配置邮件报警的用户->Media->Add

    7-1

    在Media选项中我们要做如下配置。   

    ①Type选择我们刚刚创建的Send_email。

    ②填写收件人的邮箱地址。

    ③其它全部默认即可,点击Add,创建完成。

    8-1

    创建完成后如下图所示,不要忘记点Update来保存配置。

    9-1

  2.6 创建zabbix邮件报警的动作

    打开创建Action界面Configuration->Actions->Create action

    10

    ①输入Action的名字Send_email。

    ②这个参数默认即可。

    ③可以按照我以下的参数及格式配置。

    Hostname:{HOSTNAME1}

    Trigger date:{EVENT.DATE} {EVENT.TIME}

    Trigger name: {TRIGGER.NAME}

    Trigger status: {TRIGGER.STATUS}

    Trigger severity: {TRIGGER.SEVERITY}

 

    Item values:

    1. {ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}

    Original event ID: {EVENT.ID}    

    ④这个勾上,表示触发器正常后会发送一份恢复确认的邮件。

    ⑤激活这个触发动作。

    11-1

    ⑥选择Conditons选项,将Type of calculation修改成为or,其它默认即可。

    12-1

    ⑦选择Operations选项,点击Action operations选项中的New,设置这个触发动作的其它信息。

    13-1

    ⑧Default operaion step duration 修改成60s。

    ⑨Operation type选择Send message。

    ⑩Send to User groups 或Send to Users 选择这个触发动作要发送邮件的对像,群组或单个用户。点击Add,创建完成。

    14-1

    创建完成后如下图所示。

    15

  2.7 测试zabbix邮件报警

    创建一个不存在的交换机来进行测试,创建完成等待一分钟左右的时候后,可以在Monitoring->Triggers中看到被触发器报故障的交换机。

    16-1

    在Monitoring->Events中看可以看到这台交换机详细故障情况,以及报警邮件的发送情况,如下图所示,Actions的状态为Sent,即表示邮件已发送完成。

    17-1

    在邮箱中收到的邮件如下图所示。

    18-1

    OK ,到这里,我们要实现的功能已全部实现,完成目标。

谢谢你打开这篇博文,并一直坚持看到了这里,如果觉得对你有帮助,请不要吝啬在右下角的赞上点一下。