Cacti的库表结构-Data
cacti 的数据都是存放在rrdtool 中的,数据库存放的其实只是配置数据,cacti 的逻辑对象主要分为三种,data (数据)、graph (图片)、host (设备),这在它的表设计中也能很容易的看出来。所以,就分三个大类来讨论了
二、 Data
data 主要就是数据获取,获取数据,然后存放到 rrd 文件中,这里存放的数据,主要就是如何获取数据、和如何存放数据这两种。
1 、 data_input 表
数据获取的方式,在 console 中的 data_input_method 里可以看到。
id :数据获取方式的 id
hash :对应的磁盘索引
name :数据获取方式的名字
input_string :如果是脚本的话,那就是脚本的位置了
type_id : type 一直没找到对应的表,可能是程序里写死了,对应的是 input_type ,有 6 个选项,分别是: snmp 、 snmp query 、 script/command 、 script query 、 script – script server 、 script query – script server
2 、 data_input_fields 表
这张表是用来存放一些 data_input 方法中所需要的对象,比如 snmp 的 oid ,那就是一个对象, script 方式取硬盘时候,取回来值的名字,单位,都属于它所定义的范畴。表内容,主要是这些对象,和 data_input 的对应。
id : input_fields 的 id
data_input_id :对应 data_input 表中的 id
name 、 data_name :名字
input_output :输入还是输出
下面几个字段我也不清楚了……
3 、 data_input_data 表
存放的是每个 data 对象的 data_input_field 内容。
data_input_field_id : data_input_field 中的 id
data_template_data_id : data_template_data 中的 id
4 、 data_local 表
存放数据对象,就是在 console 中的 data source 页面看到的东东。不过这张表只是简单的定义一个对象和对应关系,对象的具体属性在另外的表中。
id : data 的 id
data_template_id :采用了哪个数据模板,在 data_templates 模板中定义
host_id :是哪个设备的数据,在 host 中定义
snmp_query_id :如果是通过 snmp_query 方式获取的,那对应的 snmp_query 的 id ,如果不是,则为 0
snmp_index : snmp_query 方式获取数据时,获取数组的前缀。例如,流量获取中,端口的 index
5 、 data_template 表
数据模板,我们在 console 的 data templates 中看到的东东。
id :数据模板的 id
hash :索引
name :名字
6 、 data_template_data 表
具体数据对象的信息,包含模板。可以认为,每一个对象都代表一个 rrd 文件。
id : data 对象的 id
local_data_template_data_id :如果使用了模板,那这个就是模板的 id ,定义的位置也是这个表
local_data_id :对应的数据对象,在 data_local 表中定义
data_template_id : data_template ,数据模板,在 data_template 表中定义。
data_input_id :数据获取的方式,在 data_input 表中定义
*name :名字,就是字面的意思
data_source_path : rrd 文件的路径
active :是否被激活,可以通过 enable/disable 来控制
rrd_step :步长,默认是 300s ,就是 5 分钟,也就是多长时间存一个数据( rrdcreate 的选项)
7 、 data_template_data_rra 表
数据对象和 rra 的对应, rra 也是 rrdtool 中的概念,是一种数据归档压缩的机制。
data_template_data_id :上张表中定义的 id
rra_id :对应的 rra 的 id ,在 rra 表中定义
8 、 data_template_rrd 表
基本上也是 rrdtool 的配置选项,一个 rrd 文件可以存多列,叫做 ds ,每个列代表一组数据。这张表可以看成是对这个列的定义。
id : ds 的 id
local_data_template_rrd_id :如果使用了 ds 的模板,则这里定义模板的 id ,模板定义也在这张表中
local_data_id :数据 id ,在 data_local 表中定义
data_template_id :采用的数据模板,在 data_template_data 中定义
其余的都是 rrdtool 在创建 rrd 文件时候,对这个 ds 的配置选项,例如最大值,名字等等。
data 部分还是比较复杂的,如果和 host 连起来看,就更复杂了。抛开模板不谈,一般来讲是有以下的对应关系:
1 、每个 host_id ,都有一组 local_data_id ,例如,一个 cisco 交换机的 cpu 就是一个 local_data_id ,它的一个端口—— te1/1 流量,也是一个 local_data_id 。一个 host_id 对应多个 local_data_id 。
2 、每个 local_data_id ,就是一个数据源,它必须有一个 rrd 文件与他对应,所以每个 local_data_id 在 data_template_data 中,必定对应一行记录,必定有一个 rrd 文件。别看 data_template_data 中有那么多记录,其中 local_data_id 为 0 的,或者 rrd 路径为空的,那都是模板。
3 、每个 rrd 文件,必然至少有一个 ds ,也就是在 data_template_rrd 中,至少有一条记录,例如流量,还是 cisco 的交换机,每个端口代表一个 local_data_id ,有一个 rrd 文件,有两个 ds ,流入和流出,那在 data_template_rrd 中就有两条记录。
4 、 data_input 那几张表,主要是数据获取方式,数据获取方式有 6 种,我们一般用的是三种:脚本直接取,就是 script 、 snmp ,给个 oid 直接 get 、 snmp query ,就是 snmp 取回来一组数据,然后分组。
Cacti的库表结构-Data的更多相关文章
- linux mysql-workbench 创建与正式库表结构一样的表
先在本地创建数据库 字符集选择这个 创建数据库成功 创建与正式库一样的表 step1: 连接正式库,找到要生成的表,导出创建表的sql语句 step2: 找到本地数据库,选择表,在sql执行区域复制s ...
- [sql] 同库表(结构)的备份和sql聚合&navicat使用
同库表的备份-赋值表结构和数据SQL语句 参考 有时候我们处理某个表时,需要先备份下这个表到当前这个库,然后再执行sql. 站在sql角度,就无需在mysqldump或者诸如导出sql的方式来备份了. ...
- 对比库表结构,生成SQL
网上找了一圈对比库的工具,能手工生成差别的SQL的工具没有,改造了一下网上的sql 1, 获取字段名的类型 create FUNCTION [dbo].[getColType](@tab varcha ...
- SQLServer查询所有库表结构信息
1.查询数据库中的所有数据库名: SELECT Name FROM Master..SysDatabases ORDER BY Name 2.查询某个数据库中所有的表名: SELECT Name FR ...
- 【Mysql】使用一条sql查询出库表结构信息
1.新建查询 将以下脚本粘贴进去 脚本如下: SELECT TABLE_SCHEMA 库名, TABLE_NAME 表名, COLUMN_NAME 列名, COLUMN_TYPE 数据类型, DATA ...
- CACTI表结构和数据被动获取
cacti我们也用了很久了,但是它的表结构一直都没有去关心过,得空抽了半个晚上的时间,把它的库表结构大概看了下,某些字段的含义跟大家分享下:cacti的数据都是存放在rrdtool中的,数据库存放的其 ...
- CactiI表结构和数据被动获取
cacti我们也用了很久了,但是它的表结构一直都没有去关心过,得空抽了半个晚上的时间,把它的库表结构大概看了下,某些字段的含义跟大家分享下:cacti的数据都是存放在rrdtool中的,数据库存放的其 ...
- MySQL不同库名相同表结构实现主从配置
数据库版本 5.6.16 在两个服务器上,存在不同名字的数据库,但是两个数据库中的所有表结构相同,实现主从复制. 主库服务器的数据库名为yoon,从库服务器的库名为hank 在从库的my.cnf配置文 ...
- 获取一个表中的字段总数(mysql) Navicat如何导出Excel格式表结构 获取某个库中的一个表中的所有字段和数据类型
如何获取一个表中的字段总数 1.function show columns from 表明: 结果 : 2.functiuon select count(*) from INFORMATION_SCH ...
随机推荐
- Oracle 12C -- native left outer join的加强
在11g中SQL> select count(*) 2 from emp a, dept b, bonus c 3 where a.deptno(+) = b.deptno 4 ...
- C#基础第九天-作业-储蓄账户(SavingAccount)和信用账户(CreditAccount)
要求1:完成以下两种账户类型的编码.银行的客户分为两大类:储蓄账户(SavingAccount)和信用账户(CreditAccount),两种的账户类型的区别在于:储蓄账户不允许透支,而信用账户可以透 ...
- java打印条形码Code128C
生成编码类型为Code128C的条形码的javaCODE: package test; import java.awt.Color; import java.awt.Graphics; import ...
- css遮罩层
父元素:position:fixed; 让子元素居中对齐:position:absolute;top:0;bottom:0;left:0;right:0;margin:auto; <style& ...
- PHP将CMYK颜色值和RGB颜色相互转换的例子
PHP将CMYK颜色值和RGB颜色相互转换的例子 function hex2rgb($hex) { $color = str_replace('#','',$hex); $rgb = array('r ...
- scrollReveal.js页面滚动动态效果
scrollReveal.jshttp://www.dowebok.com/134.html简介 和 WOW.js 一样,scrollReveal.js 也是一款页面滚动显示动画的 JavaScrip ...
- 分布式缓存Memcache和Redis
引言 针对于如今计算机的CPU和网络设施,相应用程序来说,运行效率的瓶颈.已经不是代码的长度(实现同一个功能)和带宽了,而是,代码訪问资源的过程.即:让我们的程序慢下来的罪魁祸首就是IO操作. 程序从 ...
- zabbix 通过自定义key完成网卡监控
创建执行脚本: # cat /etc/zabbix/monitor_scripts/network.sh #!/bin/bash #set -x usage() { echo "Useage ...
- Gradle-修改.gradle默认目录
在Windows的环境变量中新建一个环境变量设置,GRADLE_USER_HOME,值为D:\Users\shaowei\.gradle,设置完成之后,点击确定,关闭设置窗口.这个时候可以去AS中看下 ...
- Shell(6): 多线程操作及线程数
任务需要:当我需要对一个文件夹中的文件,分别压缩的时候: 原始的代码: #!/usr/bin/shell function getdir(){ for element in `ls $1` do #e ...