使用NET-SNMP和MRTG监测Windows服务器
文章信息
关键字:
本文版本:1
最后修改于 2005-07-10 13:51:30
看到网络管理员经常用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]: <br /><H1>CPU #1 & #2 Load %</H1>
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]: <H1>Free and Used Memory</H1>
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]: <br /><H1>Processes and Users</H1>
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,你也可以发布这个目录,这样,只要你有浏览器,不管你在任何地方,你都能了解到远程服务器的状态了。
首先在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]: <br /><H1>CPU #1 & #2 Load %</H1>
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]: <H1>Free and Used Memory</H1>
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]: <br /><H1>Processes and Users</H1>
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,你也可以发布这个目录,这样,只要你有浏览器,不管你在任何地方,你都能了解到远程服务器的状态了。
日历
| 年 月 | ||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
| 29 | 30 | 31 | 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 1 | 2 |
日志分类
搜索日志
订阅我的日志
友情链接
[做人要厚道,看帖要回帖,点击发表评论]
显示评论
隐藏评论
评论列表
发布于 2005-07-10 13:51:30 |



