首先在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-245711/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/312079/viewspace-245711/