cacti监控工具之自定数据收集方法

目录php

一、引语linux

二、使用自定义数据收集方法完成设备监控web

    2.一、建立数据收集脚本sql

    2.二、定义Data Input Methodsshell

    2.三、定义Data Templatesvim

    2.四、定义Data Sourcesbash

    2.五、定义Graph Templates框架

    2.六、设置Graph Managementtcp

三、总结ide

一、引语

    在上一博文中大体介绍了cacti的数据收集方法和模板的使用,还以一个例子介绍了怎样导入一个主机模板,并让此模板应用到一个指定的Devices上。这次博文在上一次博文的基础上介绍以自定义脚本的方法收集数据、自定义数据模板、自定义数据源、自定义图形模板,最后把这些应用到一个Devices上,实现绘图。

    固然,若是在cacti的论坛上可以找到现成的模板,那固然好,直接导入到cacti就可使用,但当你的需求没有相应现成模板时,你就须要本身开发脚原本知足的业务需求,用shell脚原本获取主机的监控数据是比较常见的方法,而在shell中通常又是利用snmp的相应命令来获取远程主机的状态数据的。下边就以一个实际例子来讲明这一过程,需求是监控一远程主机上tcp链接中处于"established"状态的数量,实验环境仍是基于上一博客的环境(http://zhaochj.blog.51cto.com/368705/1669081

这里仍是简单的说一下,nod1主机部署了cacti监控系统,nod2是被监控主机,安装了snmp服务,容许nod1利用snmp的相关命令来获取到状态数据。

    首先来验证一下在nod1上是否可以获取到nod2上的状态数据,以下:

[root@nod1 cacti]# snmpnetstat -v 2c -c public -Can -Cp tcp 192.168.0.202
Active Internet (tcp) Connections (including servers)
Proto Local Address          Remote Address         (state)
tcp   *.22                   *.*                   LISTEN
tcp   *.80                   *.*                   LISTEN
tcp   *.8139                 *.*                   LISTEN
tcp   127.0.0.1.25           *.*                   LISTEN
tcp   127.0.0.1.199          *.*                   LISTEN
tcp   127.0.0.1.6010         *.*                   LISTEN
tcp   127.0.0.1.6011         *.*                   LISTEN
tcp   127.0.0.1.6012         *.*                   LISTEN
tcp   192.168.0.202.22       192.168.0.102.51522   ESTABLISHED
tcp   192.168.0.202.22       192.168.0.102.51545   ESTABLISHED
tcp   192.168.0.202.22       192.168.0.102.51546   ESTABLISHED

上边的命令执行成功了。接下来咱们就能够把snmpnetstat这个命令封装在一个shell脚本上去获取到nod2的数据,在写脚本前有一点须要说明,cacti利用脚本获取的数据的输出是有必定格式的,格式必须是“<fieldname_1>:<value_1> <fieldname_2>:<value_2> ... <fieldname_n>:<value_n>”,若是脚本收集数据的输出格式不是这样的,那cacti没法识别。这一部份的内部能够参考官方文档“http://docs.cacti.net/manual:088:3a_advanced_topics.1_data_input_methods#data_input_methods

二、使用自定义数据收集方法完成设备监控

2.一、建立数据收集脚本

接下来就编写数据收集脚本,脚本内容以下:

[root@nod1 cacti]# vim tcpcon.sh
#!/bin/bash
#
#$1: hostname or ip
#$2: snmp community
SNMPNETSTAT=/usr/bin/snmpnetstat
ESTABLISHED=`$SNMPNETSTAT -v 2c -c $2 -Can -Cp tcp $1 | grep -i 'established' | wc -l`
echo "established:$ESTABLISHED"
[root@nod1 cacti]# bash tcpcon.sh 192.168.0.202 public  #测试一下脚本是否能正常运行
established:3

把脚本复制到cacti专门存放脚本的路径:

[root@nod1 cacti]# cp tcpcon.sh /web/vhosts/cacti/scripts/
[root@nod1 cacti]# ls /web/vhosts/cacti/scripts/   #此目录就是脚本的存放目录,看看此目录下还有perl脚本,php脚本
3com_cable_modem.pl  ping.pl                    ss_host_cpu.php          unix_users.pl
diskfree.pl          query_host_cpu.php         ss_host_disk.php         weatherbug.pl
diskfree.sh          query_host_partitions.php  ss_sql.php               webhits.pl
linux_memory.pl      query_unix_partitions.pl   tcpcon.sh
loadavg_multi.pl     sql.php                    unix_processes.pl
loadavg.pl           ss_fping.php               unix_tcp_connections.pl

2.二、定义Data Input Methods

接下来打开cacti的控制台,点击“Data Input Methods”,再点击右上角的“Add”,以下图:

wKiom1WdK2HhDp9IAARbB0F5SGk844.jpg点击“Add”按键后,为Data Input Methods定义几个属性,以下图:

wKioL1WdLVKQ_RLPAAP3syIg-HE060.jpg

点击右下角的“Create”按钮,会要求设定此脚本所须要输入和输出的字段,输入字段表示脚本须要接收的参数是怎样定义的,

输出字段表示此脚本获取到数据后输出的数据是什么,便是“fieldname:value”这样的格式的输出数据,以下图:

wKioL1WdLZXhC7zcAATEKvkT5_E245.jpg点击上图中“Input Fields”中的“Add”,为输入字段设置数值,以下图:

wKiom1WdK-SQc_qBAAUzYgOlB-s479.jpg点击上图中右下角的“Create”就完成第一个参数的引用配置,点击“Create”后界面返回到以下界面:

wKioL1WdLdOi6EE5AATeOPSogsw368.jpg再点击“Add”按钮,再去增长“<community>”这个参数的一些定义,以下图:

wKiom1WdLCPCW8ATAASf0gSLvsQ446.jpg再点击一下右下角的“Create”,就完成了脚本中两个参数的一些设置,以下图:

wKioL1WdLhDgcyXDAAU6xkELXpA282.jpg“Input Fields”设置完成后,还得设置脚本的输出的一些设置,点击上图中的“Add”后,以下图设置:

wKiom1WdLFzDZzUtAANiz05rFI4642.jpg

点击右下角的“Create”后,那数据输入方法算是定义完成,最终效果以下图:

wKiom1WdLKTjVUY4AAVosQoysr4972.jpg固然不要忘记点击右下角的“Save”按钮。

2.三、定义Data Templates

   数据输入方法设置好后,接下来须要设置的就是Data Templates,数据模板主要是定义cacti使用rrdtool工具来处理脚本收集数据时所要设置的一些参数,以下图:wKiom1WdLM2AaKxgAAleXONljOo405.jpg点击右下角的“Create”后,出现下图:

wKioL1WdLruzSlGtAAbtHa1qAxI103.jpg点击右下角的“Save”便可完成数据模板的建立。

2.四、定义Data Sources

    数据源的定义就是把数据模板与Devices关联起来的操做,而且指定脚本把数据收集后再通过数据模板中定义的各类参数对数据作聚合后的数据的保存位置。点击控制台的“Data Sources”,再点击右上角的“Add”后,出现下图:wKiom1WdLQ6BqFI_AALZcyroyCw685.jpg再点击右下角的“Create”后,出现下图:

wKiom1WdLTyzMEDFAASReXrQM_s934.jpg再点击“Save”保存便可。

2.五、定义Graph Templates

    数据源是有了,cacti已经知道该用一个脚本去收集数据,并经过相应的聚合函数处理后放到一个指定的rrd文件中,但还不知道用这些数据怎样绘图,因此接下定义一个图形模板。在控制台点击“Graph Tempaltes”,再点击右上角的“Add”后,以下图:wKioL1WdLyniNYZpAAP-CGsAGso695.jpg其余的都保持默认便可,但只是最后一项须要设备,以下图:

wKiom1WdLXWCh6B4AANcMexswp0789.jpg最后点击“Create”后,图形的框架结构已造成了,能够展开想象,在如今为止,咱们就建立了一张高为120,宽为500的图片,但图片中所要绘制图形的具体属性尚未定义,好比所须要绘制的是线条图,仍是区域图,线条的走势是表明每300的平均值仍是最大值等,这些都尚未定义,因此把图形框架建立好后,还得点击右上角的“Add”去定义,以下图:

wKioL1WdL2SAWb2EAAQ3t4pFWk8463.jpgwKiom1WdLaqyuY47AAYnaMyZ9l4887.jpg再点击“Create”后就把所要绘制哪一种图形的相应属性也定义好了,点击"Create"后返回以下页面:

wKioL1WdL5WAuXszAASS3ZRSzns870.jpg最后点击页面的最正文右下角的“Save”保存便可。最后的工做就是把图形模板运用到Devices上。

2.六、设置Graph Management

    Graph Management的设置就是具体把咱们定义的图形模板运用到具体的设备上。在控制台点击“Graph Management”,再点击右上角的“Add”后,以下图:wKiom1WdLeHyt2-TAAMnRXInwnE834.jpg点击“Create”后,以下图:

wKioL1WdL9Kzzf5qAATl2Q8YuMo657.jpg再点击“Save”键保存便可。

    如今就能够去看一下nod2这设备上所画的图中是否有咱们本身定义的,点击主页面上的“graphs”,找到咱们监控的设备就能够查看相应的图片,以下图:

wKiom1WdLiCQU1sSAAFnKBci_wo089.jpg如今只是尚未值而已,等一段时间后,就会在图上产生一条红色线条。若是在图形下边要显示出最大值、当前值等信息,就像相似下边图形同样:

wKioL1WdMAnBMAEaAAFZ2puBOSI194.jpg

咱们只须要回到图形模板,再点击右上角的“Add”,以下图:

wKiom1WdLlTxK2-rAASlVrZg6gc970.jpg再按照下边的设置:

wKioL1WdMEDz48FhAAWY8iWOoYc531.jpg若是要显示最大值,也像上边操做同样增长便可,最后增长好后以下图:

wKiom1WdLo3B7zYiAAO7BQgY4x8947.jpg最后不要忘记点击右下角的“Save”,保存咱们作的修改,接下来再去查看一相图形,以下图:

wKioL1WdMHmSEj0VAAFlhjRibN0956.jpg

三、总结    

  经过此次自定义数据收集方法来监控tcp链接中处理established状态的数量后,你会对cacti有不同的认识,并且我还建议你去参考系统自带图形模板,看看别人是怎样定义的,特别是一个图上绘制多种线条时,只要你突破了此关,那cacti会成为你工做中的好伙伴。

相关文章
相关标签/搜索