将交换机加入到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
解压fping
命令:tar -zxf fping-3.13.tar.gz
编译安装
命令: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命令返回成功
1.5 为Template增加ICPM监控项
在原有的Template上增加 Template ICMP Ping,因为所有交换机都需要的,所以在Template上增加,就等为于所有交换机都加上了。
① 打开增加Template界面Configuration->Templates->在列表中选择一个模板->Linked templates->Select。
②选择Template ICMP Ping。注意在Group那里要选择Templates。
③点击Add,确定增加这个模板给到这个Host,这一步很重要。
④确定Linked templates里面有我们刚才选择的模板之后,点击Update,创建完成。
创建完成后的状态如下图, 一个Application,并且会自动创建三个triggers。
Application 的情况如下图,ICMP带有三个Items。
三个Items的配置如下图
创建好的ICMP模板会自动创建三个triggers,这三个triggers就是我们监控交换机在线状态要用到的触发器。
1.6 建立Graph数据图表
在原有的Template上增加 Graph,因为所有交换机都需要的,所以在Template上增加,就等为于所有交换机都加上了。
①打开增加Graph界面Configuration->Templates->在列表中选择一个模板->Graphs->Create Graph。
②点击Add增加要监控的ICMP项目。
③勾选ICMP loss,ICMP ping,ICMP response time 这三项,点击Select。
④点击Add,创建完成。
⑤打开ICMP的监控图表界面 Monitoring->Graphs->Group(Switch)->Host(选择一台交换机)->Graph(Ping Test)。
二、邮件报警
本文通过配置脚本来发送邮件,只需要用到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 [email protected] 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 #配置认证登陆
2.2 测试mailx
命令:
su zabbix
echo "邮件内容" | mailx -s "标题" [email protected]
在邮箱中接收到的邮件如下图所示
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"
为用户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 注意确实是带#这个符号的,**非常重要,不然发送的邮件内容会变成附件
2.4 创建邮件发送类型
打开创建media type界面Configuration->Media types->Create media type
创建Media type
①输入Media type的名字Send_email。
②选择type的类型为Script。
③输入脚本的名字,是要带后缀的。
④增加这三个脚本参数,不然脚本里面的$1,$2,$3就没有数据来源了。第一个参数的数据是传递给$1,以此类推,如果更改这三个参数的顺序,记得更改脚本里面的赋值顺序。
⑤点击Add,创建完成。
创建完成后如下图所示。
2.5 创建用户邮件报警地址
打开创建用户邮件报警地址界面Configuration->Users->选择需配置邮件报警的用户->Media->Add
在Media选项中我们要做如下配置。
①Type选择我们刚刚创建的Send_email。
②填写收件人的邮箱地址。
③其它全部默认即可,点击Add,创建完成。
创建完成后如下图所示,不要忘记点Update来保存配置。
2.6 创建zabbix邮件报警的动作
打开创建Action界面Configuration->Actions->Create action
①输入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}
④这个勾上,表示触发器正常后会发送一份恢复确认的邮件。
⑤激活这个触发动作。
⑥选择Conditons选项,将Type of calculation修改成为or,其它默认即可。
⑦选择Operations选项,点击Action operations选项中的New,设置这个触发动作的其它信息。
⑧Default operaion step duration 修改成60s。
⑨Operation type选择Send message。
⑩Send to User groups 或Send to Users 选择这个触发动作要发送邮件的对像,群组或单个用户。点击Add,创建完成。
创建完成后如下图所示。
2.7 测试zabbix邮件报警
创建一个不存在的交换机来进行测试,创建完成等待一分钟左右的时候后,可以在Monitoring->Triggers中看到被触发器报故障的交换机。
在Monitoring->Events中看可以看到这台交换机详细故障情况,以及报警邮件的发送情况,如下图所示,Actions的状态为Sent,即表示邮件已发送完成。
在邮箱中收到的邮件如下图所示。
OK ,到这里,我们要实现的功能已全部实现,完成目标。
谢谢你打开这篇博文,并一直坚持看到了这里,如果觉得对你有帮助,请不要吝啬在右下角的赞上点一下。