注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

涅槃

文档收藏

 
 
 

日志

 
 
 
 

【转载】cacti 监控tcp连接数,ipv6问题解决  

2013-05-22 15:45:02|  分类: 监控_cacti |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

原文为http://xok.la/2010/04/cacti_netstat_tcp.html,是通过snmpnetstat去拿回来的数据再做处理的,但问题就来了,snmpnetstat 拿到的数据只有ipv4的连接,ipv6的连接全部都没有拿过来。差别还很大。

google了好久,也查了不少资料,但还是没有解决,最后只好去查看net-snmp的文档,http://net-snmp.sourceforge.net/docs/查看oid,最后查看可以使用.1.3.6.1.2.1.6.19这一个oid获取到数据,再对数据做统计修改脚本,基本实现了tcp的监控问题。

# ARGV[0] = <hostname>          required
# ARGV[1] = <snmp version>      required
# ARGV[2] = <snmp community>    required
# ARGV[3] = <snmp port>         required
# ARGV[4] = <snmp timeout>      required
# --------------------------------------------------
$in_hostname    = $ARGV[0] if defined $ARGV[0];
$in_version     = $ARGV[1] if defined $ARGV[1];
$in_community   = $ARGV[2] if defined $ARGV[2];
$in_port        = $ARGV[3] if defined $ARGV[3];
$in_timeout     = $ARGV[4] if defined $ARGV[4];

if ($in_version eq "2")
{
        $in_version = "2c";
}

#my $_cmd        = "snmpnetstat -v $in_version  -c $in_community -t $in_timeout -Can -Cp tcp $in_hostname:$in_port";
my $_cmd        = "snmpwalk -v $in_version  -c $in_community $in_hostname .1.3.6.1.2.1.6.19";

#print $_cmd;
# usage notes
if (
        ( ! defined $in_hostname ) ||
        ( ! defined $in_version ) ||
        ( ! defined $in_community ) ||
        ( ! defined $in_port ) ||
        ( ! defined $in_timeout )
        ) {
        print   "usage:\n\n
                $0 <host> <snmp version> < snmp community> <snmp port> <snmp timeout>\n\n";
        exit;
}

my @_output = `$_cmd`;

my $_estab      = 0;
my $_listen     = 0;
my $_timewait   = 0;
my $_timeclose  = 0;
my $_finwait1   = 0;
my $_finwait2   = 0;
my $_synsent    = 0;
my $_synrecv    = 0;
my $_closewait  = 0;

#print "$_output\n";

foreach ( @_output ) {
        #print $_;
        $_estab++       if /established/;
        $_listen++      if /listen/;
        $_timewait++    if /timewait/;
        $_timeclose++   if /timeclose/;
        $_finwait1++    if /finwait1/;
        $_finwait2++    if /finwait2/;
        $_synsent++     if /synsent/;
        $_synrecv++     if /synsent/;
        $_closewait++   if /closewait/;
}

#
print "established:$_estab listen:$_listen timewait:$_timewait timeclose:$_timeclose finwait1:$_finwait1 finwait2:$_finwait2 synsent:$_synsent synrecv:$_synrecv closewait:$_closewait";
print "\n";

                                                                                            
  评论这张
 
阅读(243)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018