使用Cacti自定义graph template进行监控

最近为了监控线上服务搭建了cacti,它的标准服务已经能够满足我们的大多数需求,但是还是有一些特定的需求需要对cacti进行扩展,

于是就研究了一下如何进行扩展,这里我主要是通过script进行扩展的,因为对这个东西比较熟悉。


总体来说,自定义graph template需要如下几个大的步骤

新建Data Input Method

新建Data Template

新建Graph Template

应用Graph Template


1. 新建Data Input Method

Console->Collection Methods->Data Input Method->Add

如下图所示,注意右上角的Add

使用Cacti自定义graph template进行监控


会弹出如下页面

使用Cacti自定义graph template进行监控


这里Name是这个数据源的名称,Input Type选择Script/Command, Input String里填写一个shell命令

比如echo $RANDOM或者sh /tmp/test.sh

点击Create之后出现如下页面

使用Cacti自定义graph template进行监控


接下来Input Fields和Out Fields是对这个命令的一些输入和输出的定义。

对于Input Fields来说,必须在最上面的Input String里有参数名定义,比如sh test.sh <host> <path>就是定义了两个Input Fields,一个是host,一个是path

接下来我们就来说说如何创建这两个参数,点击Input Fields边上的Add,弹出如下页面


使用Cacti自定义graph template进行监控

注意这里的Field是下拉框进行选择的,因为我们上面只定义了path和host两个,因此这里只有这两个可选

Friendly Name是一个对这个输入的说明,可以随便填

Regular Expression Match是对输入的一个检查,一般可以不填,因为我们能够人肉保证不出错

Allow Empty Input 就是字面的意思

Special Type Code 这里需要注意一下,cacti自定义了注释里列出来的一些变量,对我们比较有用的是hostname,后面我们会看到一个template必须被应用到

某个Device,也就是服务器,因此这个hostname就是被监控的机器的ip;如果我们这个参数需要在应用到模板里再指定,那这里就可以为空,直接点create


同样的,对于Output Fields也有一个Add链接,点击后出如下页面:

使用Cacti自定义graph template进行监控


这里Field就是输出变量的名字,如果输出只有一个的话,这里填什么无所谓,但是如果输出有多个的话,那这里就有讲究了,比如输出变量有两个分别叫abc和def

那你的脚本的输出格式一定得是"abc:数量 def数量",这是一个约定。而且你这里的名字必须是abc和def


同样的,点击Create之后,就把这两个也创建了,我们就会回到Data Input Method的页面,点击Save即可。


到这里我们已经创建了一个Data Input Method,也即数据源。接下来需要创建一个Data Template

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/088cd1b1a8260a7bcd1ddadaf489194d.html