Cacti自定义OID监控windows指定进程内存
因为公司要对在线服务器的关键进程进行监控,用于分析应用是否有内存溢出和其他情况出现。应用平台有windows和linux,windows相对来说需要使用工具,linux比较简单。
下面就说下windows的实现方式。
首先需要下载一个软件,snmptools。
下载链接:http://pan.baidu.com/share/link?shareid=218550&uk=1142185724
下载以后按安装包内index.html的说明,将里面的文件复制到windows的system32目录内。
然后运行复制过去的regagent.reg (32位的运行这个)或regagentWow6432.reg(64位的系统),将注册信息导入到系统。
在C盘新建一个文件
c:\counters.ini 将以下内容复制到新建文件中
counter=LogicalDisk\Free Megabytes\_Total
type=string counter=this is a test
type=exec
counter=cscript /nologo
c:\test.vbs
完成保存,以后重启snmp服务就可以在counters.ini文件中实现自定义OID了。
我这里使用批处理360se.bat获取一个测试进程,脚本如下:
[*] @echo off
[*] Rem pro是定义要检查的内存进程名,必须带exe
[*] set pro1=360se.exe
[*] for /f "tokens=5,6" %%a in ('tasklist /FI "MEMUSAGE ge 0" /FI "IMAGENAME eq %pro1%"^|findstr " K"') do (
[*] set tlista=%%a
[*] set tlistb=%%b
[*] )
[*] Rem echo 获取到进程%pro1%的占用: %tlista%%tlistb%
[*] Rem echo %tlista%
[*]
[*] Rem 对获取的数据进行切割来切割,然后返回字符串,传递给cacti的时候单位是k,需要在cacti的CEDF中做次运算,也可以直接输出字节单位的数据。
[*] for /f "tokens=1,2 delims=," %%a in ("%tlista%") do (
[*] set num1=%%a
[*] set num2=%%b
[*] )
[*] echo %num1%%num2%
[*] Rem pause
然后到 counters.in文件中添加如下一行,其中exec表示执行一个程序。
type=exec counter=c:\360se.bat 完成以后到cacti服务端(192.168.10.10)执行如下命令
[*] snmpwalk -v 2c public -c 192.168.10.10 .1.3.6.1.4.15.4
查看返回数据返回如下信息表示添加自定义OID成功
接下来是在CACTI上来进行创建数据模板,和图形模板了。
点击数据模板——>添加
点击添加,会出现自定义数据栏。
添加刚才自定义的OID
点击确定,数据模板就创建完成了。
接下来是自定义图形模板
点击图形模板——>添加
然后添加图形模板的对象
将刚才的数据源添加进去,并用GPRINT生成last,avg,max的数据。
最后到主机中添加图形模板,创建新图形,即可完成。
如果要显示成整数,修改Graph Templates下的Graph Template Items的GPRINT Type,改成Exact Number。
页:
[1]