基于CactiEZ的校园网络监控平台部署与实现 摘要:随着校园网络规模不断扩大,学校网络节点、各类服务主机也在不断增多,这种环境下,对各个网络节点、主机的运行状态进行有效监控与记录,已成为网络运维中必不可少的环节而一个高效可靠的工具,更能为监控与记录带来事半功倍的效果本文介绍了开源监测工具Cacti EZ,以及如何利用并实现对网络流量、服务主机运行参数的有效监控关键词:网络监控,Cacti,EZ,校园网络运维一、引言随着学校教育信息化的逐步深化、智慧校园建设的不断完善,校园网络节点正逐渐增多,各类校园应用陆续上线,学校数据中心服务主机、虚拟主机等数量也是水涨船高,校园网络变得庞大,环境也更加复杂对于运维人员来说,如何借助有效工具,对各个网络节点、主机的运行状态进行有效的监控与记录,并在出现异常时及时发现处理,成为运维工作必不可少的环节同时一个完整全面的监控日志,还可为运维工作提供数据支撑,根据日志挖掘出网络节点、主机的运行规律及隐患,以此不断提高网络运维水平及问题处理效率二、Cacti简介Cacti是一套基于PHP、MySQL、SNMP及RRDTool开发的网络流量监测工具,其主要功能是通过SNMP协议获取数据,并利用RRDTool工具储存和更新数据,进而生成图表呈现给用户,方便用户查看数据。
Cacti部署灵活,可以部署在校园网络中的任何位置,只要保持Cacti服务器与被监控主机网络可达即可虽然部署灵活,但要形成完整的Cacti监控平台,除安装Cacti自身软件外,还需安装Mysql、Apache、Net-snmp、RRDTool等一系列支撑软件,并加载相应的数据监控模板,配置相对麻烦烦琐在此情况下,为减少部署的工作量,轻松完成完整可用的Cacti平台的搭建,就离不开高度集成的Cacti EZ帮助三、Cacti EZ的优势Cacti EZ是最简单有效的Cacti解决方案,它是基于Centos,并整合Cacti、Mysql、Apache等相关软件,重新编译而成的一个整体的操作系统[1]Cacti EZ部署便捷,对运行环境要求不高,甚至可以使用普通PC电脑作为服务器同时无需安装Linux操作系统、数据库等,省去了复杂烦琐的Cacti配置过程,安装后即可使用在使用方面,Cacti EZ集成了Thold、Monitor、Syslog、Weathermap、Realtime、Errorimage、Mobile、Aggregate等插件,以及Apache、Squid、F5、Nginx、MySQL等主机监控模版,可以直接加载使用,从而实现对网络中的交换机、服务主机等设备的监测。
四、Cacti EZ的部署1.Cacti EZ安装笔者学校安装部署采用的是Cacti EZ 10.1版本,仅需准备一台存储空间大于10G的主机即可我们将Cacti EZ 10.1镜像刻录成光盘,主机通过光盘启动引导自动进入Cacti EZ的安装页面,无需过多操作,系统将自动安装完成安装完成后,便可进入软件平台的初始化配置页面,整个安装过程仅仅耗时15分钟左右在上述操作完成后,仅需配置主机的网络地址便可登录平台2.监控模版及被监控设备配置(1)监控模版Cacti EZ通常提供了一定设备的监控模版供直接使用,包括Linux主机、Windows主机,以及Apache、Mysql等服务模版但是对于网络设备来说,由于市面上交换机和路由器的型号众多,而不同型号需要不同模版,不能像Windows和Linux主机一样进行统一配置使用而系统默认提供的模版通常是为国外设备厂商(多数为Cisco)而定制的,对于国内厂商如华为、锐捷的设备,基本没有直接对应的模版可供使用所以当我们需要监控上述厂商的交换机和路由器时,需要自行收集或者在Cacti官网的模版库中进行查找Cacti官网不仅提供了许多官方模版,而且很多爱好者也提供了大量的自定义模版,我们可以直接下载,解压缩,然后导入模版,直接使用,基本能够满足我们的监控需求。
当然我们还可以通过查阅设备文档、咨询售后服务等,以此获取设备常见指标的OID值,并通过OID值,制定特定型号交换机的监控模版2)被监控设备配置被监控设备无论是网络设备,还是服务主机均需要安装SNMP协议并正确配置,才能顺利加入到Cacti EZ监控平台中进行后续操作SNMP是目前网络中用得最广泛的网络管理协议,用于保证设备的管理信息在网络中任意两点间的传送,便于网络管理员在网络上的任何节点上完成检索信息、修改信息、定位故障、完成故障诊断、进行容量规划和生成报告等Cacti EZ利用SNMP协议的SNMPGET命令,从而获取远程主机设备MIB中的管理信息MIB是主机用来存放和记录管理信息的数据库,主机可以是计算机工作站、终端、路由器、网络打印机等管理信息包括CPU利用率、磁盘使用情况、网络流量等大量内容高校校园网络一般为物理三层、逻辑二层的网络结构,包括大量的接入、汇聚设备,以及一系列校园服务应用主机,这些设备都是日常网络运维所需监控的对象这里以笔者学校校园网络拓扑为例,将Cacti EZ监控平台部署在内网,并保障其与校园网络各设备的连通,进而实现对校园网络节点的监控,如图1所示①网络设备的监控实现通常的网络设备,均支持SNMP协议。
这里以笔者学校部分楼宇的华为厂商交换机为例,在其配置中启用SNMP协议,具体如下:snmp-server enable(开启SNMP协议)snmp-server securityip XXX.XXX.XXX.XXX(Cacti EZ监控平台地址)snmp-server community ro XXXXXXXX(设置SNMP团体名称)snmp-server sys-info version all(设置SNMP版本)上述配置命令在其他厂商设备也大体通用这里值得注意的是SNMP团体名称的设置,由于Cacti EZ默认为public,存在较大安全隐患为保障网络安全,我们在设置团体名称时,除采用其他字符代替public以外,还要配置securityip,以此实现仅允许Cacti EZ监控平台接收被监控主机的SNMP报文②Windows主机的监控配置对于学校数据中心内的Windows主机,可在Windows系统组件中安装SNMP协议,同时也要添加SNMP的团体名称Windows主机也自带了IP筛选功能,与交换设备securityip功能类似,需要设置成为Cacti EZ监控平台的地址除此之外,在主机防火墙上,还要添加SNMP协议端口的例外。
③Linux主机的监控配置对于Linux主机,我们需要安装Net-snmp来支持Net-snmp的安装方式较多,这里建议通过yum安装比较方便,命令如下:yum install net-snmp安装后同样需要配置SNMP,在Linux系统中的配置文件路径为/etc/snmp/snmpd.conf配置具体如下:查找以下代码:com2sec notConfigUser default public上述代码中的“public”即为团体名称,将其修改即可default”字段,为IP筛选功能,将其改为Cacti EZ监控平台地址再查找以下代码:access notConfigGroup "" any noauth exact systemview none none将systemview改为all,表示定义了一个可操作的范围名称,名称为“all”再查找以下代码:#view all included .1 80将该行前面的“#”去掉,表示定义了范围名称“all”中能够查看的设备OID(对象标识符)值1”代表可查看设备指标“.1”节点下的所有信息,包括cpu、内存、硬盘等[2]配置完成后保存并重启SNMP服务。
在Linux服务器中,同样需要在主机防火墙中开放SNMP对应的端口3)Cacti EZ监控配置①添加主机在Cacti EZ控制台首页,已经直观地展示出了如何通过一系列操作,达到监控主机的目的,如图2所示根据控制台提示,选择添加主机及对应监控模版后,Cacti EZ监控平台会自动根据对应模版,加载出目前能够监控到主机设备的一系列“数据查询”信息,包括CPU使用率、内存使用率、进程数量等等在阈值设置上,我们可以根据运维经验或者实际情况进行配置阈值设置的目的在于,当图形监控超出设置的阈值时,Cacti EZ监控平台会根据所填写的报警邮件地址,自动向该邮件地址发送报警邮件(具体的报警邮件配置在后文中进行阐述),以此实现自动预警②添加图形树图形树的意义在于,能够为用户提供直观的监控图形查看方式图形树可将图形进行详细的树状分类,以父子层次结构来组织图形对象[3]用户可以根据实际情况对图形进行归类,并向下级设置分支,最后将图形添加到对应的分支上用户可以在“图形”选项卡中查看已添加好的图形树及分支对应的图形用户也可以在【查看状态】页面,看到已添加好的主机运行状态,进而查看主机所包含的各类监控图形③邮件报警Cacti EZ监控平台已经集成了邮件报警功能,我们只需要正确配置,即可实现邮件报警功能。
这里不建议采用Linux系统自带的sendmail功能发送邮件,而是用常用的SMTP功能进行,同时SMTP服务器地址以及定义的端口号不要填写错误对于SMTP用户名和密码,即填写需要收到报警邮件邮箱的用户名和密码同时还要检查邮箱账户是否开启SMTP服务,否则将提示账户认证失败邮件报警配置成功后,还要在“报警/阈值”选项卡内,进一步设置报警参数报警/阈值”选项卡内容,可根据实际情况填写,也可以按照Cacti EZ监控平台的默认值提交即可除异常情况下的阈值报警外,当被监控的主机宕机或恢复后,Cacti EZ监控平台也会发出报警邮件,图3为被监控主机的宕机及恢复测试通过上述配置网络管理人员邮箱,并利用邮箱提供商便捷的移动端(如邮箱APP)邮件提醒功能,可实现及时接收监控平台发来的报警信息,以免带来不必要的损失4)实践与应用对校园网络各层交换设备的实时监控,包括设备温度、CPU利用率和内存占用率、上行接口流量等一系列信息,目的是通过监控及时发现设备异常情况,准确定位异常发生的时间、范围等信息,为运行维护与故障排查带来便利,有助于及时发现故障,有效防止设备损坏和不必要的损失发生①接入设备CPU使用率监控图4是笔者学校某个楼宇某层接入设备一天的CPU使用率,根据该楼宇日常用户情况,接入设备的CPU通常应处于较低的使用率。
如在某个时间节点后,接入设备的CPU使用率突然异常增大,甚至达到70%以上,且居高不下,这种情况极有可能是由于某个房间出现环路造成的,接入设备的CPU资源将会被环路耗尽,最终导致楼层网络瘫痪,网管人员发现后应及时排查处理②核心设备的下联链路监控图5是对笔者学校某校区核心设备的下联链路流量进行的监控与记录(部分截图)从图中可以看出,监控平台记录了各下联链路某个时间段的网络流量使用情况,可使学校网络管理人员直观地了解到校区各节点楼宇的网络带宽利用率,便于掌握网络使用规律,为网络带宽调度和分配提供决策依据③对主机CPU的监控图6展示的是通过Cacti EZ监控平台记录笔者学校某个应用服务器1天之内CPU的使用率,可以看出该服务器的使用集中在下午16点至22点,且使用率不到10%,其余时间使用率较低,但在这一天的12点左右却出现了20%的短暂小高峰这种情况下,运维人员可以根据此项记录,了解服务器在此时进行的作业是否存在异常情况,进而做出相应处理④对主机进程数量的监控图7展示的是通过C。