免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4446 | 回复: 14
打印 上一主题 下一主题

关于cacti一个脚本的问题(已解决) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-12 15:11 |只看该作者 |倒序浏览
最近开始使用cacti做为流量监控用,得到了不少高手的帮助,但目前碰到一个问题,很奇怪,希望论坛里的朋友帮我看看是什么问题.

cacti版本为0.86j中文汉化版,系统是linux红帽子.

在cacti论坛里找到TCP Connection Status脚本,http://forums.cacti.net/about12787.html

在cacti用户权限下运行:

[cacti@localhost bin]$ perl /usr/local/apache/htdocs/cacti/scripts/lvm_netstat_tcp.pl 10.1.4.3 2 'public' 161 500
established:236 listen:0 timewait:695 timeclose:0 finwait1:1 finwait2:56 synsent:0 synrecv:0 closewait:0

显示是可以得到数据信息的.

但在cacti日志上却得不到任何数据.

12/12/2007 03:05:04 PM - CACTID: Poller[0] Host[23] DS[442] SCRIPT: perl /usr/local/apache/htdocs/cacti/scripts/lvm_netstat_tcp.pl 10.1.4.3 2 'public' 161 500, output: established:0 listen:0 timewait:0 timeclose:0 finwait1:0 finwait2:0 synsent:0 synrecv:0 closewait:0


所以得到的图形为如图所示,说明数据是可以写入rrd,但为何用日志上得不到任何数据呢?

请cacti高手帮帮忙,谢谢~~

[ 本帖最后由 恍若如梦 于 2007-12-19 14:54 编辑 ]

未命名.jpg (50.1 KB, 下载次数: 22)

未命名.jpg

论坛徽章:
0
2 [报告]
发表于 2007-12-12 17:06 |只看该作者
请问你的中文是真么实现的,cacti默认是英文的图?呵呵路过~~

论坛徽章:
0
3 [报告]
发表于 2007-12-13 07:29 |只看该作者
rrdtool在1.25之后就支持中文了,网上的文章也挺多,找找就行~

论坛徽章:
0
4 [报告]
发表于 2007-12-14 16:14 |只看该作者
同问该问题,关注中!!!希望高手来解答原因!

论坛徽章:
0
5 [报告]
发表于 2007-12-14 18:22 |只看该作者
不知道你用的是net-snmp几的版本?

论坛徽章:
0
6 [报告]
发表于 2007-12-18 10:26 |只看该作者
问题同上,望解决

论坛徽章:
0
7 [报告]
发表于 2007-12-18 11:16 |只看该作者
命令行执行没有问题
在cron里执行有问题就很有可能是环境变量的问题
会不会是要吧perl改成/usr/bin/perl呀

论坛徽章:
0
8 [报告]
发表于 2007-12-19 14:54 |只看该作者
已解决,foole说得没错,和变量有关系.加入后可以了~

论坛徽章:
0
9 [报告]
发表于 2008-02-27 11:04 |只看该作者
请教一下,我在系统内运行该脚本提示snmp版本有问题,请问需要对该脚本做过什么相应的修改吗?
万分感谢
已经用了他修改2c问题后的脚本了,但还是有问题,如下:
  1. #!/usr/bin/perl -w

  2. # --------------------------------------------------
  3. # ARGV[0] = <hostname>                 required
  4. # ARGV[1] = <snmp version>         required
  5. # ARGV[2] = <snmp community>         required
  6. # ARGV[3] = <snmp port>         required
  7. # ARGV[4] = <snmp timeout>         required
  8. # --------------------------------------------------
  9. $in_hostname         = $ARGV[0] if defined $ARGV[0];
  10. $in_version         = $ARGV[1] if defined $ARGV[1];
  11. $in_community         = $ARGV[2] if defined $ARGV[2];
  12. $in_port         = $ARGV[3] if defined $ARGV[3];
  13. $in_timeout         = $ARGV[4] if defined $ARGV[4];

  14. my $_cmd        = "snmpnetstat -v $in_version  -c $in_community -t $in_timeout -n -P tcp $in_hostname:$in_port";

  15. # usage notes
  16. if (
  17.         ( ! defined $in_hostname ) ||
  18.         ( ! defined $in_version ) ||
  19.         ( ! defined $in_community ) ||
  20.         ( ! defined $in_port ) ||
  21.         ( ! defined $in_timeout )
  22.         ) {
  23.         print         "usage:\n\n
  24.                 $0 <host> <snmp version> < snmp community> <snmp port> <snmp timeout>\n\n";
  25.         exit;
  26. }

  27. if ($in_version == 2)
  28. {
  29.         $in_version = "2c";
  30. }

  31. my @_output = `$_cmd`;

  32. my $_estab        = 0;
  33. my $_listen        = 0;
  34. my $_timewait        = 0;
  35. my $_timeclose        = 0;
  36. my $_finwait1        = 0;
  37. my $_finwait2        = 0;
  38. my $_synsent        = 0;
  39. my $_synrecv        = 0;
  40. my $_closewait         = 0;

  41. #print "$_output\n";

  42. foreach ( @_output ) {
  43.         #print $_;
  44.         $_estab++         if /ESTABLISHED/;
  45.         $_listen++         if /LISTEN/;
  46.         $_timewait++         if /TIMEWAIT/;
  47.         $_timeclose++         if /TIMECLOSE/;
  48.         $_finwait1++         if /FINWAIT1/;
  49.         $_finwait2++         if /FINWAIT2/;
  50.         $_synsent++         if /SYNSENT/;
  51.         $_synrecv++         if /SYNRECV/;
  52.         $_closewait++         if /CLOSEWAIT/;
  53. }

  54. #
  55. print "established:$_estab listen:$_listen timewait:$_timewait timeclose:$_timeclose finwait1:$_finwait1 finwait2:$_finwait2 synsent:$_synsent synrecv:$_synrecv closewait:$_closewait";
