Windows 事件紀錄的轉送、分析管理與報表寄送 (上)

系統發生問題的當下第一件事情就是查閱系統的事件紀錄,從應用程式、安全性至系統都有完整的訊息可以查閱。一般來說,事件紀錄中的訊息很多,且難以有效率的進行查閱與稽核,大多數還是使用 MMC 主控台中的 "篩選" 進行事件的過濾。不過這只是針對一台伺服器進行查閱,當伺服器數量一多時,以前傳統的做法就是用遠端桌面一台一台的去查閱,更聰明點則是用 MMC 遠端連接到各 SERVER 瀏覽,而當要查閱歷史紀錄時又是一個費時的開始。


適用系統範圍:
事件收集電腦 – Windows Vista SP1 or Higher, Windows 2008 All Version
事件轉送電腦 – Windows XP SP2 or Higher, Windows 2003 R2 or Higher, Windows Vista SP1 or Higher, Windows 2008 All Version


系統發生問題的當下第一件事就是查閱系統的事件紀錄,從應用程式、安全性至系統都有完整的訊息可以查閱。一般來說,事件紀錄中的訊息很多,且難以有效率的進行查閱與稽核,大多數還是使用 MMC 主控台中的 "篩選" 進行事件的過濾。不過這只是針對一台伺服器進行查閱,當伺服器數量一多時,以前傳統的做法就是用遠端桌面一台一台的去查閱,更聰明點則是用 MMC 遠端連接到各 SERVER 瀏覽,而當要查閱歷史紀錄時又是一個費時的開始。

基於 "Smart Work" 的原則與宗旨,我們可以利用更 EASY 的處理法進行分析:將事件紀錄集中至一台伺服器上進行分析與管理。

下圖是 TigerLin 的 AD環境,需求為:

  1. DCServer OS 為 W2K8 DataCenter x64,此伺服器為 收集事件紀錄 用之 SERVER
  2. TigerLin-Vista 必需將事件轉送至 DCServer
  3. VM-PHPTest  ( Hyper-V 虛擬化) 必需將事件轉送至 DCServer
  4. 在 DCServer 上建立事件訂閱進行事件蒐集
  5. DCServer 除了收集事件紀錄外,每日 00:00 時需將前一天之事件紀錄分析並處理成報表寄送至系統管理群組之信箱
  6. 除此之外,須將每日分析報表複製一份至儲存設備以供備查

事件轉送網域示意圖

本篇實作文分為上下兩篇,在此先將流程 1~4 過程實作 
 

流程一:將 DCServer 設定為事件紀錄收集電腦

  • 在事件紀錄收集電腦上,需要先將 [Windows Event Collector] 服務設定為 "自動延遲啟動"
    將Windows Event Collector服務設定為 "自動延遲啟動" 

    也可用以下指令設定該服務 --
    wecutil qc

     
  • 而在 Windows 2008 中,也可在事件檢視器的左邊項目中點選 "訂閱" 即可開啟此服務。
    Windows 2008 事件檢視器 MMC

 

流程二:將 TigerLin-Vista 設定事件轉送處理

  • 在事件紀錄轉送電腦上,需要先將 [Windows Remote management] 服務設定為 "自動延遲啟動"‧請以系統管理員身分進入 Command Mode,並輸入 winrm quickconfig,提示會說明 winrm 是利用 HTTP 通道,在此處輸入 “Y”時除了會將服務設定為延遲啟動外,也會在防火牆自動新增一項例外。此處的例外只套用在網域與設定檔中,外部的連接一樣是無法瀏覽。詳細內容可至 [具有進階安全性的 Windows 防火牆] 瀏覽。
  • 將事件紀錄收集電腦的網域帳戶或電腦帳戶加入至本機的 [Event Log Readers] 群組,這樣才可正確的將事件成功轉送
    其中 “PTITAS\W2K8-EVENTCT” 是用來收集事件的 SERVER
    Event Log Readers 群組成員 

    也可使用以下指令快速加入 --
    net localgroup "Event Log Readers" "domain admins@ptitas.net" /add

 

流程三:將 VM-PHPTest 設定事件轉送處理

  • 在 Windows XP 與 Windows 2003 中要可成功的轉送事件,需要先安裝 WS-Management 1.1 才可設定轉送功能。請先下載安裝正確的版本。
  • 安裝完畢後,輸入 winrm quickconfig 即可完成設定。此處絕對要注意!! XP 與 2003 的設定雖然會在防火牆開啟一個例外,但是並不會限定於網域或私人設定檔。換言之,外部網路也可存取到 HTTP 80 的通道。如有需要請記得在防火牆中的規則指定領域,才可減少漏洞與風險。
    指令領域範圍

 

