《Cacti实战》——3.1 检索流程

3.1 检索流程

Cacti系统的首要任务是对网络内的监控设备进行数据检索,即监控数据的获取过程。Cacti使用轮询器,也就是Poller程序来完成这个工作。还记得么?就是“同福客栈的大跑堂白展堂”。Poller程序通过操作系统自身的计划任务功能被定期触发执行。Windows平台的计划任务功能就是自身的维护计划程序,Linux平台的计划任务功能就是Cron程序,通过编写Crontab脚本来实现。
在IT数据中心的环境中有各种各样的设备,如服务器、网络设备,甚至家用电器等。不用担心,大部分设备都支持简单网络管理协议(Simple Network Management Protocol,SNMP)的标准,为了后续能够更好地调试和运维,先介绍SNMP的基本原理和架构。
SNMP由一组网络管理的标准组成,包含一个应用层协议(Application Layer Protocol,ALP)、数据库模型(database schema)和一组资料物件。该协议支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。该协议是互联网工程工作小组(Internet Engineering Task Force,IETF)定义的Internet协议簇的一部分。
Cacti进行数据检索的主要流程如图3-2所示。

还记得我们在主机上安装了SNMP的相关组件么?整个监控网络中SNMP的设备主要包含SNMP Server和SNMP Agent两个角色。
可以将SNMP Agent程序理解为一种客户端程序,它的主要作用就是将被监控设备上的数据采集回来,按照MIB库的规则存放。通常情况下,Linux的常用代理程序是Net-SNMP,Windows的程序通过添加/删除程序可以安装,而类似于Cisco路由器、EMC存储之类的设备是自带SNMP的。Agent程序把从设备读到的各种数据(如CPU的负载数据)以SMI(Structure of Management Information)规定的格式写到MIB库中。
这里解释一下MIB。MIB(Management Information Library)可以简单地理解为一张地图或者一组抽屉,它是一个结构化的描述树,如图3-3所示。
Agent程序从设备中抽取出来的数据如果没有MIB的匹配,就是一组毫无意义的数据,MIB会按照事先制定好的规则,把这些数据按照它们各自的去处分别“入库保存”。
举个例子:我们希望查看服务器收到了多少个ICMP的请求,通过上面的树状图一步一步向下寻找,那么变量1.3.6.1.2.5.1中就保存了ICMP请求的数量。

下面该轮到SNMP Server工作了,用户给Cacti系统发出请求,需要查看某一设备的工作状态,Cacti将请求解析,然后控制SNMP Server程序,让它去找指定的SNMP Agent的程序。
下面是服务器与客户端之间的一组对话。
“HP DL380服务器上的Agent你好!我是Cacti Server上运行的SNMP管理控制程序,我现在是通过poller程序在跟你讲话,我需要你这台机器上的CPU负载数据,你传递给我一下!”
“Hi!SNMP管理端你好!数据都在MIB库中,你可以直接获取到。还记得我们约定好的MIB变量规则吧?”
“Hi!当然不会忘记啦,这不是国际通用的标准么,自然记得,哦!对了,用户还希望MIB中的数据可以每5分钟更新一下,辛苦啦!”
“愿意效劳,我会每5分钟到CPU中取数据,Poller程序可以每5分钟触发你一下过来到MIB中读取。”
“Deal!”
通过这么一个流程,SNMP Server取到的数据通过Cacti的加工组织和RRDTool的精美包装,就可以呈现在用户面前了。

时间: 2024-11-08 22:51:25

《Cacti实战》——3.1 检索流程的相关文章

《Cacti实战》——第3章 Cacti的基础流程

第3章 Cacti的基础流程 第1章介绍了Cacti系统的数据流向,这里先简单回顾一下. Cacti在监控主机设备时,首先按照系统内设置好的数据检索方式(主要是数据输入方式和数据查询两种类型),查询与获取对设备主机进行监控的指标数据:其次,Cacti将数据按照要求分类,监控数据保存在rra文件中,元数据保存在数据库中:最后,Cacti系统按照预先设置的图形模板绘制图表,将数据以可视化的方式展现给用户.因此,数据的流向可以分为如图3-1所示的3个部分,即数据的检索流程.数据的存储流程和数据展现的可

《Cacti实战》——导读

前言 如何对用户的数据中心.业务系统进行妥善的日常运维和管理?这一课题是我们在日常工作当中研究的重要方向.在研究过程中,我们接触了很多商业产品和开源项目,但是在研究过程中发现,很难找到一个行之有效的方案和手段,直到接触了Cacti这个项目.它既不像企业级产品架构那样复杂庞大.交互体验不好,也不像一些开源项目那样--虽然设计简单,但是不具备高级功能,制约用户的需求扩展. Cacti的外观和架构设计很简单,而且是松散耦合,深究其内涵,我们发现它对于高级功能的扩展支持也很到位,特别适合中小型企业.院校

