cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作

cacti的有许多数据模板,可以满足大多数需求。http://docs.cacti.net/templates

但是如果有比较特殊的要求,就只能自己定制了。

模板的定制首先要明确一个概念,模板是否成功,在于图表是否显示正常,图表是否显示正常在于数据是否正确。所以归根到底核心问题首先是得到数据。

关于得到数据,有两种方式。

A.用脚本,这种比较自由。但是要求脚本编写的功底。不是很通用;

B.snmpOID,这个是基于snmp提供的OID来获取数据,也可以为自己编写的确脚本赋予OID。这个要对snmp进行设置,但数据获得相对明确,而且通用性比较高。一些通用的OID我就转载前辈的记录了http://www.cnblogs.com/aspx-net/p/3554044.html

 

严格来说,这一篇只能算是对各前辈文章的再述和实验算不得原创,但我打算写一点我自己的感想,希望各位——也包括多年后的我,在看完之后能得到比原创更多的东西。

 

A.用脚本取得监控数据

首先要写一个脚本。

# vim only.sh

 

#!/bin/bash

echo $RANDOM

 

输出一个随机数,给它755权限之后,放到./cacti/scrpts/下面

# chmod 755 only.sh

# cp only.sh /var/www/html/cacti/scripts/

(这篇的环境和之前的不一样了,但基础配置是一样的,所以路径什么不要一概而论)


好了。转到cacti界面。

选择“Collection Methods”——》“Data Input Methods”,然后点击右上角的“add

 Data Input Mothods的录入

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第1张图片 

大概说明一下,Name是数据录入方法的名称,这个随便写;Input Type,这个是cacti采取数据的方式,因为是脚本,所以这里选的是“Script/Command”;Input String,这个是脚本执行的过程,即脚本执行命令,sh改成/bin/bash也行,只要能执行。

一切OK之后,右下角“Create”。

 

“Create”之后,会出来这两项。“Input Fields”是脚本运行时要输入的参数,我们这个脚本没有输入参数,所以不管它;“Output Fields”是脚本运行输出的数据,我们要得到的就是这个,所以点击右上角“add”

 

 输出字段的定义。这里要说明一下:

Field,这个是cacti对这个输出字段调用时的标识符,说白了就是这个输出字段的名称。

Friendly Name,这个其实是针对Field的补充说明,让人知道这个字段输出的具体是什么。

Update RRD File,这个是否更新RRD文件,这个不勾,最后的图上可能没有点。

一切OK。就点击右下的“save

 cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第2张图片

 出去之后是“Data Input Methods”,别忘了再save一次。

 

 下面,生成数据模板。

选择左面“Templates”——》“Data Templates”,点击右上角的“add

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第3张图片 

数据源添加页面:

Data Templates

Name,数据模板名称

Data Source

Name,数据源名称

Data Input Method,选择我们刚刚录入的数据录入方法RANDOM。特别说明一下,如果这里为空,那么最后rra文件将无法生成,也自然就没有图形。

Data Source Item

Internal Data Source Name,这个是cacti内部调用数据源时使用的名称标识,只能用字母和_

Minimum value Maximum value,默认是0,使用U是依实际为主,不设图形最大值。

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第4张图片 

Save完之后,可以看到

 

这里“Output field”已经自动识别了,我们这里只输出一个,但如果有多个输出请选择自己实际要的那个。然后再“save”,这里搞定。下一步,生成图形模板。

 

生成图形模板。

点击左侧“Templates”——》“Graph Templates”,然后点击右上角的“Add

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第5张图片 

这里分成两段设置

第一,设置图形模板的名称和图形Title

TemplateName,是图形模板的名称。

Craph TemplateTitle,是显示在图形模板上的标题。

设置好之后直接“save

 cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第6张图片

添加完成之后,在“Template”上层多了两个选择,开始添加图形相关项目,选择右上的“Add”

 

图形项目,其实就是把数据源加到图形并显示的过程。基本流程是:先把数据源添加到图形并设置数据基本的图形表现类型,然后针对相关数据进行统计。这两者的图形项目添加,有小小的不同。

 

数据源添加到图形并设置数据基本的图形表现类型:

 cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第7张图片

关键在于“Graph Item Type”和“Consolidation Function”。“Graph Item Type”其实是选择选择具体的图形框架;“Consolidation Function”这项选择AVERAGE

点击右下角的“Create”之后,可以明显的看出,数据源已经被添加到图形模板中,数据基本的图表类型为LINE1

 

现在点击右上角“Add”把要统计的数据添加进图形模板

以统计数据类型“MAX”为例。

Graph Item Type”的类型必然是“GPRINT

