李斯特 发表于 2019-1-25 10:12:21

Zabbix 3.0 监控交换机(2)——ICMP监控及邮件报警

  将交换机加入到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
http://s3.运维网.com/wyfs02/M00/80/73/wKioL1dCc7_Dql4dAAAuW-o20fw025.jpg
  解压fping
  命令:tar -zxf fping-3.13.tar.gz
http://s3.运维网.com/wyfs02/M01/80/74/wKiom1dCctDSiKLYAAAgTOS7y2I348.jpg
  编译安装
  命令: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的配置,所以这里直接将安装好的fpingcopy 到默认路径下。
  命令: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命令返回成功
http://s3.运维网.com/wyfs02/M01/80/74/wKiom1dCctDithuLAAAYz3xe5As956.jpg
  1.5 为Template增加ICPM监控项
  在原有的Template上增加 Template ICMP Ping,因为所有交换机都需要的,所以在Template上增加,就等为于所有交换机都加上了。
  ① 打开增加Template界面Configuration->Templates->在列表中选择一个模板->Linked templates->Select。
http://s3.运维网.com/wyfs02/M02/80/74/wKiom1dCctGAMkpPAAAZ-Px4DsE580.jpg
  ②选择Template ICMP Ping。注意在Group那里要选择Templates。
http://s3.运维网.com/wyfs02/M02/80/73/wKioL1dCc8PTd-bYAAAYrYjIUC4335.jpg
  ③点击Add,确定增加这个模板给到这个Host,这一步很重要。
http://s3.运维网.com/wyfs02/M00/80/73/wKioL1dCc8SR6p1wAAAdO89O3bs189.jpg
  ④确定Linked templates里面有我们刚才选择的模板之后,点击Update,创建完成。
http://s3.运维网.com/wyfs02/M01/80/73/wKioL1dCc8WhiG3JAAAdAZyfHvo395.jpg
  创建完成后的状态如下图, 一个Application,并且会自动创建三个triggers。
http://s3.运维网.com/wyfs02/M02/80/74/wKiom1dCctWzau4SAAALNOF8jEE408.jpg
  Application 的情况如下图,ICMP带有三个Items。
http://s3.运维网.com/wyfs02/M02/80/73/wKioL1dCc8ezePtsAAAUUkCJtng248.jpg
  三个Items的配置如下图
http://s3.运维网.com/wyfs02/M00/80/73/wKioL1dCc8nD1C7sAAAiDST43Us007.jpg
  创建好的ICMP模板会自动创建三个triggers,这三个triggers就是我们监控交换机在线状态要用到的触发器。
http://s3.运维网.com/wyfs02/M01/80/74/wKiom1dCctrBVmXlAAAiNL28SJU521.jpg
  1.6 建立Graph数据图表
  在原有的Template上增加 Graph,因为所有交换机都需要的,所以在Template上增加,就等为于所有交换机都加上了。
  ①打开增加Graph界面Configuration->Templates->在列表中选择一个模板->Graphs->Create Graph。
http://s3.运维网.com/wyfs02/M01/80/73/wKioL1dCc8zzH_GJAAARWN1L9OM346.jpg
  ②点击Add增加要监控的ICMP项目。
http://s3.运维网.com/wyfs02/M01/80/73/wKioL1dCc83gzEM1AAAmgx3tZ9w248.jpg
  ③勾选ICMP loss,ICMP ping,ICMP response time 这三项,点击Select。
http://s3.运维网.com/wyfs02/M02/80/73/wKioL1dCc87y7T4BAAAMC69gUnA652.jpg
  ④点击Add,创建完成。
http://s3.运维网.com/wyfs02/M00/80/73/wKioL1dCc8-TTbcPAAAqqWZ-vt0870.jpg
  ⑤打开ICMP的监控图表界面 Monitoring->Graphs->Group(Switch)->Host(选择一台交换机)->Graph(Ping Test)。
http://s3.运维网.com/wyfs02/M01/80/74/wKiom1dCct_z6EJRAAAl7GXLaR0826.jpg
  二、邮件报警
  本文通过配置脚本来发送邮件,只需要用到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#配置认证登陆
http://s3.运维网.com/wyfs02/M02/80/74/wKiom1dCcuDQsPMRAAAjDmamAlc533.jpg
  2.2 测试mailx
  命令:
  su zabbix
  echo "邮件内容" | mailx -s "标题" tryrus@tryrus.com
  在邮箱中接收到的邮件如下图所示
http://s3.运维网.com/wyfs02/M00/80/73/wKioL1dCc9Lj1yseAAAe-smbjtk260.jpg
  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"
