2012/08/27

Windows eventlog 集中管理

很早之前就一直在尋找Windows eventLog 管理機制,能自動蒐集、統一管理Windows Server 所有eventLog紀錄,終於自力完成了。

功能:
在同一部電腦上蒐集所有主機eventLOG,並依照日期存檔後清除(保持淨空)

環境:Windows Server 2008 R2+ 2003 + 2000 +Win7 + XP

做法:dumpel+VBS+批次檔

前置工具:dumpel
Dump Event Log 命令列工具會將本機系統或遠端系統的事件記錄檔傾印到以 Tab 分隔的文字檔。
這個工具可以用來篩選或排除特定事件類型。如果要下載這個工具,請按一下下列連結:
http://download.microsoft.com/download/win2000platform/WebPacks/1.00.0.1/NT5/EN-US/Dumpel.exe

以上檔案下載後需要安裝,並確認路徑,完成後準備以下步驟

步驟一:把各台主機eventLog抓出來轉存,指令:
mkdir DirectoryName
dumpel -s IP -l system -f DirectoryName/system.log
dumpel -s IP -l application -f DirectoryName/application.log
dumpel -s IP -l security -f DirectoryName/security.log
%說明%:建立目錄之後,以dumpel 抓取遠端IP內的system +application +security 等三種eventLog存檔到該目錄

步驟二:以VBS清除各台主機內的eventLog,指令:
(第一行的一小點為本機,可以改為IP、電腦名稱,目的即為遠方電腦)
strComputer= "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Backup)}!\\" & _
strComputer & "\root\cimv2")
dim mylogs(3)
mylogs(1)="application"
mylogs(2)="system"
mylogs(3)="security"
for Each logs in mylogs
Set colLogFiles=objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile where LogFileName='"&logs&"'")
For Each objLogfile in colLogFiles
objLogFile.ClearEventLog()
Next
Next

%注意%:依照步驟先轉存好才執行步驟二,步驟錯誤LOG將被清除而沒有存檔

補充說明:
1. 以批次檔自動建立當天日期的目錄:
….mkdir %DATE:~0,4%%DATE:~5,2%%DATE:~8,2%

2.參考:
微軟的scripts範例:http://www.microsoft.com/china/technet/community/scriptcenter/default.mspx

http://jiemelody.blog.51cto.com/405459/331906

沒有留言:

張貼留言