Cacti獲取服務器TCP併發鏈接數(cacti windows版)


由於官方並無提供的windows 版本cacti監控tcp鏈接數的腳本,因此這裏是借用linux版本cacti監控tcp鏈接數的bash腳原本寫bat批處理文件。
php


一、首先從http://forums.cacti.net/download/file.php?id=5198下載官方提供的基於inux版本cacti監控tcp鏈接數的bash腳本和監控模版tcp-connections.ziplinux


二、 解壓tcp-connections.zip解壓出來,三個文件,一個cacti_graph_template_tcp_connections.xml文件,一個get_tcp_connections 的bash文件,還一張給你YY的圖片windows


此處咱們要對cacti_graph_template_tcp_connections.xml文件中的腳本程序的路徑和參照get_tcp_connections文件的內容寫get_tcp_connections.bat程序bash


三、修改cacti_graph_template_tcp_connections.xml文件中的腳本程序的路徑。以下:tcp

修改cacti_graph_template_tcp_connections.xml文件ide

用記事本打開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.batthis

根據實際狀況修改一下。spa

由於咱們的腳本是windows下的bat腳本 因此前面的/bin/bash 也要刪除。最終以下:.net


原來的內容<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>


四、導入cacti_graph_template_tcp_connections.xml繪圖模版:

登錄cacti監控平臺Console(控制檯) ---> Import Templates(導入模板)


五、新建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%\*


六、測試snmp服務是否正常

使用windows命令行。

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

#正常狀況下會返回tcp狀態的相關數據


七、如今咱們就能夠像添加其餘監控對象方法在console->device->主機->Associated Graph Templates進行添加->建立圖像了。

八、保存,5分鐘以後就能夠看到圖了。

九、注意,bat腳本不支持含有「=」的snmp community

相關文章
相關標籤/搜索