Cacti的库表结构-Graph

运维 系统运维
Cacti的库表结构-Graph:cacti是一套开源的网络监控工具,基于rrdtool的良好绘图功能,可以完美的监控主机的状态和负载情况,添加相应的模板后,可以用来监控apache服务器和mysql服务器的运行状态。本文讲述的是Cacti的库表结构-Graph

  cacti 我们也用了很久了,但是它的表结构一直都没有去关心过,得空抽了半个晚上的时间,把它的库表结构大概看了下,某些字段的含义跟大家分享下:

  cacti 的数据都是存放在rrdtool 中的,数据库存放的其实只是配置数据,cacti 的逻辑对象主要分为三种,data (数据)、graph (图片)、host (设备),这在它的表设计中也能很容易的看出来。所以,就分三个大类来讨论了

  Graph

  绘图方面,自定义的方法其实很多, cacti 并没有把 rrdtool 在绘图方面的参数全部表现出来,不过也已经够用了。

  1 、 graph_local 表

  本地的图片,和 data_local 类似,一般来讲,一个 data_local 的对象,都会对应一个 graph_local 的对象,意思就是,一个数据,对应一张图片,但是也有可能出现不对应的情况,那就是:我有些数据并不绘图、或者有些图我需要多个数据。

  表结构和 data_local 类似,不过 data_template_id 换成了 graph_template_id ,***个 id 字段代表的含义也变了,代表 graph 对象。

  2 、 graph_templates 表

  绘图模板。

  id :模板的 id

  hash :索引

  name :名称

  3 、 graph_template_input 表

  graph_template 对应的具体对象类型,比如说这个类型是个颜色,这个类型是流量数据流入的数据源,等等。

  id :数据类型的 id

  hash :索引

  graph_template_id :图片模型的 id ,在 graph_template 中定义

  name :名字

  description :不作说明了

  column_name :对象的类型,是颜色,还是数据源,还是一段文字

  4 、 graph_template_input_defs 表

  定义图中的具体对象类型和 item 的对应。

  graph_template_input_id : graph_template_input 的 id ,类型是什么

  graph_template_item_id :具体对象的 id ,在 graph_templates_item 中定义

  5 、 graph_templates_gprint 表

  输出格式

  6 、 graph_templates_graph 表

  绘图时候的选项,每张图在这张表中对应一条记录,大多是 rrdtool 的参数。和 data_template_data 类似。

  id :绘图选项的 id

  local_graph_template_graph_id :如果采用模板的话,这里就是模板的 id 。模板中定义好的东西,就不用重新定义了。在本张表中有定义

  local_graph_id :是哪张图,在 graph_local 中定义

  graph_template_id :在 graph_templates 表中定义的绘图模板

  剩下的都是 rrd 绘图的选项了,例如绘的图有多高,多宽,图片的名字是啥等等 ......

  7 、 graph_templates_item 表

  每张图上,对应的有些什么内容。内容主要是包含:线或者是面,就是趋势图、下面的标注,例如***值,最小值,当前值。

  id : item 的 id

  hash :

  local_graph_template_item_id :如果采用了模板,则写模板的 id ,在本表中定义

  local_graph_id :对象属于哪张图

  graph_template_id :在 graph_templates 表中定义的绘图模板

  task_item_id :如果对象的类型是 task_item_id (在 graph_template_input 中定义),则这里的 id 就是数据源的 id ,在 data_template_rrd 中定义。

  color_id :颜色,在 color 表中定义

  alpha :透明度

  graph_type_id :图的类型?

  cdef_id :如果这个值是计算出来的(例如多个值的累加),那这里要有计算的公式,在 cdef 表中定义

  consolidation_function_id :功能函数,比如取平均值,取***值等

  text_format :字符串,直接显示在图上的东东,可以理解为对象的名字

  value :值

  hard_return :不知

  gprint_id :输出格式

  sequence : rrd 的绘图是有顺序的, sequence 大的对象会覆盖 sequence 小的对象

  绘图的地方,是最复杂的地方,因为 rrdtool 本身在绘图的时候参数就是最多的,也是最复杂的,把这些东西都封装到数据库中,那这些表结构也是十分复杂的。一般情况下,可以这么理解:

  1 、每个 host_id 的对象,可以对应多张图,但是也有可能有某些图并不对应任何 host ,例如汇总的图。但是每张图必然在 graph_local 中有定义,就是有一个 local_graph_id 。

  2 、每张图片,在创建的时候肯定有很多参数,这些参数就是在 graph_template_graph 中定义的。如果采用了模板,那模板中定义过的参数,就不用再重复定义了。

  3 、每张图片,必然包含一个以上的对象,那就是 graph_template_item 了, item 有很多类型,例如,流量图中,绿色区域代表的流出、蓝色实线代表的流出,就分别代表一个对象。还有些对象,例如下标的***值,平均值等。这些对象,都是需要有数据源的,可能一个数据源,也可能需要多个,因为实际绘出来的值,是 cdef 把不同的数据源运算后得到的。这个数据源,就是 ds ,也就是 data_template_rrd 中的对象。

【编辑推荐】

修改Cacti中rrd文件大小

Redhat下怎样安装Cacti

用Linux上的cacti去监控windows服务器(图)

责任编辑:zhaolei 来源: csdn
相关推荐

2011-04-06 08:54:34

CactiDATE

2011-04-06 09:10:54

CactiHost

2011-03-31 15:41:51

Cacti数据表结构

2011-03-31 14:34:46

cactimysql备份

2010-05-24 13:14:19

创建MySQL

2011-04-06 08:54:28

CactiRRD

2011-09-01 14:00:11

SQL Server 存储过程显示表结构

2011-03-31 10:41:37

Cacti架构

2011-03-29 09:08:50

Linux

2011-04-01 15:39:02

CactiNagios

2011-03-24 14:05:17

Cacti安装

2011-08-04 15:55:25

SQL Server数

2010-11-23 12:39:05

MySQL InnoD

2010-09-28 15:34:05

SQL表结构

2010-10-15 10:29:25

Mysql表结构

2010-09-26 15:23:24

SQL语句

2010-11-23 13:24:16

MySQL MyISA

2011-03-25 09:00:34

Cacti

2011-03-24 14:05:17

Cacti监控

2011-03-24 15:35:01

Cacti
点赞
收藏

51CTO技术栈公众号