设为首页 收藏本站
查看: 4539|回复: 0

[经验分享] cacti监控工具之自定数据收集方法

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-9 08:31:02 | 显示全部楼层 |阅读模式
目录
1、引语
2、使用自定义数据收集方法完成设备监控
    2.1、创建数据收集脚本
    2.2、定义Data Input Methods
    2.3、定义Data Templates
    2.4、定义Data Sources
    2.5、定义Graph Templates
    2.6、设置Graph Management
3、总结
1、引语

    在上一博文中大致介绍了cacti的数据收集方法和模板的使用,还以一个例子介绍了怎样导入一个主机模板,并让此模板应用到一个指定的Devices上。此次博文在上一次博文的基础上介绍以自定义脚本的方法收集数据、自定义数据模板、自定义数据源、自定义图形模板,最后把这些应用到一个Devices上,实现绘图。
    当然,如果在cacti的论坛上能够找到现成的模板,那当然好,直接导入到cacti就可以使用,但当你的需求没有相应现成模板时,你就需要自己开发脚本来满足的业务需求,用shell脚本来获取主机的监控数据是比较常见的方法,而在shell中一般又是利用snmp的相应命令来获取远程主机的状态数据的。下边就以一个实际例子来说明这一过程,需求是监控一远程主机上tcp连接中处于"established"状态的数量,实验环境还是基于上一博客的环境(http://www.iyunv.com/thread-81793-1-1.html
这里还是简单的说一下,nod1主机部署了cacti监控系统,nod2是被监控主机,安装了snmp服务,允许nod1利用snmp的相关命令来获取到状态数据。
    首先来验证一下在nod1上是否能够获取到nod2上的状态数据,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[iyunv@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 ... #data_input_methods

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

2.1、创建数据收集脚本
接下来就编写数据收集脚本,脚本内容如下:
1
2
3
4
5
6
7
8
9
10
[iyunv@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"
[iyunv@nod1 cacti]# bash tcpcon.sh 192.168.0.202 public  #测试一下脚本是否能正常运行
established:3



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

1
2
3
4
5
6
7
8
[iyunv@nod1 cacti]# cp tcpcon.sh /web/vhosts/cacti/scripts/
[iyunv@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.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.3、定义Data Templates
   数据输入方法设置好后,接下来需要设置的就是Data Templates,数据模板主要是定义cacti使用rrdtool工具来处理脚本收集数据时所要设置的一些参数,如下图: wKiom1WdLM2AaKxgAAleXONljOo405.jpg 点击右下角的“Create”后,出现下图:
wKioL1WdLruzSlGtAAbtHa1qAxI103.jpg 点击右下角的“Save”即可完成数据模板的创建。
2.4、定义Data Sources

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

    数据源是有了,cacti已经知道该用一个脚本去收集数据,并通过相应的聚合函数处理后放到一个指定的rrd文件中,但还不知道用这些数据怎样绘图,所以接下定义一个图形模板。在控制台点击“Graph Tempaltes”,再点击右上角的“Add”后,如下图: wKioL1WdLyniNYZpAAP-CGsAGso695.jpg 其他的都保持默认即可,但只是最后一项需要设备,如下图:
wKiom1WdLXWCh6B4AANcMexswp0789.jpg 最后点击“Create”后,图形的框架结构已形成了,可以展开想象,在现在为止,我们就创建了一张高为120,宽为500的图片,但图片中所要绘制图形的具体属性还没有定义,比如所需要绘制的是线条图,还是区域图,线条的走势是代表每300的平均值还是最大值等,这些都还没有定义,所以把图形框架创建好后,还得点击右上角的“Add”去定义,如下图:
wKioL1WdL2SAWb2EAAQ3t4pFWk8463.jpg wKiom1WdLaqyuY47AAYnaMyZ9l4887.jpg 再点击“Create”后就把所要绘制哪种图形的相应属性也定义好了,点击"Create"后返回如下页面:
wKioL1WdL5WAuXszAASS3ZRSzns870.jpg 最后点击页面的最正文右下角的“Save”保存即可。最后的工作就是把图形模板运用到Devices上。
2.6、设置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
3、总结   
  通过这次自定义数据收集方法来监控tcp连接中处理established状态的数量后,你会对cacti有不一样的认识,而且我还建议你去参考系统自带图形模板,看看别人是怎样定义的,特别是一个图上绘制多种线条时,只要你突破了此关,那cacti会成为你工作中的好伙伴。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-84541-1-1.html 上篇帖子: Cacti常见插件的安装和使用 下篇帖子: cati安装 数据源 监控 开发 主机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表