cacti 我们也用了很久了,但是它的表结构一直都没有去关心过,得空抽了半个晚上的时间,把它的库表结构大概看了下,某些字段的含义跟大家分享下:
cacti 的数据都是存放在rrdtool 中的,数据库存放的其实只是配置数据,cacti 的逻辑对象主要分为三种,data (数据)、graph (图片)、host (设备),这在它的表设计中也能很容易的看出来。所以,就分三个大类来讨论了
一、 Host
cacti 的host 一般是要使用模板的,每个host 自己的信息,只存放在host 表中,其余的就都是模板的信息,模板的对应关系等等。
1 、host 表
host 表有34 个字段,用来存放设备信息,就是我们在console 的devices 选项中可以看到,并且配置的东东。具体字段的含义如下:
id :就是设备的id ,自增
host_template_id :如果这个设备使用了模板,那这个就是模板的id
description :描述,在cacti 里看到的设备名
hostname :设备ip 地址
notes :不做解释
snmp_community 、snmp_version 、snmp*...... :snmp 相关的配置选项,就是字面的意思
availability_method :在页面上看就是Downed Device Detection ,我理解就是,如何看这台设备是否挂了
ping_method :udp ping 还是icmp ,还是tcp
ping*...... :ping 的相关选项,字面意思
max_oids :一次最多get 多少个oid
status*...... :设备当前状态相关,字面意思
一堆time :不太清楚,应该是pollor 相关的,具体单位不知
total_polls :总共取了多少次值了
failed_polls :失败了多少次
availability :可用性,上面两个字段算出来的
2 、host_template 表
设备模板,总共就三个字段,***个是id ,就是host_template_id ,在host 表里有引用,第二个是个哈希,就是模板的位置索引,第三个是索引名字。
3 、host_template_graph 表
模板的对应,存放的信息主要是,一个设备模板,需要绘什么图,也就是设备模板和绘图模板的对应关系,就两个字段,host_template_id 和graph_template_id ,graph_template_id 就是graph_templates 里面的id 值。
4 、host_template_snmp_query 表
模板和数据抓取方式的对应,对应的数据抓取方式就是snmp_query_id ,在snmp_query 表的id 值。
每个snmp_query ,都会对应有graph ,如果一个设备模板,对应了一个snmp_query ,这个snmp_query 又对应了一系列的graph ,那这个设备模板就自动对应这些graph ,而这个关系在host_template_graph 里是没有的
5 、host_graph 表
设备和图片模板的对应,也是两个id ,host_id 和graph_template_id ,graph_template_id 在graph_templates 表中定义。
一般来讲,这个设备下的图片,会包含它所属的设备模板和图片模板的对应,也就是说,这个对应关系,和host_template_graph 表中有些类似。
6 、host_snmp_cache 表
存放snmp 去取值时的临时值,例如网络流量,需要的是累加值,那这里就存上次的总值,用来计算用
7 、host_snmp_query 表
设备和snmp_query 的对应,和host_graph 类似,这个对应关系,和host_template_snmp_query 表中的数据是对应的。
【编辑推荐】