2008/07/24

WMI 이벤트 추적 로깅 및 이벤트 뷰어

WMI 요청에 대한 이벤트 추적을 위해서는,. Windows 2000 에서 XP, 2003 까지는 WMI 컨트롤의 속성에서 로깅 설정을 통해서 추적이 가능합니다.



로그파일은 기본 디렉토리로,. C:\WINDOWS\system32\wbem\Logs 가 지정되며,. 해당 폴더에는 여러개의 로그 파일들이 존재 합니다.

실제 요청된 쿼리와,. 그 쿼리를 처리하기 위한 내부 작동을 볼려면 로깅 수준을 "자세한 정보 기록" 으로 설정을 해야 합니다.

레지스트리에서 직접 수정 가능

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM]
"EnableEvents"="1"
"Logging"="2"
"Log File Max Size"="65536"
"Logging Directory"="C:\\WINDOWS\\system32\\WBEM\\Logs\\"

로깅수준: 0-안함, 1-오류만, 2-자세한 정보 기록


WMI 로그 파일에는 여러 종류가 있습니다.

WMI Service Log Files
Wbemcore.log
Wbemess.log
Mofcomp.log
Wmiadap.log
Wbemprox.log
Framework.log
Winmgmt.log

WMI Provider Log FilesWmiprov.log
Ntevt.log
Dsprovider.log

위 각 로그 파일에 대한 설명 및 로깅 수준에 대한 설명은 다음 MSDN 문서를 참고하시면 좋을것 같습니다.

http://msdn.microsoft.com/en-us/library/aa827354(vs.85).aspx
http://msdn.microsoft.com/en-us/library/aa827355(VS.85).aspx


그중에,. 쿼리와 관련된 로그는 wbemcore.log 입니다.



위와과 같은 시스템 정보를 조회 하는 쿼리는 하는 경우 다음과 같은 로깅이 기록됩니다. 물론 일부인데,. 하나의 쿼리에 대한 약 100여줄 이상의 상세한 로깅이 됩니다.

(Wed Jul 23 14:40:49 2008.194137625) : Query Engine request: querying dyn provider with <select * from Win32_ComputerSystemProduct>
(Wed Jul 23 14:40:49 2008.194137625) : Query Engine actual: querying dyn provider with <select * from Win32_ComputerSystemProduct>
(Wed Jul 23 14:40:49 2008.194137750) : CALL CWbemNamespace::GetObject
   BSTR ObjectPath = Win32_ComputerSystemProduct
   long lFlags = 0
   IWbemClassObject ** pObj = 0x236F938


그런데,,. Windows Vista 및 2008 에서는 위와 같은 WMI 컨트롤 등록 정보에서의 로깅 설정이 없어졌습니다. 대신에,. Event Tracing 을 이용하여 캡쳐를 하며,. 보기 도구로는 이벤트 뷰어를 통해서 가능 합니다.

뭐,. 기존 보다는 로깅 정보를 훨씬더 쉽고,. 로깅 데이터 자체도 구조적인 데이터로 얻을수 있는 잇점이 있습니다. 물론,. 기존 2000, 2003 에서도 Evnet Tracing 를 지원하지만 WMI 공급자를 지원하지 않았기 때문에 로그 파일로만 가능했습니다.



만약,. Event Tracing WMI 공급자를 지원했다면,.. 서버의 성능 조회 도구인 Server Performance Advisor (SPA) (http://www.wssplex.net/TipnTech.aspx?Seq=411) 를 통해서 추적이 가능할수도 있습니다.



Vista 및 Windows Server 2008 에서는 이벤트 뷰어를 통해서 설정 및 조회가 가능합니다. 다음과 같이 보기 옵션에서 "분석 및 디버그 로그 표시" 를 체크해 주면 기본값의 Windows 요소의 Event Tracing 외 굉장한 범위의 세부 요소에 대한 Tracing 추적이 가능합니다.



지금은,. WMI 이벤트를 추적하기 위함으로,.. 응용 프로그램 및 서비스 로그 하위의 Windows 내 그 하위 목록에서 아래와 같이 WMI-Activity 의 Trace 속성에서 로깅 설정을 해줘야 합니다.



이 로깅 설정은 앞서 얘기한 바와 같이,. 보통의 텍스트 로그 파일수준이 아닌 이벤트 로그 데이터 베이스로 저장이 되며,. 역시 기본 이벤트 로그 조회 방법과 100% 동일 합니다.

C:\Windows\System32\winevt\Logs  에는 기본 이벤트 로그 및 사용자 활성화 이벤트 로그가 모두 저장이 되어 있습니다.

%SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-WMI-Activity%4Trace.etl 와 같이 Event Tracing Log 파일 형식으로 저장이 됩니다.



그럼,. 기존의 시스템 정보 조회 쿼리를 그대로, Webmtest 에서 쿼리를 해보면 약 30 여개의 로그가 기록 됩니다. 물론 앞서 얘기한 텍스트 파일 로깅시의 정보 대부분이 기록되어 있습니다.

물론 꼭 GUI 툴인 이벤트 뷰어를 이용할 필요는 없습니다. 앞서 얘기한 것처럼 데이터 베이스 형식이므로 사용자 프로그래밍이나 WEVTUTIL 유틸을 이용해서 이벤트 로그 조회가 가능합니다.



댓글 없음:

댓글 쓰기

가장 많이 본 글