设为首页 收藏本站
查看: 6401|回复: 1

[经验分享] cacti自定义数据收集脚本,创建Data Templates和Graph Templates

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-3-10 08:46:17 | 显示全部楼层 |阅读模式
cacti使用思路:

cacti自定义监控脚本进行监控的具体流程如下:


  • 自定义数据收集方法,在Collection Methods下有2项,Data Queries(xml方法)和Data Input Methods (scripts, command方法)
  • 数据收集了如何保存呢?数据模板Data Templates。数据模板定义了:怎么通过数据收集方法获取数据,获取的数据如何保存,以及保存在什么地方。(也就是调用rrdtool create , rrdtool update)
  • 把数据模板应用到特定的device上,就会创建数据源
  • 有了数据源,那么就可以绘图Graph了。图形模板或者自定义,应用到相应的数据源上。(rrdtool graph)

实例说明:创建一个监控tcp 连接ESTABLISHED,SYN,TIMEWAIT 数目的绘图

一、创建采集数据脚本

    poller.php 是cacti的轮询器,用来收集数据,所以创建crond任务让他每5分钟执行一次。cacti/scripts 目录下放的是cacti自定义Data Input Methods的脚本文件。
    我们在cacti/scripts 下创建一个 tcp_conns.sh 的脚本,记得chmod +x ,内容如下:
1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
#
# $1:hostname or IP
# $2:snmp community
SNMPNETSTAT=/usr/bin/snmpnetstat
TEMPFILE=`mktemp /tmp/$1_tcp_conns.XXXXXX`
$SNMPNETSTAT -v 2c -c $2 -Can -Cp tcp $1 > $TEMPFILE
ESTABLISHED=`grep -i "established" $TEMPFILE | wc -l`
TIMEWAIT=`grep -i "TIMEWAIT" $TEMPFILE | wc -l`
SYNRECEIVED=`grep -i "SYNRECEIVED" $TEMPFILE | wc -l`
echo -n "ESTABLISHED_NUM:$ESTABLISHED TIMEWAIT:$TIMEWAIT SYN_received:$SYNRECEIVED"




二、在cacti上添加数据方法

1、创建自定义方法。
    Collection Methods ---> Data Input Methods ---> 右上角add,填入数据后点击create。
wKiom1T9MqeQGcS0AAGwKBPGOgs128.jpg
    Name项:填入自己定义的名字
    Input Type:选择用什么方式获取数据,因为我们是script方式,所以选择 Script/command
    Input String:脚本怎样运行,后面的2个参数,  是需要传递给脚本的变量,接着下面可以定义传递的数据。

2、定义需要传递给自定义脚本的变量以及自定义方法所产生的数据
wKiom1T9NC2QXZ-RAAFHLpRb8eE871.jpg
a、添加传递给自定义脚本的变量。
    点击Input Fields 右边的Add开始添加,点击create完成,因为我们有2个需要传递的变量hostname和snmp community ,所以完成一个后还需要再add一个,第二个过程略。
wKioL1T9Ne2RPBikAAKTwkNoiSY054.jpg
  • Field[Input] 第一项:就是刚刚自定义的2个需要获取数据的变量的第一个
  • Friendly Name:便于识别的名字,任意填写。
  • Special Type Code:具体说明如下:
        我们看到,cacti已经定义了许多Speial Type Code。它们类似于宏,我们能够继承它并能够取得相应device相关的信息。我们知道图形和数据收集方法都必须关联到特定的device上,在定义device时,就会指定其hostname等相关信息。如果我们没有提供输入的参数,就让它自动去继承device的那些宏。如果使用hostname,那么此脚本应用到哪个设备上,就会获得那个设备的hostname。如果snmp_community,那么就会自动引用我们在添加设备时,指定的那个community。


        比如,我在定义device时,填入的信息如下,那么,此时的Special Type Code: hostname==127.0.0.1, snmp_community==public
wKioL1QB7zfxIrPbAAMfgwfxB4c401.jpg
b、定义Output Fields,脚本输出的数据。
    我们的脚本tcp_conns.sh 正常运行会输出3个数据,注意格式,中间只有一个空格:
    ESTABLISHED_NUM:2 TIMEWAIT:0 SYN_received:0
    此时需要一个一个根据输出的名字来定义,如下图:

wKioL1T9OLrTJZTBAAFhphTc3I4624.jpg     Field[Output]内填入脚本产生的数据名

c、定义好传递的数据与产生的数据如下:
wKiom1T9OBHAkPO5AAOoWKQyIi8369.jpg PS:这样就完成了思路里的第一步。

二、定义数据模板,Data Templates

1、创建数据模版,Data Templates  ——>右上角 Add开始创建模版,模版完成点Save
wKiom1T9O3bxKMR5AAYtBBPj-rM535.jpg 创建好了如下图,选择Output Field时,记得Internal Data Source Name对应上:
wKiom1T9O6qR_9HqAALfs_tQRJk368.jpg

三、把数据模板应用到指定device,应用后会自动创建rrd文件。

PS:创建device的过程,略。

1、   Data Sources ———>> Add ———— >> Create
wKioL1T9Pf7Qf4zbAAEhRZx_byE543.jpg selected Data Template :选择刚刚定义的数据模板
host:选择要应用到那台主机。

2、    可以点开创建好的DS进行修改,如下图:
wKiom1T9PcvDXs0zAAPe9MVD3DA988.jpg

四、添加Graph Templates 图形模版

1、创建图形模版,Graph Templates ——>> add ————>> Name ,title 自己定义,点击create后

wKioL1T9QJ-DR69wAAK-c78AHgQ718.jpg
2、创建绘图的Item
a、点击Graph Template Items 右侧的Add,添加条目:

    可以看到此时的Data Source 里面会多出我们刚刚定义的数据源,选择就可以。 wKiom1T9QSGCAMXjAARrdxy6-YA345.jpg    选择好后如下图说明:
wKiom1T9QXnCTFrmAAPd954fboo706.jpg b、把3个数据都填好后如下图。
wKiom1T9Qjfj8X5fAAM-SgR7RnU645.jpg 这样就创建好了Graph Templates

五、把图形模版关联到相关device

1、点击Graph Management  右边的Add,选择刚刚定义的Graph Template到Host 上。
wKiom1T9QwDgI9KCAAFi4_Bk0mk560.jpg
2、选择Graph Templates Data里的DS,刚刚都定义好了,如下图。
wKiom1T9Q3qQqUebAAL3gQKh4kI855.jpg
最后记得添加到Graph Trees上,终于完成了!


运维网声明 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-45135-1-1.html 上篇帖子: cacti snmp error 下篇帖子: Redhat 5.8 安装cacti 0.8.8c

尚未签到

发表于 2016-5-26 17:04:43 | 显示全部楼层
有数据吗?按照你说的方法好像不会在/tmp目录下创建$1_tcp_conns.XXXXXX文件。或者可以创建,但是文件$1_tcp_conns.XXXXXX里面没有内容。正常应该是有snmpnetstat命令执行后的内容的。求教。如有解决方法烦请发送到15060447211@139.com。万分感激

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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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