windows server eventlog syslog mysql 伺服器 log 日誌

微軟系統日誌集中控管 自建資料庫式Log伺服器

2016-02-23
為了快速找出系統紀錄內的重要資訊,本文將透過Syslog方式把Windows系統上的事件紀錄統一儲存到遠端的rsyslog伺服器,並藉由rsyslog伺服器將相關資訊儲存至MySQL資料庫,以達成中央控管紀錄的目標。
微軟事件紀錄介紹

一般而言,各項的主機設備的Log紀錄,大都會遵循Syslog的標準,微軟當然也不例外。基本上,微軟系統所記錄的Log紀錄(又稱為事件紀錄,如下簡稱為事件紀錄)大致遵循Syslog的標準,但有稍許的擴充。

其中,最大的特色在於微軟針對每種事件紀錄均有定義一個Event ID,亦即何種編號代表什麼樣的事件,例如Event ID為4624則表示使用者登入,但依據作業系統的種類,可能會有不同的代碼。

基本上,微軟將事件紀錄大致分為應用程式(程式)事件、安全性相關事件、設定事件以及系統事件等類型。

1. 應用程式(程式)事件

主要記錄使用應用程式時所發生的事件。以嚴重性來做區分,可區分為「錯誤」、「警告」、「資訊」等級。

「錯誤」代表嚴重等級最高,例如資料遺失、程式發生無預期的錯誤等事件。「警告」的嚴重等級次高,主要在描述後續可能會發生問題的事件。而「資訊」僅是在描述相關程式的操作情形,例如成功地啟動程式或載入驅動程式等相關資訊。

2. 安全性相關事件

主要用來記錄稽核所需要的事件,例如使用者嘗試登入系統成功或失敗的相關資訊。

3. 設定事件

如果系統被設定為網域控制站的電腦,就會額外記錄此類型的事件紀錄。

4. 系統事件

用來記錄由Windows系統服務(Service)所發生的事件,以嚴重性來區分,同樣可區分為錯誤、警告、資訊等級。

一般而言,可經由系統上的事件檢視器來查看相關的事件資訊,如圖4所示。


▲圖4 在事件檢視器中查看事件資訊。

安裝rsyslog與MySQL

這裡將利用rsyslog結合MySQL,接收來自Windows系統的事件紀錄,並將相關的事件紀錄儲存在MySQL資料庫內。

首先,安裝rsyslog來當作Syslog伺服器,由於已編譯完成的套件通常都不會支援MySQL資料庫的功能,因此將利用原始碼編譯的方式編譯出一個支援MySQL資料庫的rsyslog伺服器,且由於相容性的原因考量,在此選用6.6.0版本。

在編譯rsyslog伺服器之前,必須先安裝libestr和libee程式庫。在安裝好所需的程式庫後,接下來至rsyslog官方網站下載6.6.0的原始碼。

下載並解壓縮後,執行以下的指令編譯rsyslog伺服器(#之後為註解):


在安裝成功之後,緊接著建立相關的資料庫。

可以依照「rsyslog<原始碼目錄>/plugins/ommysql」之下createDB.sql檔案內的資訊,來建立相關的資料庫表格。至此,rsyslog的安裝工作即告完成。

接下來,簡單說明rsyslog相關的架構及組態檔的設定,圖5所示為rsyslog的架構。


▲圖5 rsyslog架構示意圖。

rsyslog架構說明

基本上,rsyslog整個架構劃分為Input(輸入模組)、Parser(過濾模組)及Output(輸出模組),以下分別加以介紹。

Input(輸入模組)
設定接收Syslog的來源,例如可從系統上的紀錄檔案內或從網路連線(Socket)中取得。在本文中會使用到的輸入模組說明,如表4所示。

表4 輸入模組說明

Parser(過濾模組)
可由使用者自行定義相關的過濾條件,從繁雜的紀錄檔中取得符合的資訊。在此並不使用過濾模組的功能。

Output(輸出模組)
可將Syslog資訊輸出到其他媒介上。在此將設定輸出到MySQL資料庫,所使用的如表5所示。

表5 輸出模組說明


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!