為了快速找出系統紀錄內的重要資訊,本文將透過Syslog方式把Windows系統上的事件紀錄統一儲存到遠端的rsyslog伺服器,並藉由rsyslog伺服器將相關資訊儲存至MySQL資料庫,以達成中央控管紀錄的目標。
遇到系統問題時,有經驗的系統管理者第一時間都會想到查詢系統上的紀錄(Log)來釐清問題。更希望能有一個機制將主機上的紀錄統一儲存至單一的伺服器,以達到中央控管紀錄的功能,便於在發生系統問題時能更有效地查詢相關資訊。
對此,本文將介紹能夠將Windows系統上的事件紀錄(Event Log)透過Syslog的方式,統一儲存在遠端的Syslog伺服器,並利用Syslog伺服器將相關資訊儲存至MySQL資料庫。
相關的實作架構如圖1所示,所使用的套件則參考表1。
|
▲圖1 實作相關架構。 |
表1 實作所採用的套件
什麼是Syslog
Syslog又被稱為系統日誌,是一個可在網際網路協定(TCP/IP)中傳遞紀錄檔訊息的標準,它是一種主從式的架構(Client-Server)。
在實際運用上,客戶端可將系統主機上的紀錄轉換成對應的Syslog資訊,以TCP或UDP通訊協定傳遞(在預設的情況下,Syslog會以明碼的型式傳送)到遠端伺服器端,以完成集中保管紀錄資訊的目的。
基本上,Syslog會將紀錄資訊劃分為Facility(事件種類,主要在區分此紀錄為那一種事件所產生)和Level(嚴重程度,在於說明此事件的嚴重性),如圖2所示。其中常見的事件類型(Facility)如表2所示,而常見的嚴重程度(Level)說明,可參考表3。
|
▲圖2 Syslog會將紀錄資訊劃分為事件種類和嚴重程度。 |
表2 Syslog常見的事件類型
表3 Syslog常見的嚴重程度
在簡單說明Syslog事件的種類區分及嚴重性後,接下來講解Syslog所使用的格式,Syslog會將紀錄分成四個部分,如圖3所示,各欄位意義相關說明如下:
(1) 此欄位記錄事件發生的日期與時間
(2) 此欄位記錄產生Log紀錄的主機名稱
(3) 此欄位記錄產生Log紀錄的程式名稱及PID(Process ID)資訊
(4) 此欄位記錄詳細的Log資訊內容
|
▲圖3 Syslog將紀錄分成四個部分。 |
在簡單說明Syslog後,接著介紹Windo ws系統上的事件紀錄(Event Log)。