复制代码
perl /usr/local/apache/htdocs/cacti/scripts/lvm_netstat_tcp.pl 10.11.1.1 2 'public' 161 500
Invalid version: 2
Usage: snmpnetstat [options...] hostname [interval]
NET-SNMP version: 5.1.2
  -v [1 | 2c ]   SNMP version
  -V             display version number
  -c community   specify community name
  -t timeout     SNMP packet timeout (seconds)
  -i             show interfaces with packet counters
  -o             show interfaces with octet counters
  -r             show routing table
  -s             show general statistics
  -n             show IP addresses, not names
  -a             show sockets in LISTEN mode too
  -P proto       show only details for this protocol
  -I interface   show only this interface
  -d             dump packets
  -Ddebugspec   
established:0 listen:0 timewait:0 timeclose:0 finwait1:0 finwait2:0 synsent:0 synrecv:0 closewait:0

[ 本帖最后由 mydlss 于 2008-2-27 11:34 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2008-02-27 11:54 |只看该作者
又重新看了一下那个帖子
发现1楼的那个脚本是for windows的
第二页有一段for linux的修改过的脚本
  1. #!/usr/bin/perl -w

  2. # --------------------------------------------------
  3. # ARGV[0] = <hostname> required
  4. # ARGV[1] = <snmp version> required
  5. # ARGV[2] = <snmp community> required
  6. # ARGV[3] = <snmp port> required
  7. # ARGV[4] = <snmp timeout> required
  8. # --------------------------------------------------
  9. $in_hostname = $ARGV[0] if defined $ARGV[0];
  10. $in_version = $ARGV[1] if defined $ARGV[1];
  11. $in_community = $ARGV[2] if defined $ARGV[2];
  12. $in_port = $ARGV[3] if defined $ARGV[3];
  13. $in_timeout = $ARGV[4] if defined $ARGV[4];

  14. # if ($in_version == 2)
  15. #{
  16. # $in_version = "2c";
  17. #}

  18. if ($in_version eq "2")
  19. {
  20. $in_version = "2c";
  21. }

  22. my $_cmd = "snmpnetstat -v $in_version -c $in_community -t $in_timeout -n -P tcp $in_hostname:$in_port";
  23. #my $_cmd = "snmpnetstat -v $in_version -c $in_community -t $in_timeout -Cn -Cp tcp $in_hostname:$in_port";   [color=Red]这里linux下参数不认,用回上面老的命令[/color]

  24. # usage notes
  25. if (
  26. ( ! defined $in_hostname ) ||
  27. ( ! defined $in_version ) ||
  28. ( ! defined $in_community ) ||
  29. ( ! defined $in_port ) ||
  30. ( ! defined $in_timeout )
  31. ) {
  32. print "usage:\n\n
  33. $0 <host> <snmp version> < snmp community> <snmp port> <snmp timeout>\n\n";
  34. exit;
  35. }


  36. my @_output = `$_cmd`;

  37. my $_estab = 0;
  38. my $_listen = 0;
  39. my $_timewait = 0;
  40. my $_timeclose = 0;
  41. my $_finwait1 = 0;
  42. my $_finwait2 = 0;
  43. my $_synsent = 0;
  44. my $_synrecv = 0;
  45. my $_closewait = 0;

  46. #print "$_output\n";

  47. foreach ( @_output ) {
  48. #print $_;
  49. $_estab++ if /ESTABLISHED/;
  50. $_listen++ if /LISTEN/;
  51. $_timewait++ if /TIMEWAIT/;
  52. $_timeclose++ if /TIMECLOSE/;
  53. $_finwait1++ if /FINWAIT1/;
  54. $_finwait2++ if /FINWAIT2/;
  55. $_synsent++ if /SYNSENT/;
  56. $_synrecv++ if /SYNRECV/;
  57. $_closewait++ if /CLOSEWAIT/;
  58. }

  59. #
  60. print "established:$_estab listen:$_listen timewait:$_timewait timeclose:$_timeclose finwait1:$_finwait1 finwait2:$_finwait2 synsent:$_synsent synrecv:$_synrecv closewait:$_closewait";
复制代码


现在版本错误不报了,但新的问题是,执行了很长时间都无任何反应
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP