本节书摘来自华章计算机《Cacti实战》一书中的第3章,第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的精美包装,就可以呈现在用户面前了。

《Cacti实战》——3.1 检索流程相关推荐

  1. 《Cacti实战》——导读

    ** 前言 ** 如何对用户的数据中心.业务系统进行妥善的日常运维和管理?这一课题是我们在日常工作当中研究的重要方向.在研究过程中,我们接触了很多商业产品和开源项目,但是在研究过程中发现,很难找到一个 ...

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

    本节书摘来自华章计算机<Cacti实战>一书中的第2章,第2.2节,作者:刘钊,张跃著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.2 安装与配置相关 ...

  3. 《Cacti实战》——第1章 认识Cacti

    本节书摘来自华章计算机<Cacti实战>一书中的第1章,作者:刘钊,张跃著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第1章 认识Cacti 在面对一个 ...

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

    本节书摘来自华章计算机<Cacti实战>一书中的第2章,作者:刘钊,张跃著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第2章 环境的安装和配置 上一章介 ...

  5. 知识产权(二)——检索流程和要素表达

    0.检索流程 (0)阅读要检索的技术方案(充分理解) (1)对于检索前的准备,要做到阅读有关文件:专利文献核对给出IPC分类号:分析权利要求.确定基本检索要求:(针对什么内容,确定检索关键点) (2) ...

  6. 【Go API 开发实战 3】API 流程和代码结构

    API 流程和代码结构 为了使读者在开始实战之前对 API 开发有个整体的了解,这里选择了两个流程来介绍: HTTP API 服务器启动流程 HTTP 请求处理流程 本小节也提前给出了程序代码结构图, ...

  7. 2、【WebGIS实战】WebGIS开发流程介绍

    大家好,我是X北辰北.本文是「WebGIS实战」系列,关注这个标签,阅读所有文章,成为WebGIS开发高手. 在所有事情开始之前,我们还是花一篇文章的时间来给大家介绍下WebGIS开发相关的东西,主要 ...

  8. Kotlin实战指南三:流程控制

    转载请标明出处:https://blog.csdn.net/zhaoyanjun6/article/details/87855797 本文出自[赵彦军的博客] Kotlin初体验三:流程控制 if 表 ...

  9. 实战1-数据项目分析流程

    数据项目分析流程 文章目录 数据项目分析流程 1.明确问题 2.数据加载与理解 3.数据清洗 4.数据分析和可视化 4.1 购买商品前十的国家 4.2 销售额前十的国家 4.3 2011前十国家月营业 ...

最新文章

  1. 内存溢出和内存泄漏的定义,产生原因以及解决方法(面试经验总结)
  2. 汇编语言--算术运算指令
  3. 树结构练习——排序二叉树的中序遍历
  4. 错误The type XXX is deprecated解决
  5. 进行面向对象设计时,就一个类而言,应该仅有一个引起它变化 的原因,这属于()设计原则。【最全!最详细解析!】
  6. click group list in left launchpad
  7. 常用各种芯片手册大全_【汇总】超全面!国内芯片60个细分领域知名代表企业...
  8. 阿里巴巴获评《福布斯》全球最有投资价值公司
  9. 使用 Filebeat 对多行日志进行处理(multiline)
  10. 论文翻译——Lattice indexing for spoken term detection
  11. JPDA 架构研究19 - JDI的连接模块
  12. python如何输入n个数字_python如何一次性输入多个数
  13. 数据增广Data Augmentation 动手学深度学习v2
  14. 开箱即用的SSH攻击字典收集工具
  15. 硬盘安装manjaro linux,安装Manjaro Linux的详细步骤
  16. 模拟电路与数字电路基础知识点总结
  17. 线性插值法(一次插值多项式)的Python程序
  18. 全球最牛逼的并发架构,抖音排第二,它排第一!
  19. 02 | 该如何选择消息队列?
  20. JavaScrpit 犀牛书第七版笔记

热门文章

  1. 揭秘:人工智能迅猛发展的本质是什么?
  2. 【AI学习篇】实战深度学习(3):深度学习的数据表示
  3. SAP库存历史库存表更新逻辑
  4. 揭秘丨“北京八分钟”里中国制造的科技力量
  5. 图的概念以及常见的图论问题介绍
  6. windows安装visual studio code并配置latex并编写latex论文
  7. 量化集体行为特刊:信息论为量化集体性提供形式化框架
  8. 一个没有意义的宇宙我们很难想象
  9. 这一年,宇宙“面目”愈发清晰
  10. 图解|2018年度中国科学十大进展