[시스템] RRDTOOL을 이용한 시스템 모니터링
RRDTOOL을 이용한 시스템 모니터링
———————————-
참고사이트
———————————-
Net-SNMP
http://www.net-snmp.com/
MRTG
http://www.mrtg.org/
RRDTOOL
http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/
RRDWORLD (http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/rrdworld/index.html)에 RRDTOOL과 관련된 유용한 프로젝트들이 많이 있다.
rrdtool 소스 contrib 디렉토리에 유용한 유틸리티가 많이 있다.
Cricket
http://cricket.sourceforge.net/
RRD 그래프 프로그램
http://my14all.sourceforge.net/
http://www.cheshire.demon.co.uk/pub/
http://www.fi.muni.cz/~kas/mrtg-rrd/
Converting from Rateup to RRDTool
http://www.geocities.com/paulcwilliamson/mrtg/rateup2rrd.html
CACTI – A php based ‘full service frontend’ to rrdtool and monitoring
http://www.raxnet.net/products/cacti/
SNMP on W2K
http://snmpboy.msft.net/
SNMP for the Public Community
http://www.wtcs.org/snmp4tpc/
GETIF라는 Windows용 공개 MIB Browser 프로그램을 제공한다.(아마도)
http://www.wtcs.org/snmp4tpc/FILES/Tools/SNMP/getif/getif.zip
SNMP Link
http://www.snmplink.org/
Microsoft
Microsoft Technet – Network Management for Microsoft Networks Using SNMP
http://www.microsoft.com/technet/treeview/default.asp?url=/TechNet/prodtechnol/winntas/maintain/featusability/networkm.asp
Microsoft Technet – Resource Kit Chapter 10 – Simple Network Management Protocol http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/windows2000serv/reskit/tcpip/part3/tcpch10.asp
Microsoft Q315154 – HOW TO: Configure Security for a Simple Network Management Protocol Service in Windows 2000
http://support.microsoft.com/default.aspx?scid=KB;EN-US;q315154&
———————————-
소프트웨어 설치
———————————-
RRD System Monitoring 서버
* Requirement
– Apache
– Mysql
– Perl
– DBI Perl Module
– DBD::Mysql Perl Module
* Net-SNMP 설치 (SNMP Perl 모듈 포함)
./configure \\
–with-perl-modules
make
make install
* rrdtool 설치
gd 라이브러리가 설치되어 있지 않다면 먼저 설치해야 한다.
./configure
make
make install
make site-perl-install
Client Agent
* Unix
Net-SNMP 설치
* Windows
SNMP서비스에 확장 Agent를 설치한다.
———————————-
RDDTOOL 사용법
———————————-
* RRD 파일 만들기
rrdtool create filename
–start | -b <start time : default now – 10s>
–step | -s <step : default 300s>
DS:ds-name:DST:heartbeat:min:max
DST : Data Source Type GAUGE | COUNTER | DRIVE | ABSOLUTE
RRA:CF:xff:steps:rows
RRA : Round Robin Archive
CF : consolidation functions AVERAGE | MIN | MAX | LAST
[Example]
rrdtool create test.rrd \\
–start 920804400 \\
DS:speed:COUNTER:600:U:U \\
RRA:AVERAGE:0.5:1:24 \\
RRA:AVERAGE:0.5:6:10
rrdtool을 이용하는 경우 5분평균,30분평균값들이 저장되는 기간을 마음대로 정해줄 수 있다. RRA에서 rows를 원하는 대로 바꾸면 된다.
5분평균 일주일 – 12 * 24 * 7 = 2016 line
30분평균 한달 – 30 * 2 * 24 * 31 = 1488 line
2시간평균 100일 – 2h * 12 * 100 = 1200 line
하루평균 2년 – 1d * 730 = 730 line
* RRD 데이타 업데이트하기
rrdtool update test.rrd 920804700:12345 920805000:12357 920805300:12363
rrdtool update test.rrd 920805600:12363 920805900:12363 920806200:12373
rrdtool update test.rrd 920806500:12383 920806800:12393 920807100:12399
rrdtool update test.rrd 920807400:12405 920807700:12411 920808000:12415
rrdtool update test.rrd 920808300:12420 920808600:12422 920808900:12423
* RRD 데이타 파일에서 데이타 추출하기
rrdtool fetch test.rrd AVERAGE –start 920804400 –end 920809200
* RRD Graph 그리기
rrdtool graph cpu.gif \\
-s e-1d -e 1039596009 \\ # 시작시각 끝시각
DEF:cpu=mx.nuri.net-cpu.rrd:ds0:AVERAGE \\ # 데이타소스
AREA:cpu#00ff00:”CPU” \\ # 그림그리기
-g \\ # legend 빼고 그래프만 그리기
-v “% Utilization” \\ # y축 Legend
-t cpu \\ # 그래프 타이틀
–step 300 \\ # 시간간격
-x HOUR:1:HOUR:2:HOUR:2:0:%H # X축 포맷
[Example]
rrdtool graph speed.gif \\
–start 920804400 –end 920808000 \\
DEF:myspeed=test.rrd:speed:AVERAGE \\
LINE2:myspeed#FF0000
그래프를 그리기 전에 결정해야 할 것
rrdfile
–start
–end
–step
–x-grid
–vertical-label
–imgformat
–lower-limit
–title
DEF
CDEF
GPRINT
LINE{1|2|3},linecolor
AREA,areacolor
———————————-
mrtg log 포맷을 rrd 포맷으로 바꾸기
———————————-
기존의 MRTG 로그 데이타를 이용해 볼 생각으로 RRD 포맷으로 바꾸어서 필요한 데이타를 얻는 방법을 테스트해 보았다.
* rrdtool/contrib/log2rrd 에 log2rrd.pl 스크립트가 있다.
log2rrd.pl mx.nuri.net-cpu.log rrd/
* mx.nuri.net.net-cpu.rrd 에 rrdtool 적용
rrdtool into mx.nuri.net-cpu.rrd 명령으로 rrd 파일에 대한 정보를 본다.
ds name 이 ds0, ds1 으로 되어 있으며 마지막 업데이트된 시각이 1039596009 인 것을 알 수 있다.
step = 300 (5분마다 데이타가 저장)
last_update = 1039596009
ds[ds0].type = “GUAGE” (GUAGE 타입 데이타)
ds[ds1].type = “GUAGE” (GUAGE 타입 데이타)
mrtg config에서 oid1@oid2 를 적어주므로 ds0는 oid1, ds1은 oid2에 해당하는 것으로 보임
rra[0].cf = “AVERAGE”
rra[0].rows = 600
rra[0].pdp_per_row = 1
5분 평균값이 600줄 저장
rra[1].cf = “MAX”
rra[1].rows = 600
rra[1].pdp_per_row = 1
5분 최대값이 600줄 저장
rra[2].cf = “AVERAGE”
rra[2].rows = 600
rra[2].pdp_per_row = 6
30분(step * pdp_per_row) 평균값이 600줄 저장
rra[3].cf = “MAX”
rra[3].rows = 600
rra[3].pdp_per_row = 6
30분 최대값이 600줄 저장
rra[4].cf = “AVERAGE”
rra[4].rows = 600
rra[4].pdp_per_row = 24
2시간 평균값 600줄 저장
rra[5].cf = “MAX”
rra[5].rows = 600
rra[5].pdp_per_row = 24
2시간 최대값 600줄 저장
rra[6].cf = “AVERAGE”
rra[6].rows = 600
rra[6].pdp_per_row = 288
하루 평균값 600줄 저장
rra[7].cf = “MAX”
rra[7].rows = 600
rra[7].pdp_per_row = 288
하루 최대값 600줄 저장
* rrd 파일에서 데이타를 끄집어내어 보자
rrdtool dump 로 모든 데이타를 xml형식으로 추출할 수 있다.
rrdtool dump mx.nuri.net-cpu.rrd > cpu.xml
dump로 추출한 결과 30분 평균값의 타임스탬프
2002-11-29 06:00:00 KST / 1038517200 ~ 2002-12-11 17:30:00 KST / 1039595400
rrdtool fetch 로 필요한 데이타를 추출할 수 있다.
rrdtool fetch mx.nuri.net-cpu.rrd AVERAGE -e 1039596009
하루동안의 5분평균값 빼기
rrdtool fetch mx.nuri.net-cpu.rrd AVERAGE -r 300 -s e-1d -e 1039596009
12.5일동안의 30분평균값 빼기
rrdtool fetch mx.nuri.net-cpu.rrd AVERAGE -r 1800 -s e- -e
rrdtool fetch mx.nuri.net-cpu.rrd AVERAGE -r 1800 -e $(echo $((1039596009/1800*1800))) -s e-12.5d
* 그래프를 그려보자
rrdtool graph cpu.gif \\
-s e-1d -e 1039596009 \\
DEF:cpu=mx.nuri.net-cpu.rrd:ds0:AVERAGE \\
LINE2:cpu:#00a000:”CPU”
rrdtool graph cpu.gif \\
-s 1039509600 -e s+1d \\
-x HOUR:2:HOUR:2:HOUR:2:0:%X -v % \\
-h 150 \\
DEF:cpu=mx.nuri.net-cpu.rrd:ds0:AVERAGE \\
AREA:cpu:#00ff00:”CPU”
rrdtool graph cpu.gif \\
-s e-1d -e 1039596009 \\ # 시작시각 끝시각
DEF:cpu=mx.nuri.net-cpu.rrd:ds0:AVERAGE \\ # 데이타소스
AREA:cpu#00ff00:”CPU” \\ # 그림그리기
-g \\ # legend 빼고 그래프만 그리기
-v “% Utilization” \\ # y축 Legend
-t cpu \\ # 그래프 타이틀
–step 300 \\ # 시간간격
-x HOUR:1:HOUR:2:HOUR:2:0:%H # X축 포맷
———————————-
DB 테이블 구조
———————————-
기존의 monitor 테이블 구조와 최대한 호환되게 만든다.
기존의 monitor 테이블 구조
————————–
CREATE TABLE monitor (
serial int(10) unsigned NOT NULL auto_increment,
csn smallint(4) unsigned zerofill NOT NULL default ‘0000’,
ssn smallint(5) unsigned zerofill,
c_name varchar(25) NOT NULL default ”,
t_ip varchar(21) NOT NULL default ”,
t_community varchar(20) NOT NULL default ”,
t_ver int(11) unsigned NOT NULL default ‘1’,
oid1 varchar(50) NOT NULL default ”,
oid2 varchar(50) NOT NULL default ”,
bound int(11) NOT NULL default ‘0’,
center tinyint(2) NOT NULL default ‘0’,
floor tinyint(2) NOT NULL default ‘0’,
bandwidth int(11) default NULL,
description varchar(128) NOT NULL default ”,
dgm_idx int(11) NOT NULL default ‘1’,
status tinyint(1) default NULL,
UNIQUE KEY serial (serial),
KEY t_community (t_community)
) TYPE=MyISAM;
rrdtool system monitor 테이블 구조
———————————-
CREATE TABLE monitor (
serial int(10) unsigned NOT NULL auto_increment,
csn smallint(4) unsigned zerofill NOT NULL default ‘0000’,
ssn smallint(5) unsigned zerofill default NULL,
c_name varchar(25) NOT NULL default ”,
hostname varchar(128) default NULL,
t_ip varchar(21) NOT NULL default ”,
t_community varchar(20) NOT NULL default ”,
t_ver int(11) unsigned NOT NULL default ‘1’,
oid1 varchar(50) NOT NULL default ”,
oid2 varchar(50) NOT NULL default ”,
datatype enum(‘Counter’,’Guage’) NOT NULL default ‘Counter’,
bound int(11) NOT NULL default ‘0’,
center tinyint(2) NOT NULL default ‘0’,
floor tinyint(2) NOT NULL default ‘0’,
bandwidth int(11) default NULL,
description varchar(128) NOT NULL default ”,
ylegend varchar(32) default NULL,
dgm_idx int(11) NOT NULL default ‘1’,
status tinyint(1) default NULL,
UNIQUE KEY serial (serial),
KEY t_community (t_community)
) TYPE=MyISAM;
c_name은 csn에서 알 수 있다.
hostname은 sysName에서 알 수 있다.
t_ver은 Giga NIC이 설치되어 있는 호스트가 아니라면 1 로만 해도 무방할 것이다.
datatype은 oid로부터 유추할 수 있다.
bound, bandwidth가 필요한가?
center,floor은 ssn으로부터 알 수 있다.
ylegend는 oid로부터 유추할 수 있다.
rrdtool system monitor 테이블 Draft
———————————–
CREATE TABLE monitor (
serial int(10) unsigned NOT NULL auto_increment,
csn smallint(4) unsigned zerofill NOT NULL default ‘0000’,
ssn smallint(5) unsigned zerofill default NULL,
t_ip varchar(21) NOT NULL default ”,
t_community varchar(20) NOT NULL default ”,
t_ver int(11) unsigned NOT NULL default ‘1’,
oid1 varchar(50) NOT NULL default ”,
oid2 varchar(50) NOT NULL default ”,
description varchar(128) NOT NULL default ”,
dgm_idx int(11) NOT NULL default ‘1’,
status tinyint(1) default NULL,
UNIQUE KEY serial (serial),
) TYPE=MyISAM;
———————————-
SNMP Version
———————————-
Windows NT는 SNMP v1, Windows 2000은 SNMP v2, Net-SNMP는 v3을 지원한다.
SNMP v1 으로만 쿼리를 하든지, SNMP v1으로 쿼리해서 OS를 알아낸 후 v1 또는 v2로 쿼리할 필요가 있다.
SNMP v3는 다른 인증 방식으로 동작하므로 (Community 이름만 알아서는 쿼리할 수 없다.) 사용하지 않는다.
SNMP v2 에서는 get_bulk를 쓸 수 있다. Gathering시 로드를 줄일 수 있을 것 같은데 get_bulk를 제대로 써먹기 위해서는 DB구조를 변경해야 할 것이다.
——————————–
중요 OID
——————————–
SYSTEM
——–
.1.3.6.1.2.1.1.1.0 = SNMPv2-MIB::sysDescr.0
Linux jjumi.com 2.4.18-14 #1 Wed Sep 4 …
.1.3.6.1.2.1.1.5.0 = SNMPv2-MIB::sysName.0
STRING: www.jjumi.com or IWEBNT
Network Interface
——————-
.1.3.6.1.2.1.2.1.0 = IF-MIB::ifNumber.0
Network Interface의 갯수를 알기 위해 ifNumber를 사용할 수 있으나,
Windows 2000의 경우 Network Interface Instance가 1,2,3,.. 이렇게
할당되는 것이 아니라 임의의 숫자가 할당되므로 ifNumber만으로
Instance를 알 수가 없다. 쓰바.
.1.3.6.1.2.1.2.2.1.1.* = IF-MIB::ifIndex.*
.1.3.6.1.2.1.2.2.1.2.* = IF-MIB::ifDescr.* (lo0, eth0)
.1.3.6.1.2.1.2.2.1.7.* = IF-MIB::ifAdminStatus.*
ifAdminStatus를 조사해서 실제로 쓰는 Network Interface인지 조사할
필요가 있을까??
.1.3.6.1.2.1.2.2.1.10.* = IF-MiB::InOctets.*
.1.3.6.1.2.1.2.2.1.16.* = IF-MIB::OutOctets.*
Unix
——
아래의 OID값을 얻기 위해서는 Net-SNMP 패키지를 설치하여 CPU, Memory, Disk에
서비스를 하도록 설정되어 있어야 한다.
Unix CPU (CPU 사용량 = CpuUser + CpuSystem)
.1.3.6.1.4.1.2021.11.9.0 = UCD-SNMP-MIB::ssCpuUser.0
.1.3.6.1.4.1.2021.11.10.0 = UCD-SNMP-MIB::ssCpuSystem.0
ssCpuUser, ssCpuSystem 값을 로그에 저장하고 그래프를 그릴 때
2개의 값을 합쳐서 그리자.
Unix MEM (MEM 사용량 = memTotal – memAvail)
.1.3.6.1.4.1.2021.4.3.0 = UCD-SNMP-MIB::memTotalSwap.0
.1.3.6.1.4.1.2021.4.4.0 = UCD-SNMP-MIB::memAvailSwap.0
.1.3.6.1.4.1.2021.4.5.0 = UCD-SNMP-MIB::memTotalReal.0
.1.3.6.1.4.1.2021.4.6.0 = UCD-SNMP-MIB::memAvailReal.0
memTotalReal, memAvailReal 값을 로그에 저장하고 그래프를 그릴 때
사용량을 계산하자. Swap도 마찬가지.
Unix DISK
.1.3.6.1.4.1.2021.9.1.1.* = UCD-SNMP-MIB::dskIndex.*
.1.3.6.1.4.1.2021.9.1.2.* = UCD-SNMP-MIB::dskPath.* (/data)
.1.3.6.1.4.1.2021.9.1.6.* = UCD-SNMP-MIB::dskTotal.* (76922968)
.1.3.6.1.4.1.2021.9.1.7.* = UCD-SNMP-MIB::dskAvail.* (5448884)
.1.3.6.1.4.1.2021.9.1.8.* = UCD-SNMP-MIB::dskUsed.* (67574296)
디스크는 Network Interface와 마찬가지로 Instance 갯수를 알 수 없으므로
dskIndex을 조사하여 Instance갯수를 알아낸다. dskPath는 description에
사용된다. dskTotal, dskUsed값을 로그에 저장하고 그래프를 그린다.
dskAvail은 중복되는 값이므로 사용하지 않는다.
LOAD
.1.3.6.1.4.1.2021.10.* = Load Average 관련
LOAD를 넣는 것이 좋지 않나??
Windows 2000
————-
Windows 2000에서는 기본적으로 설치되는 HOST-RESOURCES-MIB을 통해
Process갯수, LOAD, 디스크 사용량을 알 수 있으나 메모리 총 사용량은 알 수 없다.
HOST-RESOURCES-MIB (hostmib.mib) 은 .1.3.6.1.2.1.25 로 시작한다.
Windwos 2000 Disk
.1.3.6.1.2.1.25.2.3.1.1.* = hrStorageIndex.*
.1.3.6.1.2.1.25.2.3.1.2.* = hrStorageType.*
hrStorageType의 값이 .1.3.6.1.2.1.25.2.1.4 (fixed type) 인 것을 가려낸다.
.1.3.6.1.2.1.25.2.3.1.3.* = hrStorageDescr.*
hrStorageDescr 값에 약간의 문제가 있다.
Whatsup PC 에서는…
SNMPv2-SMI::mib-2.25.2.3.1.3.1 = STRING: “A:\\\\”
SNMPv2-SMI::mib-2.25.2.3.1.3.2 = STRING: “C:\\\\ Label: Serial Number 68373169”
SNMPv2-SMI::mib-2.25.2.3.1.3.3 = STRING: “D:\\\\ Label: Serial Number b8a5e59a”
SNMPv2-SMI::mib-2.25.2.3.1.3.4 = STRING: “E:\\\\”
SNMPv2-SMI::mib-2.25.2.3.1.3.5 = STRING: “Virtual Memory”
이렇게 A,C,D,E 로 나온다.
그러나 다른 PC에서는…
SNMPv2-SMI::mib-2.25.2.3.1.3.1 = STRING: “A:\\\\”
SNMPv2-SMI::mib-2.25.2.3.1.3.2 = Hex-STRING: 43 3A 5C 20 4C 61 62 65 6C 3A B7 CE C4 C3 20 B5 F0 BD BA C5 A9 20 20 53 65 72 69 61 6C 20 4E 75 6D 62 65 72 20 36 34 37 31 32 36 36 63
SNMPv2-SMI::mib-2.25.2.3.1.3.3 = Hex-STRING: 44 3A 5C 20 4C 61 62 65 6C 3A B7 CE C4 C3 20 B5 F0 BD BA C5 A9 20 20 53 65 72 69 61 6C 20 4E 75 6D 62 65 72 20 34 30 35 33 31 64 30 61
SNMPv2-SMI::mib-2.25.2.3.1.3.4 = STRING: “E:\\\\ Label: Serial Number 949b08bb”
SNMPv2-SMI::mib-2.25.2.3.1.3.5 = STRING: “F:\\\\”
SNMPv2-SMI::mib-2.25.2.3.1.3.6 = STRING: “G:\\\\”
SNMPv2-SMI::mib-2.25.2.3.1.3.7 = STRING: “Virtual Memory”
이렇게 나온다. 쓰바. C: D: 로 안나오고 왜 일케 나오는거야
.1.3.6.1.2.1.25.2.3.1.4.* = hrStorageAllocationUnits
Disk 크기에 따라 2048, 4096, 16384, 65536 등으로 Block 크기가 틀리다. 쓰바.
Gathering시 hrStorageAllocationUnits까지 받아와서 곱하든지 DB에 넣어넣고
그래프 그릴 때 고려해야 한다.
.1.3.6.1.2.1.25.2.3.1.5.* = hrStorageSize (총용량, hrStorageAllocationUnits와 곱하기 필요)
.1.3.6.1.2.1.25.2.3.1.6.* = hrStorageUsed (사용량, hrStorageAllocationUnits와 곱하기 필요)
Windows 2000 CPU
.1.3.6.1.2.1.25.3.3.1.2 = hrProcessorLoad
.1.3.6.1.2.1.25.3.3.1.2.1 = hrProcessorLoad (Whatsup PC)
.1.3.6.1.2.1.25.3.3.1.2.4 = hrProcessorLoad (다른 Windows 2000 PC)
hrProcessorLoad에도 문제가 있다. 시스템마다 Instance가 다르다. 쓰바.
.1.3.6.1.2.1.25.1.6 = hrSystemProcesses (# of running process)
.1.3.6.1.2.1.25.1.6.0 = hrSystemProcesses.0
Windows 2000 Memory
.1.3.6.1.2.1.25.2.2 = hrMemorySize (총 메모리양)
.1.3.6.1.2.1.25.2.2.0 = 261616 (KB)
HOST MIB에는 Memory 관련된 사항은 이것밖에 없다.
메모리 사용량을 알기 위해서는 다른 확장 Agent가 필요하다.
snmpboy.msft.net에서 제공하는 perfmib에는 버그가 있다.
NT의 경우 Resource Kit에서 제공하는 MIB을 쓰면 될 거 같은데 W2k는??
SNMP4W2K-WINDOWS-2000-PERFORMANCE (perfmib.mib) 에서 알 수 있는 값
.1.3.6.1.4.1.311.1.1.3.1.1.1.2 = memoryAvailableBytes (총 메모리 남은양)
.1.3.6.1.4.1.311.1.1.3.1.1.1.29 = memoryAvailableKBytes
.1.3.6.1.4.1.311.1.1.3.1.1.1.30 = memoryAvailableMBytes
SNMP4W2K-WINDOWS-2000-PERFORMANCE 에서 써 먹을건 메모리 남은양밖에 없는듯…
메모리 냠은양 하나때문에 SNMP4w2k를 설치해야 되는건가…:(
Windows NT
———–
NT Resource Kit 에서 제공되는 확장 MIB으로 다 해결할 수 있기를…
———————————-
Useful Windows NT OIDs from http://www.wtcs.org/snmp4tpc/testing.htm
———————————-
Windows 2000 에서는 하나도 안 맞는다. 🙁
snmputil은 Windows NT 3.51, Windows NT 4.0 Resource Kit 에 포함되어 있다.
http://www.wtcs.org/snmp4tpc/testing.htm 에서도 구할 수 있다.
GETting a few Windows NT OIDs:
Gets Current Anon. HTTP Users: – Won’t work unless you had SNMP installed before you added IIS.
snmputil get 127.0.0.1 public .1.3.6.1.4.1.311.1.7.3.1.6.0
Gets Total Anon. HTTP Users: – Won’t work unless you had SNMP installed before you added IIS.
snmputil get 127.0.0.1 public .1.3.6.1.4.1.311.1.7.3.1.8.0
Gets Maximum Anon. HTTP Users: – Won’t work unless you had SNMP installed before you added IIS.
snmputil get 127.0.0.1 public .1.3.6.1.4.1.311.1.7.3.1.10.0
Gets NT CPU % Usage:
snmputil get 127.0.0.1 public .1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.0
Gets C: Space remaining (MB):
snmputil get 127.0.0.1 public .1.3.6.1.4.1.311.1.1.3.1.1.5.1.4.0
Gets RAM free (Bytes): (see snmputil image above)
snmputil get 127.0.0.1 public .1.3.6.1.4.1.311.1.1.3.1.1.1.1.0
Walking the Windows NT OID trees:
Lists all memory and processor OIDs:
snmputil walk 127.0.0.1 public .1.3.6.1.4.1.311.1.1.3.1.1.1
Lists all processor OIDs:
snmputil walk 127.0.0.1 public .1.3.6.1.4.1.311.1.1.3.1.1.2
Lists all network interface OIDs:
snmputil walk 127.0.0.1 public .1.3.6.1.4.1.311.1.1.3.1.1.3
Lists all physicaldisk OIDs:
snmputil walk 127.0.0.1 public .1.3.6.1.4.1.311.1.1.3.1.1.4
Lists all logicaldisk OID:
snmputil walk 127.0.0.1 public .1.3.6.1.4.1.311.1.1.3.1.1.5
Lists all process OIDs:
snmputil walk 127.0.0.1 public .1.3.6.1.4.1.311.1.1.3.1.1.7
Lists all paging file OIDs:
snmputil walk 127.0.0.1 public .1.3.6.1.4.1.311.1.1.3.1.1.9
Lists all the HTTP Server OIDs: – Won’t work unless you had SNMP installed before you added IIS.
snmputil walk 127.0.0.1 public .1.3.6.1.4.1.311.1.7.3.1
You can then “drill down” to the OID you need to access! Try it!
———————————-
Windows 확장 Agent
———————————-
Windows 2000은 http://snmpboy.msft.net/,
Windows NT는 http://www.wtcs.org/snmp4tpc/ 에서 제공하는 확장 Agent를 쓰고 있음.
———————————-
snmpwalk 옵션
———————————-
-O OUTOPTS Toggle various defaults controlling output display:
b: do not break OID indexes down
e: print enums numerically
E: escape quotes in string indices
* f: print full OIDs on output
* n: print OIDs numerically
* q: quick print for easier parsing
Q: quick print with equal-signs
s: print only last symbolic element of OID
S: print MIB module-id plus last element
t: print timeticks unparsed as numeric integers
T: print human-readable text along with hex strings
u: print OIDs using UCD-style prefix suppression
* v: print values only (not OID = value)
X: extended index format
bash-2.05b$ snmpwalk -c xxxxxx -v 1 -O fnq localhost .1.3.6.1.4.1.2021.9.1.1
.1.3.6.1.4.1.2021.9.1.1.1 1
.1.3.6.1.4.1.2021.9.1.1.2 2
bash-2.05b$ snmpwalk -c xxxxxx -v 1 -O vq localhost .1.3.6.1.4.1.2021.9.1.1
1
2