|
因为公司要对在线服务器的关键进程进行监控,用于分析应用是否有内存溢出和其他情况出现。
应用平台有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 将以下内容复制到新建文件中
[1.3.6.1.4.1.15.1]
counter=LogicalDisk\Free Megabytes\_Total
[1.3.6.1.4.1.15.2]
type=string counter=this is a test
[1.3.6.1.4.1.15.3]
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 "[0-9] 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表示执行一个程序。
[1.3.6.1.4.1.15.4] 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。
|
|
|