《Cacti实战》——3.4 本章小结

3.4 本章小结 通过本章的介绍,我们了解了Cacti系统的工作流程.Cacti的工作流程分为数据检索.数据存储.数据可视化三个环节.数据检索负责将数据按照指定的时间.频度.执行方式来查询和获取监控设备的指标数据.数据存储负责保存Poller程序收集回来的数据,元数据保存在MySQL数据库中,监控的数据保存在rra文件中,方便RRDTool工具后续绘图使用.数据可视化的主要任务是将监控数据和指标以一定的格式绘制出来,它借助RRDTool工具中的Graph画图命令来完成该工作.当然在实际使用过程中

《Cacti实战》——3.3 数据可视化流程

3.3 数据可视化流程 数据可视化是最终呈现监控结果的重要一环,Cacti的最终任务就是将数据进行可视化展现.当系统完成数据的检索与存储之后,Cacti通常会使用RRDTool内置的绘图工具来绘制图表. 进入Cacti的"图形管理"界面,可以使用调试模式查看绘制图形的执行命令,如图3-5所示. 这段语句的主要作用见配置脚本3-1中的注释. 配置脚本3-1 SNMP查询的XML脚本头信息 c:/rrdtool/rrdtool.exe graph - \ #使用rrdtool命令绘图 --

《Cacti实战》——3.2 存储流程

3.2 存储流程 当数据通过SNMP或者脚本查询的方式被Cacti系统获取之后,这些数据会分门别类地存储,Cacti的工作流程就进入数据存储这一步骤.在Cacti系统中,数据一般会分为两种,一种是监控指标的数据,它们以普通文件的方式(rra文件)存储在文件系统中,另一种是系统必备的元数据,它们以结构化数据的方式存储在数据库中.下面分别介绍这两种数据是如何存储的.3.2.1 RRDTool存储方式 在前面章节已经介绍了RRDTool基本知识,RRDTool的存储方式,也很有必要学习.RRDTool

《Cacti实战》——2.2 安装与配置相关组件和服务

2.2 安装与配置相关组件和服务 "原材料"准备好了,但距离Cacti成功运行还有一步之遥,必须正确.完整地安装配置Cacti所需的环境和服务,本节分为Windows和Linux两个平台来介绍安装和配置Cacti系统需要的基础环境和服务.2.2.1 Windows Server平台的环境搭建 以Windows Server 2008 R2 Standard版本为例,基于IIS的Windows平台的Cacti环境配置流程如图2-1所示. 当然,在Windows平台上,可以使用Apache

《Cacti实战》——1.3 Cacti的架构与原理

1.3 Cacti的架构与原理 本节分为两大部分,第一部分介绍Cacti的组织架构,通常新产品部分的介绍都比较晦涩难懂,所以我们通过一个形象生动的例子来介绍,大家看了不会感觉头晕脑胀.第二部分阐述Cacti系统的数据流向,这里不用花太多时间,了解即可,因为后面章节会有详细说明.1.3.1 Cacti系统的组织架构Cacti系统的各个模组之间的工作界面比较清晰,各个模组分工明确,耦合松散.如果把系统比作同福客栈(Cacti系统),那么会有以下几个角色(系统模组).1.?同福客栈的门脸--浏览器窗口

《Cacti实战》——2.1 Cacti安装前的准备

2.1 Cacti安装前的准备 巧妇难为无米之炊,在"种植仙人掌"之前,先来看看需要准备哪些"原材料",主要包括硬件环境.操作系统环境和支撑Cacti系统运行的应用软件环境. 1.?硬件环境 就像仙人掌可以生长在条件恶劣的荒漠中一样,运行Cacti的环境也十分宽松,对于最小系统,或者实验环境,仅仅需要一台X86架构的计算机即可.但如果希望在企业中使用Cacti来完成日常的系统运维任务,那么还需要准备一台稳定性够好.性能够强劲的服务器.在本书的实战过程中,我们选择了H

《Cacti实战》——第2章 环境的安装和配置

第2章 环境的安装和配置 上一章介绍了Cacti的起源.功能特点和体系架构,但这多少有些纸上谈兵的感觉.从本章开始,大家将进入实战环节,通过动手操练来感受"仙人掌"的无穷魅力. 本章主要介绍Cacti的安装及配置过程.