본문 바로가기

Windows/기술과 팁

dumpel.exe 를 이용해 이벤트 로그 파일로 자동 저장하기

Windows 시스템의 운영에 있어서 이벤트 로그의 중요성은 아무리 강조해도 지나치지 않다.
시스템의 특성에 따라서 이벤트로그가 많이 생성될 수도 있고, 거의 생성되지 않을 수도 있다.
이벤트 로그가 많이 생성되는 시스템의 경우, 주기적으로 이벤트 로그를 삭제한다거나 용량관리를 해 줘야 할 것이다. 주기적으로 이벤트 로그를 파일로 백업받는 방법을 소개하고자 한다.

dumpel.exe 라는 Resource Kit을 사용하게 되는데, Windows 2003은 기본적으로 설치되어 있고 ( C:\WINDOWS\MPSReports\Network\bin) Windows 2000은 아래 파일을 다운받아 설치하면 된다.


또는, 아래 MS 사이트에서 다운받아도 된다.
http://support.microsoft.com/kb/927229
http://download.microsoft.com/download/win2000platform/WebPacks/1.00.0.1/NT5/EN-US/Dumpel.exe


MS 기술사이트를 찾아보면 vb script를 이용해서, 로그를 저장하는 방법을 사용하는데, 더 번거로운 거 같아서, BAT 스크립트를 사용하는 방법을 써 보겠다.
vb script를 이용한 방법은 아래 MS 사이트를 참고하도록 한다.
http://support.microsoft.com/kb/602023/ko

bat script를 아래와 같이 작성한다. REM 은 주석 처리한 곳이다.

set dumpdate=%date:~0,4%
REM echo %dumpdate%

set dumpYEAR=%date:~2,2%
set dumpMONTH=%date:~5,2%
set dumpDAY=%date:~8,2%
set TaskDay=%dumpYEAR%%dumpMONTH%%dumpDAY%
REM echo %TaskDay%

set logSYS=SYS_%TaskDay%.txt
set logSEC=SEC_%TaskDay%.txt
set logAPP=APP_%TaskDay%.txt

REM -d 1 옵션은 명령실행시각을 기준으로 하루 전까지만의 로그를 가져온다.
REM 아래는 cd 명령으로 dumpel 실행파일이 있는 곳에서 실행하는 방법,
REM 그 다음은 실행파일의 경로를 직접 입력해서 실행.

REM cd "c:\Program Files\Resource Kit"
REM dumpel -f %logSEC% -l security -t -d 1
REM dumpel -f %logSYS% -l system -t -d 1

REM "c:\Program Files\Resource Kit\dumpel" -f %logSYS% -l system -t -d 1
REM "c:\Program Files\Resource Kit\dumpel" -f %logSEC% -l security -t -d 1
REM "c:\Program Files\Resource Kit\dumpel" -f %logAPP% -l application -t -d 1

REM 로그 저장파일의 위치를 지정하고 싶다면 아래와 같은 방식으로 수정한다.
"c:\Program Files\Resource Kit\dumpel" -l system -t -d 1 > d:\%logSYS%
"c:\Program Files\Resource Kit\dumpel" -l security -t -d 1 > d:\%logSEC%
"c:\Program Files\Resource Kit\dumpel" -l application -t -d 1 > d:\%logAPP%


위 스크립트 주석을 보면 대강 알 수 있을 것이기에 자세한 설명은 생략하고 dumpel.exe 의 옵션 사용에 대해서만 간단하게 설명하겠다.
-f 파일명 : 이벤트로그의 내용을 저장할 파일명을 지정. -f 옵션을 없애면 화면으로 출력한다.
-t : 파일에 저장 또는 출력할 때, 각 이벤트 로그 항목을 tab으로 구분한다.
-c : 파일에 저장 또는 출력할 때, 각 이벤트 로그 항목을 콤마(,)로 구분한다.
-d days : 실행하는 시점을 기준으로 몇일간의 이벤트로그를 가져올지 지정한다.
              -d 1 이라고 지정하고, 실행하는 시점이 4/16 14:00 일 때 4/15 14:00부터 지금까지 발생한
              이벤트 로그를 저장하게 된다.
-l event_name : 시스템 로그를 저장할 경우 -l system, 보안 로그를 저장할 경우 -l security, 어플리케이션 로그를 저장할 경우 -l application 이라고 지정한다.

이외에  수집할 로그에 대해 필요한 것만 가져오도록 필터를 거는 옵션 등이 있으나 여기서는 다루지 않겠다. 자세한 내용은 dumpel /? 를 실행하면 도움말이 나오니, 참고하도록 한다.

위 스크립트를 실행하면 아래와 같은 화면이 나온다.
사용자 삽입 이미지


스크립트 작성이 끝났으면, 스케쥴 등록 기능을 이용하여 Windows에 주기적으로 실행하도록 일정 등록을 하면 된다. 스케쥴 등록에 관한 것은 나중에 별도로 포스트 할 계획이다.

BAT 스크립트 파일을 첨부하니, 사용하실 분은 다운로드 하여 사용하시기 바란다.