首页 > 代码库 > Cacti获取服务器TCP并发连接数(cacti windows版)

Cacti获取服务器TCP并发连接数(cacti windows版)


因为官方并没有提供的windows 版本cacti监控tcp连接数的脚本,所以这里是借用linux版本cacti监控tcp连接数的bash脚本来写bat批处理文件。


1、首先从http://forums.cacti.net/download/file.php?id=5198下载官方提供的基于inux版本cacti监控tcp连接数的bash脚本和监控模版tcp-connections.zip


2、 解压tcp-connections.zip解压出来,三个文件,一个cacti_graph_template_tcp_connections.xml文件,一个get_tcp_connections 的bash文件,还一张给你YY的图片


此处我们要对cacti_graph_template_tcp_connections.xml文件中的脚本程序的路径和参照get_tcp_connections文件的内容写get_tcp_connections.bat程序


3、修改cacti_graph_template_tcp_connections.xml文件中的脚本程序的路径。如下:

修改cacti_graph_template_tcp_connections.xml文件

用记事本打开xml文件,ctrl + F 查找字符串“input_string”,你会看到一行类似<input_string>/bin/bash /var/www/htdocs/cacti/scripts/get_tcp_connections <host> <community></input_string>

的代码,大约在438行,顾名思义,这个就是执行提供的脚本位置了,比如我的是 C:\Apache24\htdocs\cacti\scripts\get_tcp_connections.bat

根据实际情况修改一下。

因为我们的脚本是windows下的bat脚本 所以前面的/bin/bash 也要删除。最终如下:


原来的内容<input_string>/bin/bash /var/www/htdocs/cacti/scripts/get_tcp_connections &lt;host&gt; &lt;community&gt;</input_string>

修改后的内容<input_string>C:\Apache24\htdocs\cacti\scripts\get_tcp_connections.bat &lt;host&gt; &lt;community&gt;</input_string>


4、导入cacti_graph_template_tcp_connections.xml绘图模版:

登陆cacti监控平台Console(控制台) ---> Import Templates(导入模板)


5、新建C:\Apache24\htdocs\cacti\scripts\get_tcp_connections.bat内容如下:

注意查找的字符,和linux下的脚本查找的有点区别

:: get number of tcp connection

:: $1 = hostname

:: $2 = snmp community

:: lots of ways to do this with more style... ;)

@ECHO off

SET CACTIDIR=C:\Apache24\htdocs\cacti\scripts

SET TMPDIR=C:\Apache24\htdocs\cacti\temp


C:\net-snmp\bin\snmpnetstat.exe -v 2c -c %2 -Can -Cp tcp %1 > %TMPDIR%\%1


type %TMPDIR%\%1 | find /c "ESTABLISHED" > %TMPDIR%\ESTABLISHED

type %TMPDIR%\%1 | find /c "LISTEN" > %TMPDIR%\LISTENING

type %TMPDIR%\%1 | find /c "TIMEWAIT" > %TMPDIR%\TIME_WAIT

type %TMPDIR%\%1 | find /c "TIMECLOSE" > %TMPDIR%\TIME_CLOSE

type %TMPDIR%\%1 | find /c "SYNSENT" > %TMPDIR%\SYNSENT

type %TMPDIR%\%1 | find /c "FINWAIT1" > %TMPDIR%\FIN1

type %TMPDIR%\%1 | find /c "FINWAIT2" > %TMPDIR%\FIN2

type %TMPDIR%\%1 | find /c "SYNRECV" > %TMPDIR%\SYNRECV


SET /p ESTABLISHED= <%TMPDIR%\ESTABLISHED

SET /p LISTENING= <%TMPDIR%\LISTENING

SET /p TIME_WAIT= <%TMPDIR%\TIME_WAIT

SET /p TIME_CLOSE= <%TMPDIR%\TIME_CLOSE

SET /p SYNSENT= <%TMPDIR%\SYNSENT

SET /p FIN1= <%TMPDIR%\FIN1

SET /p FIN2= <%TMPDIR%\FIN2

SET /p SYNRECV= <%TMPDIR%\SYNRECV


ECHO  established:%ESTABLISHED% listen:%LISTENING% time_wait:%TIME_WAIT% time_close:%TIME_CLOSE% syn_sent:%SYNSENT% fin_wait1:%FIN1% fin_wait2:%FIN2% syn_recv:%SYNRECV%

del /Q %TMPDIR%\*


6、测试snmp服务是否正常

使用windows命令行。

C:\Users\Administrator>C:\Apache24\htdocs\cacti\scripts\get_tcp_connections.bat 127.0.0.1 public 

#正常情况下会返回tcp状态的相关数据


7、现在我们就可以像添加其他监控对象方法在console->device->主机->Associated Graph Templates进行添加->创建图像了。

8、保存,5分钟之后就可以看到图了。

9、注意,bat脚本不支持含有“=”的snmp community

本文出自 “jedy 网络技术&linux学习” 博客,请务必保留此出处http://jedy82.blog.51cto.com/425872/1599359

Cacti获取服务器TCP并发连接数(cacti windows版)