Chinaunix首页 | 论坛 | 博客
  • 博客访问: 471559
  • 博文数量: 145
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1139
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-14 16:47
个人简介

路漫漫其修远兮,吾将上下而求索

文章分类

全部博文(145)

文章存档

2016年(10)

2015年(15)

2014年(120)

我的朋友

分类: 系统运维

2014-12-11 09:57:50

今天突然要对服务器进行TCP连接数和磁盘IO的监控!很久没弄这个了,开始百度吧………………
找到一篇还不错的,可以成功!
搜到cacti添加监控TCP连接的模板,两个文件,一个xml模板文件,一个提供数据的bash脚本,依然通过snmp系列中的snmpnetstat来获得想要的数据,这两个文件附件中可以下载
cacti官网英文论坛里也有相关介绍
 
1、修改xml文件
 
下载附件后,解压出来,三个文件,一个cacti_graph_template_tcp_connections.xml文件,一个get_tcp_connections bash文件,还一张给你YY的图片
 
写道


点击(此处)折叠或打开

  1. 用记事本打开xml文件,ctrl + F 查找字符串“input_string”,你会看到一行类似/bin/bash /var/www/htdocs/cacti/scripts/get_tcp_connections
  2. 的代码,顾名思义,这个就是执行提供数据的bash脚本了,文件目录神马的你都知道了
  3. 根据实际情况修改一下
2、修改get_tcp_connections
 
这个文件最好是移到cacti/scripts目录下去,然后执行


点击(此处)折叠或打开

  1. chmod +x get_tcp_connections

 给它加上可执行权限
 
打开文件,你会看到如下内容

点击(此处)折叠或打开

  1. #/bin/bash
  2.   
  3. # get number of tcp connection
  4. # $1 = hostname
  5. # $2 = snmp community
  6. # lots of ways to do this with more style... ;)
  7. # jbrooks@oddelement.com
  8.   
  9. CACTIDIR=/var/www/htdocs/cacti/scripts
  10. TMPDIR=/var/log/cacti_tcp_cache
  11.   
  12. cd $CACTIDIR
  13.   
  14.   
  15. snmpnetstat -v 2c -c $2 -Can -Cp tcp $1 > $TMPDIR/$1
  16.   
  17. ESTABLISHED=`grep ESTABLISHED $TMPDIR/$1 |wc -l`
  18. LISTENING=`grep LISTEN $TMPDIR/$1 |wc -l`
  19. TIME_WAIT=`grep TIMEWAIT $TMPDIR/$1 |wc -l`
  20. TIME_CLOSE=`grep TIMECLOSE $TMPDIR/$1 |wc -l`
  21. FIN1=`grep FINWAIT1 $TMPDIR/$1 |wc -l`
  22. FIN2=`grep FINWAIT2 $TMPDIR/$1 |wc -l`
  23. SYNSENT=`grep SYNSENT $TMPDIR/$1 |wc -l`
  24. SYNRECV=`grep SYNRECV $TMPDIR/$1 |wc -l`
  25.   
  26. echo -n established:${ESTABLISHED} listen:${LISTENING} time_wait:${TIME_WAIT} time_close:
  27. ${TIME_CLOSE} syn_sent:${SYNSENT} fin_wait1:${FIN1} fin_wait2:${FIN2} syn_recv:${SYNRECV}
  28.   
  29. # uncomment for debugging:
  30. # echo $1: established:$ESTABLISHED listen:$LISTENING time_wait:$TIME_WAIT time_close:
  31. $TIME_CLOSE syn_sent:$SYN fin_wait1:$FIN1 fin_wait2:$FIN2 >> $TMPDIR/tcp.log
  32.   
  33. # may want to comment this for debugging too
  34. rm $TMPDIR/$1

 其中CACTIDIR请根据实际情况修改,TMPDIR请根据实际情况创建一个,一定要创建,否则报错no such dictory or file
 
脚本蛮简单的,抓取数据是通过


点击(此处)折叠或打开

  1. snmpnetstat -v 2c -c $2 -Can -Cp tcp $1 > $TMPDIR/$1

这个来实现的,你可以先在命令行手动执行一下,看看能不能获取到数据,其中$2是commity,默认是public,$1是要抓取数据的ip地址,本机就写localhost。
执行完后能够抓取到数据就说明没问题了
 
3、导入模板
登录cacti的web界面,选择“导入模板”,将那个xml文件导入进去,保存后就会看到对应的数据模板和图像模板了,随便找台服务器添加一个tcp connection图像,一般是没什么问题了,有问题的话看web界面里的cacti日志就知道了


模板附件下载:
 
 
 
tcp-connections.zip
 
顺便说一下,我的cacti的版本是0.8.8a



阅读(1640) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~