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

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

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

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

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

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

B.用snmp的OID,这个是基于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的录入

大概说明一下,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”

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

下面,生成数据模板。

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

数据源添加页面:

“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是依实际为主,不设图形最大值。

Save完之后,可以看到

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

生成图形模板。

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

这里分成两段设置

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

“Template”Name,是图形模板的名称。

“Craph Template”Title,是显示在图形模板上的标题。

设置好之后直接“save”

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

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

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

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

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

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

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

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

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

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

“Create”之后,是这样的。

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

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

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

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

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

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

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

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

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

勾选之后,右下角“Create”

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

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

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

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

直接放到默认树图

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

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

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

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

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

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

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

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

再点进去

图形就有了。

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

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

直接选择右上角“Add”

选择添加图形。

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

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

然后转到图形查看

已经有了。

B.用snmp的OID来获取数据

恩,既然都说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”

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

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

OK.下一步添加图形模板

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

恩,如下,可以“Create”

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

添加数据源:

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

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

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

最后结果

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

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

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

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

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

在要添加的图形后打勾,

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

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

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

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

过一会儿。。

时间: 2024-11-05 14:03:34

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

cacti安装记录 第四阶段cacti的基本使用(5)插件模板的应用

添加主机的时候可以看出,绘图是要通过图形模板和数据模板的.但是Cacti自身所带的模板并不是很多,为了适应需求必然要添加自定义的模板.一般情况下,自定义模板由两个文件组成*.php和*.xml前者要放到cacti的scripts文件夹下,后者要在cacti中导入. 基本流程是先在被监控机上做授权,然后再在监控机上导入模块进行监控. 监控Apache 先在被监控机上查看 [[email protected] ~]# /usr/local/apache/bin/httpd -M status_mod

cacti安装记录 第四阶段cacti的基本使用(3)setting and thresholds (邮件和阀值报警)

setting和thresholds两个插件是Cacti比较重要的两个插件.Setting主要是负责邮件发送,thresholds主要给监控的数值设定阀值,过了阀值就发送报警邮件.因为两个插件功能有关联性--setting没设置好thresholds的报警邮件功能会有问题.所以放在一起进行说明. setting的功能比较简单,基本就是邮件的发送的设置. thresholds分为阀值设置和邮件报警.阀值设置可以设置警告和报警两个层次.阀值设定有两种方式 .一种是针对特定数据单独设置:一种是通过模板

(四)Cacti安装配置

一.Cacti 监控介绍 1.Cacti简介 Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具. 简单的说Cacti 就是一个PHP 程序.它通过使用SNMP 协议获取远端网络设备和相关信息,(其实就是使用Net-SNMP 软件包的snmpget 和snmpwalk 命令获取)并通过RRDTOOL 工具绘图,通过PHP 程序展现出来.我们使用它可以展现出监控对象一段时间内的状态或者性能趋势图. 2.Cacti 架构概述 通过上图我们可以发现Cacti

企业级监控工具cacti安装配置全过程

基础信息: OS:RHEL 5.8 SOFT: apr-util-1.4.1.tar.bz2  cmake-2.8.6.tar.gz  libmcrypt-2.5.8.tar.gz  php-5.4.36.tar.bz2 rrdtool-1.4.7.tar.tar    apr-1.4.6.tar.bz2     cacti-0.8.8c.tar.gz       httpd-2.4.2.tar.bz2 mysql-5.5.22.tar.gz    php-5.4.5.tar.bz2首先编译安装

性能监控工具——Cacti安装文档

一.Cacti安装说明 1.安装说明 一般性的安装说明,详细的操作系统具体的安装说明可用于Linux. 2.服务器安装要求 RRDTool 1.2.x或更高版本 MySQL 4.1.x或5.x更高版本 PHP 4.3.6,5.x或更高版本 Apache 2.2或者更高版本 Perl 5.10.1 或者更高版本 二.安装在Unix/Linux下 1.请确认安装包是根据你的操作系统的需求 验证httpd和mysqld是在系统启动时启动,确保yum源是原始的源. 2.需要包基于yum的操作系统 php

Redhat cacti安装配置详细过程

最近安装了一套cacti监控系统,现在做个笔记 所用系统为REDHAT6.2 X86_64 安装过程全部使用yum源RPM包安装 首先同步时间,rrdtool是以时间为驱动来记录信息点的,时间不对会导致不出图 date -s "2015-11-12 09:57:55" 挂载光盘 [[email protected] ~]# mkdir /mnt/cdrom [[email protected] ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom 用系统

Cacti安装详细步骤

一.cacti概述 1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户.因此,snmp和rrdtool是cacti的关键.Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成. 2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名.主机ip.snmp团体名.端口号.模板信息等变量. 3. snmp抓到数据不是存储在mysql中,而

cacti安装配置及邮件告警

一.简介 ■1.特性 ___________________________________________________________ Cacti是一个非常好的网络监控工具,利用php语言实现其功能,它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构.host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善.界面友好, ■2.工作原理 ________________________________________________

Cacti+Nagios监控系统(五):Cacti安装插件

Cacti插件说明及下载地址:http://docs.cacti.net/plugins 一.Settings插件 cd /root/download wget http://docs.cacti.net/_media/plugin:settings-v0.7-1.tgz mv plugin:settings-v0.7-1.tgz settings-v0.7-1.tgz tar zxvf settings-v0.7-1.tgz -C /var/www/html/cacti/plugins/ 二.