Consolidation Function”这个根据实际选择。

Text Format”这个是显示在图形上的标签。

 cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第8张图片

Create”之后,是这样的。

 

最后我添加了四个统计数据,最后是这样的:

 

添加方式都一样,请注意一下不同点。

之后拉到最下(现在还在添加“图形模板”不是把“图形项目”添加就了事的)进行“save”

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第9张图片 

 

下一步,应用 图形模板,生成图形,开始监控数据。

这里有两种方法。1:直接放到默认树图,2:添加到本机图形。

添加到本机图形比较简单,先说这个。

从左边“Management”——》“Devices”,选择“Localhost”(这是个在本机的单一脚本只能添加到localhost,如果脚本是所有机器通用那无所谓添加到哪个机器)

 cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第10张图片

拉到最下面,选择我们刚刚新建的图形模板“随机数图形模板”,进行“Add”添加

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第11张图片 

然后拉到最上面,选择“Create Graphs for this Hostt”添加新图表

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第12张图片

勾选之后,右下角“Create”

 cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第13张图片

 转到图相区,几分钟之后就有图形出现了

 cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第14张图片

最下面这行,就是在图形模板里添加的标签。

 

不过由于title不支持中文,所以图行标签没有显示,现在改回来。

 cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第15张图片

再刷新一下图形,标签就出来了。

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第16张图片 

  

直接放到默认树图

从左边“Management”——》“Graph Management”,直接右上角“Add

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第17张图片 

然后选择图形模板,不要选择HOST,然后“Create

 

添加出来是没有图的,要选择数据源才行。SO,现在转过去添加数据源。

 cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第18张图片

从左边“Management”——》“Data Sources”,Host选择“None”,点击右上角“Add

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第19张图片 

选择相应的数据模板,点击右下角“Create”

 

可以看到模板文件已经生成了,直接右下角“save

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第20张图片 

从左边“Management”——》“Graph Management”,然后直接选择图形Random

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第21张图片 

选择刚刚新建的数据源,记住是“NO Host”打头,然后Save

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第22张图片 

再点进去

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第23张图片 

图形就有了。

下一步,把这图形添加到默认树

从左边“Management”——》“Graph Trees”,选择“Default Tree

 

直接选择右上角“Add

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第24张图片 

选择添加图形。

“Tree Item Type”,选择“Graph”,(Header是子目录,HOST是新主机)

Graph”选择要添加的图形模板。(这里很好认,没有HOST头的就是)

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第25张图片 

然后转到图形查看

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第26张图片 

已经有了。

 


B.snmpOID来获取数据