http://s3.运维网.com/wyfs02/M01/80/75/wKiom1dCcuLDVCMuAAAoRD3i6jI578.jpg
  为用户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注意确实是带#这个符号的,**非常重要,不然发送的邮件内容会变成附件
      http://s3.运维网.com/wyfs02/M01/80/73/wKioL1dCc9OT0cxXAAAb_zhDACw654.jpg
  2.4 创建邮件发送类型
  打开创建media type界面Configuration->Media types->Create media type
http://s3.运维网.com/wyfs02/M01/80/75/wKiom1dCcuOQP0OsAAAPHbOYSPg564.jpg
  创建Media type
  ①输入Media type的名字Send_email。
  ②选择type的类型为Script。
  ③输入脚本的名字,是要带后缀的。
  ④增加这三个脚本参数,不然脚本里面的$1,$2,$3就没有数据来源了。第一个参数的数据是传递给$1,以此类推,如果更改这三个参数的顺序,记得更改脚本里面的赋值顺序。
  ⑤点击Add,创建完成。
http://s3.运维网.com/wyfs02/M01/80/73/wKioL1dCc9Xzge9mAAAvVG_2JqE669.jpg
  创建完成后如下图所示。
http://s3.运维网.com/wyfs02/M01/80/73/wKioL1dCc9bRVHScAAAiShIBMkk635.jpg
  2.5 创建用户邮件报警地址
  打开创建用户邮件报警地址界面Configuration->Users->选择需配置邮件报警的用户->Media->Add
http://s3.运维网.com/wyfs02/M00/80/73/wKioL1dCc9fw-YixAAAeGbImN7Q229.jpg
  在Media选项中我们要做如下配置。
  ①Type选择我们刚刚创建的Send_email。
  ②填写收件人的邮箱地址。
  ③其它全部默认即可,点击Add,创建完成。
http://s3.运维网.com/wyfs02/M02/80/73/wKioL1dCc9jjszLbAAAbEYblZT8109.jpg
  创建完成后如下图所示,不要忘记点Update来保存配置。
http://s3.运维网.com/wyfs02/M02/80/75/wKiom1dCcuiQNHPLAAAdkVI2Tu4662.jpg
  2.6 创建zabbix邮件报警的动作
  打开创建Action界面Configuration->Actions->Create action
http://s3.运维网.com/wyfs02/M00/80/73/wKioL1dCc9nQ1p5JAAANsd_yUmo021.jpg
  ①输入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}   

  ④这个勾上,表示触发器正常后会发送一份恢复确认的邮件。
  ⑤激活这个触发动作。
http://s3.运维网.com/wyfs02/M00/80/73/wKioL1dCc9rSb5KcAAA8ixXBcNM139.jpg
  ⑥选择Conditons选项,将Type of calculation修改成为or,其它默认即可。
http://s3.运维网.com/wyfs02/M00/80/75/wKiom1dCcuqjI3LtAAAkTO92Dxc969.jpg
  ⑦选择Operations选项,点击Action operations选项中的New,设置这个触发动作的其它信息。
http://s3.运维网.com/wyfs02/M01/80/73/wKioL1dCc9zgPkWdAAAeru0Kruo001.jpg
  ⑧Default operaion step duration 修改成60s。
  ⑨Operation type选择Send message。
  ⑩Send to User groups 或Send to Users 选择这个触发动作要发送邮件的对像,群组或单个用户。点击Add,创建完成。
http://s3.运维网.com/wyfs02/M02/80/73/wKioL1dCc92gAPkOAAAk6LCRVEQ919.jpg
  创建完成后如下图所示。
http://s3.运维网.com/wyfs02/M00/80/73/wKioL1dCc97yO9CNAAAUUy8nGMg617.jpg
  2.7 测试zabbix邮件报警
  创建一个不存在的交换机来进行测试,创建完成等待一分钟左右的时候后,可以在Monitoring->Triggers中看到被触发器报故障的交换机。
http://s3.运维网.com/wyfs02/M01/80/75/wKiom1dCcu6TgXzYAAAgSWZfkJI532.jpg
  在Monitoring->Events中看可以看到这台交换机详细故障情况,以及报警邮件的发送情况,如下图所示,Actions的状态为Sent,即表示邮件已发送完成。
http://s3.运维网.com/wyfs02/M01/80/75/wKiom1dCcu-RJKMxAAAfk_OxYew328.jpg
  在邮箱中收到的邮件如下图所示。
http://s3.运维网.com/wyfs02/M02/80/73/wKioL1dCc-Gxk30fAAAsdYZAN74572.jpg
  OK ,到这里,我们要实现的功能已全部实现,完成目标。
  谢谢你打开这篇博文,并一直坚持看到了这里,如果觉得对你有帮助,请不要吝啬在右下角的赞上点一下。



页: [1]
查看完整版本: Zabbix 3.0 监控交换机(2)——ICMP监控及邮件报警