计划用MRTG监控我管理的一些服务器性能,作为报告参考使用,于是想到了MRTG这个免费的东东,只是发觉MRTG好像停止了开发,插件不是很多,但已满足了我的要求了,主要监控网卡流量、cpu、memory、DISK、用户连接数这些信息。不啰嗦了,下面将详细记录我的MRTG使用,希望给打算使用MRTG的朋友一些参考。

由于我是用于生产环境安装的记录,有些信息改动了,不要按我的这些来一步一步操作,这样是操作不成功的,我的只是参考。

1、 安装

我用的是windows 2003 (CN)OS 平台,先下载两个软件:MRTG和Perl:

http://oss.oetiker.ch/mrtg, mrtg-2.17.4.zip or better

http://www.activestate.com/store/activeperl/download ,ActivePerl 5.8.8 or better

将MRTG解压,我放在C:\mrtg2174 ,文件名被我改成mrtg2174,主要是说明版本,也直接c:\mrtg即可,所以我的mrtg的bin目录为:C:\mrtg2174\bin

安装perl,我下载的文件名为ActivePerl-5.16.3.1603-MSWin32-x86-296746.msi,双击后step by step即可。默认安装在C:\perl

安装完成后,查看Path变量,应该有C:\Perl\bin;  重启系统使变量生效。

2、 snmp配置 

默认windows没有安装snmp服务组件,snmp服务组件的安装到网上自己造,太多了我就不罗嗦了。

 端口:怕麻烦的话开启tcp和udp的161和162 两个端口,或者关闭防火墙,呵呵!最好在agent端和snmp监控服务端都开通tcp、udp的161和162端口,省事。

 agent端配置:trap服务可以停止

陷阱 设置团体通讯符

安全 设置团体通讯符的权限,通常为只读,接受主机的snmp数据包的IP填入监控服务端的IP

另外在agent端要安装informant-std-16.exe(该文件就在文章的附件里),才能监控cpu、内存等。informant-std-16.exe安装非常简单,双击安装,安装完成后就不用管了。

 

监控服务端:即安装mrtg和perl、生成监控流量图服务器。

要开通trap服务

陷阱 不要配置,为空即可

安全 设置团体通讯符的权限,通常为只读,接受主机的snmp数据包的IP填入agent端的IP

 

3、 OID的获取

这是个难题,我自己也是初级水平,我只是把我理解的写下,希望大家完善。

我用MIB browser获取OID,这个软件已放在我的51cto上传资料库里,16M左右。有些人喜欢net-snmp这个软件,也可以。

安装MIB browser很简单,安装完后在桌面会有MIB browser图标,双击运行

在advanced你配置

填入agent端的ip后,选择“walk”,点击Go,可以获得很多信息。

点击“type”分类,Gauge是能产生图表信息的OID了,至于Integer、Counter32等,希望大家告诉我,我没做太多深入了解。

 

 4、配置cfg文件

 cfg的配置信息,大家可以参考http://oss.oetiker.ch/mrtg/doc/mrtg-reference.en.html这个页面,或者查看C:\mrtg2174\doc\mrtg-reference.txt这个文件,只不过这个文件按linux格式,你需要调整下。

 生产cfg文件命令

修改配置文件mrtg144.cfg,这个文件在附件里,大家可以参考,下面是一些参数的含义:

 

gauge----MRTG生成的图片上带有标尺;

nopercent----计算百分比;

growright----图形向右增长;

Target----告诉MRTG去执行那个脚本;生成数据的脚本/可执行文件

MaxBytes----最大字节数,这里我们监控CPU利用率的百分比,所以最大我们填100,如果监控其它参数要视情况而定;

YLegend----纵坐标(Y轴)单位和参数;

ShortLegend----单位;等页面生成以后你就可以看到这些东西出现的位置,不满意的话可以再进行修改;

LegendO,LegendI----MRTG监控的两个读数分别代表的什么;

Legend[1234IO] 页面选项显示标题

WorkDir specifies where the logfiles and the webpages should be created.

注:Target[name]: OID1&OID2:public@IP

name在cfg文件里是唯一的,不能重复,但name你可以任意指定,比如target[cpu],你也可以Target[cpu.used]。 OID1、OID2是两个变量值,在MIB browser里的Gauge类型,对应OID的value值在图表里体现,如果图表显示一个结果,则OID1和OID2是一样,比如C盘、D盘剩余百分率。如果监控两个值,这OID1和OID2是两个不同,如cpu、memery监控。

Legend1 和 LegendI对应于一个变量值的情况

Legend2 和 LegendO对应于两个变量值的情况,仔细看配置文件应能明白。

 

生成html文件

运行

 

 5、 注册成services运行

 需要两个文件:NSTSRV.exe、 SRVANY.exe 已放在附件里

 将上面两个文件放入C:\mrtg2174\bin 下。 顺便在C:\mrtg2174\bin 目录下创建mrtgsvc.reg文件。文件如下:

注册服务

有些朋友可能在调试过程中,碰到CPU总是没有曲线,怀疑出错了,我这里给个是cpu产生100%的小脚本,以便调试,文件名为cputest.cmd ,内容如下:

echo off 

:a 

goto a

双击运行即可。 

 

6、 监控多个agent端

也就是一个监控服务端,监控多个windows的agent端,这时怎么办,我在网上没有搜索到,下面是我自己的实践记录。

每个agent的snmp配置是一样的,我就不多说了,监控服务端的如下

其他的和配置类似,不多说了。

注册成services其实也是一样的,一个cfg文件,需要一个services

增加一个操作如下:instsrv.exe MRTG145 c:\mrtg2174\bin\srvany.exe

                  regedit /s mrtgsvc145.reg

reg文件如下

  结果如下

 

我监控的一台服务器效果如下: