使用NET-SNMP和MRTG监测Windows服务器(zt)

看到网络管理员经常用MRTG来分析网络设备的流量,觉得挺实用的,也在网上看到过许多UNIX的管理员写脚本抓取系统资源的数据给MRTG来绘制系统资源(CPU/Memory)的曲线图,来监控UNIX服务器的。后来想想既然可以用SNMP协议抓取网络设备的信息,那么Windows服务器如果打开 SNMP服务是不是也可以被远程监控呢。经过测试以后,发现是可以实现的,而且很简单。

首先在Windows的服务里打开SNMP服务,如果没有这个服务,则到添加/删除Windows组件里添加SNMP服务。

在服务里打开SNMP服务的属性,在Agent选项中,勾选所有的选项(也就是打开所有的Agent)。在Trap选项中,输入一个Communication的名称,一般用默认值public,他的权限是READ ONLY的。

打开 SNMP 服务后,就可以在安装有NET-SNMP和MRTG的机器上监控了。

先用snmpwalk命令看看是否能够得到远程服务器的数据。

# snmpwalk -c public -v 1 10.5.13.17

如果一切顺利,应该得到类似下面的信息(因为信息太长,下面只列出一部分)
SNMPv2-MIB::sysDescr.0 = STRING: Hardware: x86 Family 15 Model 2 Stepping 7 AT/AT COMPATIBLE - Software: Windows 2000 Version 5.0 (B
uild 2195 Multiprocessor Free)
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.311.1.1.3.1.2
SNMPv2-MIB::sysUpTime.0 = Timeticks: (14610418) 1 day, 16:35:04.18
SNMPv2-MIB::sysContact.0 = STRING: wellswang {at} auo {dot} com
SNMPv2-MIB::sysName.0 = STRING: AUSMS1
SNMPv2-MIB::sysLocation.0 = STRING: AUS-T1-5F
SNMPv2-MIB::sysServices.0 = INTEGER: 79

现在就可以用MRTG绘制系统的资源图片了

用cfgmaker创建基本的配置文件

# cfgmaker --global "WorkDir: /var/www/mrtg/10.5.13.17" --global "Options[_]: growright, bits" --global "Language: GB2312" --output=10.5.13.17.cfg public@10.5.13.17

在这里 --global参数设定了生成页面的全局值,WorkDir是生成的HTML页面的存放目录,Options指定了图片中的曲线从右端生成,用bit作为单位,Language指定了HTML的编码方式。--output是指定配置文件的文件名。最后的public@10.5.13.17则是远程服务器的IP和communication。

这条命令执行完后,就会生成一个10.5.13.17.cfg的配置文件,别急,这只是一个基本的配置文件,一般来说,只能绘制远程服务器的网络流量的图形。我们要修改这个文件,才能让它绘制出CPU和Memory的曲线。

要监控CPU的负载,在这个cfg文件的中添加:
LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt

Target[cpu1]: hrProcessorLoad.1&hrProcessorLoad.2:public@10.5.13.17
RouterUptime[cpu1]: public@10.5.13.17
MaxBytes[cpu1]: 100
Title[cpu1]: CPU #1 & #2 LOADING (PERCENTAGE)
PageTop[cpu1]:

CPU #1 & #2 Load %


Unscaled[cpu1]: ymwd
ShortLegend[cpu1]: %
YLegend[cpu1]: CPU Utilization
Legend1[cpu1]: CPU #1 Loading in % (Load)
Legend2[cpu1]: CPU #2 Loading in % (Load)
LegendI[cpu1]: CPU #1 Loading
LegendO[cpu1]: CPU #2 Loading
Options[cpu1]: growright,nopercent,gauge

(注:我的服务器是双CPU的,如果你只有单CPU,把hrProcessorLoad.1&hrProcessorLoad.2 改成 hrProcessorLoad.1&hrProcessorLoad.1)

要检测Memory,Windows 自带的SNMP服务做不到,必须在远程的Windows服务器上安装一个新的MIB包,去 http://www.snmp-informant.com 下载一个免费的SNMP Informant Standard版就可以,安装完后,不需要重起就可以了。然后,在刚才的cfg文件中添加入夏配置就可以绘制内存曲线图了:

Target[memory]: 1.3.6.1.4.1.9600.1.1.2.1.0&1.3.6.1.4.1.9600.1.1.2.4.0:public@10.5.13.17:::::2 / 1024
MaxBytes[memory]: 3000000000
Title[memory]: Memory usage
PageTop[memory]:

Free and Used Memory


kMG[memory]: k,M,G,T,P,X
YLegend[memory]: Memory
ShortLegend[memory]: bytes
LegendI[memory]: Free Memory
LegendO[memory]: Commited Memory
Options[memory]: growright,nopercent,gauge

还可以监测系统运行的进程数和用户个数,在cfg文件中添加:

Target[process]: hrSystemProcesses.0&hrSystemNumUsers.0:public@10.5.13.17
RouterUptime[process]: public@10.5.13.17
MaxBytes[process]: 150
Title[process]: Processes and Users
PageTop[process]:

Processes and Users


Unscaled[process]: ymwd
ShortLegend[process]:.
YLegend[process]: Numbers
Legend1[process]: Process Numbers
Legend2[process]: System Users
LegendI[process]: Process Numbers
LegendO[process]: System Users
Options[process]: growright,nopercent,gauge

其他的监测,例如磁盘空间等也一样添加,反正只要给MRTG的Target两个数值,它就能画出曲线了。

改完配置文件后,就用mrtg生成页面了:

# mrtg 10.5.13.17.cfg

第一次执行会报错,原因是没有历史数据,连续执行三次就不应该报错了。

设定一个cronjob,让系统自动每5分钟更新一次远程服务器的状态:

# crontab -e
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/bin/mrtg /root/10.5.13.17.cfg

子页面生成后就要用indexmaker来生成首页了。

# indexmaker --output=/var/www/mrtg/10.5.13.17/index.html 10.5.13.17.cfg

--output参数指定了生成的文件。

现在,你就可以去/var/www/mrtg/10.5.13.17这个目录中打开index.html文件,查看远程服务器的信息了。如果你安装了apache,你也可以发布这个目录,这样,只要你有浏览器,不管你在任何地方,你都能了解到远程服务器的状态了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/312079/viewspace-245710/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/312079/viewspace-245710/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值