流程四:在事件收集伺服器上建立事件訂閱進行事件蒐集

  • 在事件蒐集電腦上,開啟事件檢視器,並在左邊清單中點選訂閱,按下滑鼠右鍵 => 建立訂閱
    建立訂閱項目 
     
  • 輸入訂閱相關資訊,建議這邊不要偷懶寫清楚一點,以利後續維護,接下來的設定關西到事件訂閱的正確性,請仔細閱讀 ^^
     訂閱內容詳細說明

    訂閱類型有何不同:
    收集器起始 -- 由收集電腦向轉送電腦擷取資料。可以想像成是 SQL Client (收集電腦) 向 SQL Server (轉送電腦) 下查詢語法要資料
    來源電腦起始 -- 經由某些設定讓轉送電腦主動聯絡收集電腦將事件拉(Pull) 至收集電腦。

     
  • 選取該訂閱所要蒐集的目標轉寄電腦,在網域中的電腦都可被加入,加入後可按下右邊的 [測試] 檢查是否可連線成功
    加入網域電腦

     
  • 選取要訂閱的事件類別,測試訂閱以 “應用程式” 來進行測試
    訂閱事件類別 
     
  • 進階設定中可選擇是要以 "電腦帳戶" 或是 "指定的網域帳戶" 進行事件抓取,在前置作業中 TigerLin 有將電腦加入  "EVENT LOG READERS" 的群組,所以在此用電腦帳戶即可。如果考慮更高的安全性可以建立一個專門讀取 LOG 的帳戶進行訂閱。
    進階訂閱設定

    事件傳遞最佳化有何不同:
    標準 -- 預設每 15 分鐘同步
    最低頻寬 -- 預設每 360 分鐘 (六小時) 同步
    減少延遲 -- 預設為 30 秒同步

     
  • 稍待一下之後即可到 "轉送的事件" 中看到轉送的事件了,這樣就設定成功了~image

 

TigerLin 的小撇步

  • 設定收集電腦指令 "wecutil qc" 中間會有需要確認的對話過程,只要將指令改成 "wecutil qc -q" 即可將預設選項都  "YES"
  • 設定轉送電腦指令 "winrm quickconfig" 也可用 "winrm quickconfig -q" 進行預設選項 "YES"
  • 大量部屬時可別忘了 psExecUSSF 這兩個好工具。我們可以這樣做:
  1. 使用 USSF 找出 WS-Management 1.1 的 Slient Install 參數
  2. 先將 WS-Management 1.1 複製到要佈署的機器中
  3. 使用 PsExec 執行安裝,並同時執行 "winrm quickconfig -q"。
  4. 使用 net 指令是無法將 "電腦帳戶" 加入群組的,但 net 指令支援加入群組。山不轉路轉,我們可在 AD 新增一個群組,群組中可包含網域帳戶與電腦帳戶,如此一來就可使用 PsExec 執行 net localgroup "Event Log Readers" GroupName@Domain.com /add 的指令了
  • Windows Vista 以下是沒有 "Event Log Viewer" 的群組,在 TigerLin 的測試過程中是用 Domain Admins 才可成功。所以要從 VISTA 以下的電腦蒐集事件則必須使用指定帳戶進行蒐集。
  • 如要轉送安全性事件,預設是會發生錯誤而無法蒐集:

    ----------------------------------------------
    [ROOM-VISTA.ptitas.net] - 錯誤 - 上次重試時間: 2009/1/29 上午 01:59:01. 代碼 (0x3AED): <f:ProviderFault provider="Windows 遠端管理的 Event collector 外掛程式 " path="%systemroot%\system32\wevtfwd.dll" xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault"><t:ProviderError xmlns:t="http://schemas.microsoft.com/wbem/wsman/1/windows/EventLog">Windows Event Forward Plugin failed to create subscription.</t:ProviderError></f:ProviderFault>  下次重試時間: 2009/1/29 上午 02:04:01.
    ----------------------------------------------

    其發生原因經過多次的實驗與追查發現,Windows的安全性紀錄真的是 "很安全",連預設的權限都不一樣。安全性的LOG在預設是無法經由遠端存取,如真的要將安全性進行轉送,除了必須使用 Administrator 的權限蒐集外,還必需參照 KB323076 的步驟才可轉送安全性紀錄。

參考連結:
KB323076 http://support.microsoft.com/kb/323076
WS-Management 1.1 http://www.microsoft.com/downloads/details.aspx?FamilyID=845289CA-16CC-4C73-8934-DD46B5ED1D33&displaylang=zh-tw
MSDN - System Error Codes (12000-15999) http://msdn.microsoft.com/en-us/library/ms681384(VS.85).aspx
Windows Remote Management Reference http://msdn.microsoft.com/en-us/library/aa384466(VS.85).aspx
Technet - Create a New Subscription http://technet.microsoft.com/en-us/library/cc722010.aspx

如果覺得這篇文章對你有所幫助,可以透過 Paypal 支持作者唷~