2012年11月23日星期五

自定义 Cacti 模板

cacti-0.8.8a 终于把 Cacti 插件管理器(PIA)给集成了,唉,早该这么干了,省事多了。

===== 1. Cacti 中的几种模板简介 =====
  - 数据模板(Data templates),它描述了 Cacti 存储哪些数据到指定类型的 RRD 文件。该模板与 RRDTool 工具的 create 命令相关。
  - 数据输入方法(Data input methods),数据模板基于数据输入方法,数据输入方法描述了 Cacti 获取监控数据的各种方法。其中最常用的就是 SNMP,但这里我们要用到一些自定义的模板。
  - 图像模板(Graph templates),描述了生成的一张图像应该是什么样子的。包括使用哪些数据模板、展示哪些元素、是否使用 CDEF 进行计算汇总。
  - 机器模板(Host templates),它是图像模板和数据查询的一个集合,描述了监控某一类型的机器需要生成那些图像。
  - 数据查询(Data queries),它是一种特殊的获取监控数据的方式,它所获取的监控数据一般是某一方面的一系列数据,比如网络接口信息。一般包括一个 XML 文件,其中定义了要获取的数据,以及获取方法(一般是一个命令或脚本)。

===== 2. 从头开始,定义一个基于自定义脚本的图像模板 =====
从前面对各个模板的功能描述中可以知道,要定义一个基于自定义脚本的图像模板,就要先从最初的数据输入方法(Data input methods)开始。

创建顺序:
<file>
  数据输入方法 --> 数据模板 --> 图像模板 --> 机器模板
</file>

==== 2.1 创建 数据输入方法 ====
数据输入方法只是定义了 Cacti 如何去获取监控数据。包括:
  - 使用什么方法获取(Input Strings),这一般是两大类:SNMP 或者自定义的脚本;
  - 有没有输入项(Input Fields),自定义脚本一般需要一些输入参数,比如远程机器的 IP 信息。
  - 最后是输出项(Output Fields),也就是使用前面定义的方法从远程主机获取的监控信息。

对于输入,Cacti 设置里面有一项 Special Type Code ,如果有设置,就可以把这个输入与 Cacti 定义的系统变量联系起来,比如,我们可以直接使用远程主机的 IP ,只要在这里填入 hostname 即可。

对于输出项,由于是自定义的脚本,因此这里就有个脚本输出内容的结构问题。并不是随随便便输出的。一般是这样:
<file>
MemFree:125 SwapUsed:10
</file>
这里要注意,脚本的输出应该是一行内容,最后不能有换行,否则出错;每个输出项目,就是你在 Cacti 中要定义的那些输出项,格式应该是 OutPutName:OutPut ,OutPutName 要与 Cacti 中定义的一致,各个输出项目以空格隔开。

==== 2.2 创建 数据模板 ====
下面是定义数据模板,模板名的格式建议参考 Cacti 自带的,这样较规范。
  * 在数据源配置(Data Source)那一块,数据输入方法(Data Input Method)选择刚才定义的那个。Associated RRA's 就不要选 Hourly (1 Minute Average) 了,因为是间隔 5 分钟抓取的数据。
  * 之后就是添加数据源(Data Source Item)了,输出项(Output Field)对应数据输入方法中定义的那些输出项,一项一项地添加,但并不需要把所有的输出项都填加到一个数据模板中,根据需要添加即可。
  * 如果输入方法需要输入项,则要在 Custom Data 那块添加。在每个输入项下,都有 "Use Per-Data Source Value (Ignore this Value)" 的选项 ,这表示为某一机器创建图像的时候才指定。如果你在前面定义数据输入方法时给输入项设定了 Special Type Code ,那么此时可以不填,这表示 Cacti 将直接使用对应的系统变量,比如远程机器的 IP ,此时 Cacti 会提示 "Value will be derived from the host if this field is left empty." 。

每个输入项设定完毕后都应该点击保存,避免遗漏。

==== 2.3 创建 图像模板 ====
同样模板名格式请参考 Cacti 自带的图像模板。
在 Graph Template Items 那块,逐一添加要显示的图像元素,每个图像元素,要配置如下信息:
  - 数据源(Data Source),对每一个图像元素,这是首先要选择的,这些数据源都是上一步定义的数据模板中的,也就是说,一个数据模板会有多个数据源(Data Source),这与在数据模板中定义的数据源数目(Data Source Item)有关。
  - 颜色,如果是画图的话,也可以不选择,如果显示元素只是说明信息;
  - Opacity/Alpha Channel 定义显示元素的透明度;
  - Graph Item Type 中定义显示元素的类型,一般图像是 AREA 或者 LINE,COMMENT 是说明,GPRINT 用于显示一些汇总信息,比如平均值、最大最小值之类的。
  - CDEF Function ,自定义的计算方程式,对获取的监控数据进行汇总和计算。这个如有必要可以自行定义 CDEF 并添加。
  - GPRINT Type,选择汇总的类型,一般 Normal 即可。
  - Text Format,显示在图下方的说明文字,最好填上。
  - Insert Hard Return,强制图下方的说明文字进行换行,请根据需要的显示效果选择。注:勾选上之后,会发现这个图像元素后面有个鲜红的 <HR> 标识。

定义结束后选择保存,一个图像模板中可以根据需要,定义多个显示元素。

==== 2.4 创建 主机模板 ====
这个就不多说了……

1 条评论:

  1. help ,0.8.8a 磁盘 I/O 插件貌似都不能用来 用OID 自动以 貌似也各种错误 参考http://phey.cc/cacti_snmpd_scripts.html做的自定义脚本

    回复删除

使用 Charles 及旧版本 iTunes 下载旧版本 iOS APP

注意:吾爱破解论坛发布的一系列自动化下载软件,比如 iOS APP Store 旧版应用下载 5.1 什么的都不好用,目前只能手动通过 Charles 截留并修改旧版本 iTunes HTTPS 请求达到下载旧版本应用的目的。 从 iOS APP Store 下载的软件都是与用户...