王光武,孙 谦,贺宝华
(1.大连海洋大学 信息化工作办公室,辽宁 大连 116023;2.大连海洋大学 组织人事部,辽宁 大连 116023)
随着学校教育信息化的逐步深化、智慧校园建设的不断完善,校园网络节点正逐渐增多,各类校园应用陆续上线,学校数据中心服务主机、虚拟主机等数量也是水涨船高,校园网络变得庞大,环境也更加复杂。对于运维人员来说,如何借助有效工具,对各个网络节点、主机的运行状态进行有效的监控与记录,并在出现异常时及时发现处理,成为运维工作必不可少的环节。同时一个完整全面的监控日志,还可为运维工作提供数据支撑,根据日志挖掘出网络节点、主机的运行规律及隐患,以此不断提高网络运维水平及问题处理效率。
Cacti 是一 套基于PHP、MySQL、SNMP 及RRDTool开发的网络流量监测工具,其主要功能是通过SNMP 协议获取数据,并利用RRDTool 工具储存和更新数据,进而生成图表呈现给用户,方便用户查看数据。
Cacti 部署灵活,可以部署在校园网络中的任何位置,只要保持Cacti 服务器与被监控主机网络可达即可。虽然部署灵活,但要形成完整的Cacti 监控平台,除安装Cacti 自身软件外,还需安装Mysql、Apache、Net-snmp、RRDTool 等一系列支撑软件,并加载相应的数据监控模板,配置相对麻烦烦琐。在此情况下,为减少部署的工作量,轻松完成完整可用的Cacti 平台的搭建,就离不开高度集成的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 10.1 版本,仅需准备一台存储空间大于10G 的主机即可。我们将Cacti EZ 10.1 镜像刻录成光盘,主机通过光盘启动引导自动进入Cacti EZ 的安装页面,无需过多操作,系统将自动安装完成。安装完成后,便可进入软件平台的初始化配置页面,整个安装过程仅仅耗时15 分钟左右。在上述操作完成后,仅需配置主机的网络地址便可登录平台。
(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 所示。
图1 校园网络拓扑图及Cacti EZ 监控平台部署位置
①网络设备的监控实现
通常的网络设备,均支持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 所示。
图2 Cacti EZ 控制台
根据控制台提示,选择添加主机及对应监控模版后,Cacti EZ 监控平台会自动根据对应模版,加载出目前能够监控到主机设备的一系列“数据查询”信息,包括CPU使用率、内存使用率、进程数量等等。在阈值设置上,我们可以根据运维经验或者实际情况进行配置。阈值设置的目的在于,当图形监控超出设置的阈值时,Cacti EZ监控平台会根据所填写的报警邮件地址,自动向该邮件地址发送报警邮件(具体的报警邮件配置在后文中进行阐述),以此实现自动预警。
②添加图形树
图形树的意义在于,能够为用户提供直观的监控图形查看方式。图形树可将图形进行详细的树状分类,以父子层次结构来组织图形对象。[3]用户可以根据实际情况对图形进行归类,并向下级设置分支,最后将图形添加到对应的分支上。
用户可以在“图形”选项卡中查看已添加好的图形树及分支对应的图形。用户也可以在【查看状态】页面,看到已添加好的主机运行状态,进而查看主机所包含的各类监控图形。
③邮件报警
Cacti EZ 监控平台已经集成了邮件报警功能,我们只需要正确配置,即可实现邮件报警功能。这里不建议采用Linux 系统自带的sendmail 功能发送邮件,而是用常用的SMTP 功能进行,同时SMTP 服务器地址以及定义的端口号不要填写错误。对于SMTP 用户名和密码,即填写需要收到报警邮件邮箱的用户名和密码。同时还要检查邮箱账户是否开启SMTP 服务,否则将提示账户认证失败。
邮件报警配置成功后,还要在“报警/阈值”选项卡内,进一步设置报警参数。“报警/阈值”选项卡内容,可根据实际情况填写,也可以按照Cacti EZ 监控平台的默认值提交即可。除异常情况下的阈值报警外,当被监控的主机宕机或恢复后,Cacti EZ 监控平台也会发出报警邮件,图3 为被监控主机的宕机及恢复测试。
通过上述配置网络管理人员邮箱,并利用邮箱提供商便捷的移动端(如QQ 邮箱APP)邮件提醒功能,可实现及时接收监控平台发来的报警信息,以免带来不必要的损失。
图3 主机报警及恢复测试
(4)实践与应用
对校园网络各层交换设备的实时监控,包括设备温度、CPU 利用率和内存占用率、上行接口流量等一系列信息,目的是通过监控及时发现设备异常情况,准确定位异常发生的时间、范围等信息,为运行维护与故障排查带来便利,有助于及时发现故障,有效防止设备损坏和不必要的损失发生。
①接入设备CPU 使用率监控
图4 是笔者学校某个楼宇某层接入设备一天的CPU 使用率,根据该楼宇日常在线用户情况,接入设备的CPU 通常应处于较低的使用率。如在某个时间节点后,接入设备的CPU 使用率突然异常增大,甚至达到70%以上,且居高不下,这种情况极有可能是由于某个房间出现环路造成的,接入设备的CPU 资源将会被环路耗尽,最终导致楼层网络瘫痪,网管人员发现后应及时排查处理。
②核心设备的下联链路监控
图5 是对笔者学校某校区核心设备的下联链路流量进行的监控与记录(部分截图)。从图中可以看出,监控平台记录了各下联链路某个时间段的网络流量使用情况,可使学校网络管理人员直观地了解到校区各节点楼宇的网络带宽利用率,便于掌握网络使用规律,为网络带宽调度和分配提供决策依据。
图5 节点网络流量走势图
③对主机CPU 的监控
图6 展示的是通过Cacti EZ 监控平台记录笔者学校某个应用服务器1 天之内CPU 的使用率,可以看出该服务器的使用集中在下午16 点至22 点,且使用率不到10%,其余时间使用率较低,但在这一天的12 点左右却出现了20%的短暂小高峰。这种情况下,运维人员可以根据此项记录,了解服务器在此时进行的作业是否存在异常情况,进而做出相应处理。
图6 某服务器1 天内CPU 使用率
④对主机进程数量的监控
图7 展示的是通过Cacti EZ 监控平台记录某个服务器1 年之内的进程数量走势图,我们可以看出,服务器在去年3 月份进程数量突破了2000,达到3000 左右,并一直维持在这个区间,且在本年度2 月份突破了4000峰值,可能有保持这个数量的趋势。这种情况对于普通网站服务器是比较危险的,硬件资源将会不足。运维人员可以根据此项记录,应尽快对服务器资源进行调整和规划,以免出现不必要的宕机。
图7 某服务器1 年内进程数量监控
本文介绍了在校园网络环境下,如何正确部署Cacti EZ 监控平台,并合理有效利用,以此对学校校园网络各个节点进行监控,使学校网络运维人员能够直观高效地掌握校园网络内各节点的运行情况,并通过阈值设定实现自动报警。Cacti EZ 监控平台的使用,将有利于网络管理人员在第一时间发现异常情况,同时也为网络管理人员提供了合理规划、分配网络带宽的决策依据。[4]