通过本章的介绍,我们了解了Cacti系统的工作流程。Cacti的工作流程分为数据检索、数据存储、数据可视化三个环节。数据检索负责将数据按照指定的时间、频度、执行方式来查询和获取监控设备的指标数据。数据存储负责保存Poller程序收集回来的数据,元数据保存在MySQL数据库中,监控的数据保存在rra文件中,方便RRDTool工具后续绘图使用。数据可视化的主要任务是将监控数据和指标以一定的格式绘制出来,它借助RRDTool工具中的Graph画图命令来完成该工作。当然在实际使用过程中我们发现,Cacti提供了多种辅助功能来帮助用户方便快速地完成工作流程。
本章分为三大部分进行叙述。第一部分针对检索流程,主要介绍SNMP获取数据的方式,包括Server端与Agent端如何进行通信,数据如何被存储到MIB库当中,以及如何定位一组设备的数据,等等。第二部分介绍存储流程,RRDTool是非常重要的存储数据的组件之一,这部分内容介绍RRDTool如何存储数据,如何以一种循坏周期性存储的方式来不断重写原先位置。另外,针对元数据的存储,分析一个实际保存在MySQL数据库中的表格,讨论每一个字段的意义,当然要想把所有的数据库表结构都如此分析一遍,工作量太大,将在附录中把Cacti的表结构呈献给大家。第三部分介绍了数据可视化流程,以一段实际的绘制图形的例子来说明Cacti如何利用RRDTool工具进行绘图,及其图形格式、设计相关的参数设置。
本章提到了MIB库,本期的IT讲堂就详细介绍MIB库的由来和内部结构。
IT讲堂
MIB库
提到MIB库,就不得不提SNMP,本书已经多次介绍了SNMP的相关内容,这里再简单解释一下。SNMP(简单网络管理协议)是目前在IT行业中使用最为广泛的网络管理协议,该协议是基于TCP/IP协议的网络管理标准,它包括协议自身、数据库的定义等。用于构成TCP/IP网络管理的网络管理模型的4个关键性部件是SNMP协议自身、SNMP管理服务器、SNMP代理和SNMP的MIB库。MIB库(管理信息库)存放了被监控对象资源的所有信息,并且是通过网络管理协议可以访问的信息。这些信息更具体地理解为网管中的被管资源,而网络管理中的资源以对象来表示,每一个对象表示被管资源某一方面的属性,这些对象的集合形成管理信息库。
MIB库可以形象地理解为一组抽屉或一棵大树,我们用大树来举例子。MIB树的根节点没有名字或编号,但是它有下面3个子树:ISO(1),由ISO(国际标准组织)管理;CCITT(2),由CCITT(国际电报电话咨询委员会)管理;ISO/CCITT(3),由ISO和CCITT共同管理。以ISO(1)节点为例,如图3-6所示。
在节点下有一些延伸出来的子树,其中包括ISO为其他组织定义的子树ORG(3)。该子树其中一个比较值得引起注意的特殊节点是美国国防部使用的节点:DOD(6),所有通过DOD的协议,如TCP/IP通信的设备,所有需要获取这些设备的信息都位于该子树下,它的完整对象标识符是1.3.6.1。该对象标识符被称为INTERNET。图3-6为MIB树的上层结构。其中Directory(1)子树保留将来使用,Mgmt(2)子树包含关于DOD协议的管理信息,目前该子树中的对象是最广泛的。其中对象标识符1.3.6.1.2.1已被MIB-II所取代。Experimental(3)子树是实验协议和MIB开发通常使用的子树,该子树下的所有对象标识符都以整数1.3.6.1.3开始。Private(4)子树用来指定单方面定义的对象,该子树中网络管理系统访问最多的是Enterprises(1)节点。该节点下的每个子树都分配给一个固定的企业,但企业必须先向IAB登记注册厂商代码,然后就可以在该代码下创建属于厂商自己的对象。
RFC2013标准中存在很多管理对象,其中常用的管理对象如表3-2所示。