恩,既然都说OID了,那这种方法最核心的问题就是要取相关的OID码。OID码是snmp服务直接读取服务器数据的数据编码。Snmp服务内置了一部分OID码,如上(http://www.cnblogs.com/aspx-net/p/3554044.html)这部分OID码基本是通用的,此外还可以自己定义OID直接读取脚本输出结果,注意自己定义的OID码,不能占用snmp内置已经存在的。

 

说些题外话,网上资料很多,我一开始百试不得其解。后来发现,其实是对snmp并不了解。

恩,总的来说。得益于这篇文章:

http://wenku.baidu.com/link?url=QQYmYKElcII-2_mpN92yR4Vc9DeysSxPsCPjU3qm-U8aggYdhOwpIfgxKKZa2e397xVOmKo1NsddWStiTrjKKM6nEJsRkpJRvaEbCFQZwES

  

snmp的配置文件/etc/snmp/snmpd.conf中有一个分段,是专门介绍利用脚本自定义OID的,叫Executables/scripts。但可惜的是,这个分段很长,而且是全注释状态,很容易让人忽略掉。而一般情况下,没有注释的是以pass开头的,类似这样的:

pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat

再看一下上面被注释掉的例子:

exec .1.3.6.1.4.1.2021.50 shelltest /bin/sh /tmp/shtest

可以很明显的发现,下面的OID友比上面少了一位,即是说,按没注释的那条来配置是怎么都不会成功的。


废话,不多说了。开始吧。

 

被监控机:(如果只有一台机,也可以自己监控自己)

把之前的那个脚本,在被监控机再写一次。

# vim only.sh

 

#!/bin/bash

echo $RANDOM

 

改权限:

# chmod 755 only.sh

放到一个文件夹

# cp only.sh /temp.sh/

 

然后编辑 /etc/snmp/snmpd.conf

添加如下的条目

exec .1.3.6.1.4.1.200.11 test /temp.sh/only.sh

 

说明一下:

exec 是执行命令

.1.3.6.1.4.1.200.11  这一段是自定义的OID码,但记住是八位。

test 这个其实只是说明标签或者说名称之类的,总之就是让你知道脚本是干什么的,随意写。

/temp.sh/only.sh  脚本路径

 

重启snmp服务

#service snmpd restart

 

OID码可以自己随意写,但在这之前需要测试一下是否已被占用

 例:

 #snmpwalk -v 2c -c public 127.0.01  OID

 

如果如下所示表示可以使用

# snmpwalk -v 2c -c public 127.0.0.1 .1.3.6.1.4.1.200.100

SNMPv2-SMI::enterprises.200.100 = No Such Object available on this agent at this OID

 

如果如下所示表示已经被占用了

# snmpwalk -v 2c -c public 127.0.0.1 .1.3.6.1.4.1.200.11

SNMPv2-SMI::enterprises.200.11.1.1 = INTEGER: 1

SNMPv2-SMI::enterprises.200.11.2.1 = STRING: "test"

SNMPv2-SMI::enterprises.200.11.3.1 = STRING: "/temp.sh/only.sh"

SNMPv2-SMI::enterprises.200.11.100.1 = INTEGER: 0

SNMPv2-SMI::enterprises.200.11.101.1 = STRING: "18985"

SNMPv2-SMI::enterprises.200.11.102.1 = INTEGER: 0

SNMPv2-SMI::enterprises.200.11.103.1 = ""

(被监控机的其它设置请查看 添加监控机那篇)


之后可以转到监控机上,测试OID码是否能够应用。

# snmpwalk -c public -v 2c 被监控机IP  .1.3.6.1.4.1.200.11

SNMPv2-SMI::enterprises.200.11.1.1 = INTEGER: 1

SNMPv2-SMI::enterprises.200.11.2.1 = STRING: "test"

SNMPv2-SMI::enterprises.200.11.3.1 = STRING: "/temp.sh/only.sh"

SNMPv2-SMI::enterprises.200.11.100.1 = INTEGER: 0

SNMPv2-SMI::enterprises.200.11.101.1 = STRING: "24147"

SNMPv2-SMI::enterprises.200.11.102.1 = INTEGER: 0

SNMPv2-SMI::enterprises.200.11.103.1 = ""

 

OK,可以了。现在从这组数据中找到我们所需要的数据:

SNMPv2-SMI::enterprises.200.11.101.1 = STRING: "24147"

很明显,就是这一行。

 

OK,那么我们实际所需的OID码就是:

.1.3.6.1.4.1.200.11.101.1

 

恩。自己比对一下有什么不同

这是最初的:.1.3.6.1.4.1.200.11

这是结果行:                  .200.11.101.1

这是最后结果:.1.3.6.1.4.1.200.11.101.1

很明显了吧。

 

 

现在,我们可以操作cacti了。

这里说明一下,脚本进行数据采集的话,第一步是要添加数据输入方式,但用OID方式数据输入方式其实已被OID码代替,所以可以直接添加数据模板。

从左边选择“Templates”——》“Data Templates”,点击右上角“Add”

 cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第27张图片

恩,数据模板的添加与脚本方式不同,“Data Inpu Method”选择“Get SNMP Data”,右下角“Create”

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第28张图片 

现在OID属性出来了,把上面的OID填进去吧,右下角“Save

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第29张图片 

OK.下一步添加图形模板

左侧点击“Templates”——》“Graph Templates”,右上角“Add

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第30张图片 

恩,如下,可以“Create”

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第31张图片 

好了。点右上角“Add”开始添加图形项目:数据源和数据统计

 

添加数据源:

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第32张图片 

恩,数据源已经添加,再次点击右上角“Add”开始添加数据统计

 

恩,这是第一个统计数据,平均数。

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第33张图片 

点击“Add”,按上面的方法依次添加“MAXMINLAST

 

最后结果

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第34张图片 

好了。记得点击图形模板右下角的“Save”直接保存。

 

恩,最后一步,添加到主机直接监控。

点击左边“Management”——》“Devices”,选择目标主机

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第35张图片 

拉到“Associated Graph Templates”,选择要添加的图形模板,“Add

 

拉到最上方,点击“Create Graphs for this Host”开始添加图形

 cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第36张图片

 在要添加的图形后打勾,

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第37张图片 

然后拉到最下方,“create”。

OK,可以去graphs查看图形了。

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第38张图片 

如果没图,别忘记在监控机打一下命令

#/usr/bin/php /var/www/html/cacti/poller.php --force

cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作_第39张图片 

过一会儿。。

 


你可能感兴趣的:(cacti安装记录 第四阶段cacti的基本使用(6)自定义模板的制作)