Leo Yeh's Blog

SAS 系統管理 (108)

教學目標

初步了解 SAS 平台中日誌事件的基本概念。

重點概念

首先許多企業在選擇導入解決方案時,解決方案的日誌事件維運管理機制會是非常關鍵的考量因素,而在 SAS 9 平台中網站應用程式伺服器日誌事件主要以 Log4j 為主,而有許多非網站應用程式伺服器日誌事件相關的記錄檔則預設不是以 Log4j 為主,相關伺服器的日誌事件相關的記錄檔位置請參考下表。

伺服器 記錄檔位置
SAS Metadata Server Lev1/SASMeta/MetadataServer/Logs
SAS Object Spawner Lev1/ObjectSpawner/Logs
SAS OLAP Server Lev1/SASApp/OLAPServer/Logs
SAS Pooled Workspace Server Lev1/SASApp/PooledWorkspaceServer/Logs
SAS Stored Process Server Lev1/SASApp/StoredProcessServer/Logs
SAS/SHARE Server Lev1/ShareServer/Logs
SAS/CONNECT spawner Lev1/ConnectSpawner/Logs
SAS DATA Step Batch Server Lev1/SASApp/BatchServer/Logs
SAS Web InfrastructurePlatform Data Server Lev1/WebInfrastructurePlatformDataServer/Logs

接著 SAS 日誌記錄工具是一個有彈性的框架,我們能夠透過收集,分類和過濾將日誌事件進行不同的輸出,同時日誌事件支援診斷問題,效能和容量管理以及稽核和法規遵循的客製參數設定,我們能夠透過分層命名系統對日誌事件進行分類,以利我們能夠產生廣泛或細化等級別的日誌事件,以及將日誌事件輸出至不同目標,像是固定檔案,滾動檔案,作業系統工具,客戶端應用程式,資料庫資料表,訊息佇列和自定義的 Java 類別,而對於每個輸出目標,我們能夠指定以下記錄檔工具的元件,分別為:

  1. 日誌事件的輸出等級,像是 TRACE、DEBUG、INFO、WARN、ERROR 和 FATAL 。
  2. 日誌事件的資訊格式,像是資料類型,資料順序以及資料格式。
  3. 日誌事件的標準過濾,像是診斷等級別和資訊內容。

此外我們更能夠動態調整記錄等級別,無需啟動和停止程序,以及透過應用程式回應測量 (Application Response Measurement, ARM) 產生與效能相關的日誌事件。

再來若要使用 SAS 日誌記錄工具,則我們必須設定日誌的記錄環境,主要有以下三步驟,分別為:

  1. 我們能夠透過設定 XML 檔案或使用SAS 程式語言元素來定義日誌記錄的設定,若執行計劃部署,則會為 SAS 伺服器提供日誌記錄設定檔案。
  2. 我們若要使用設定檔案,請指定 LOGCONFIGLOC = system 選項以啟用日誌記錄,若執行計劃部署,則此系統選項將包含在 SAS 伺服器中的設定檔案中。
  3. 我們若要客製化程式,則可以透過日誌記錄工具輸出不同日誌事件的格式,以及不同輸出方式,像是以不同日期或以檔案大小切檔。

而當我們的日誌記錄環境設定之後,SAS 日誌記錄工具將會開始處理以下步驟,分別為:

  1. SAS 程序發出日誌事件,每個事件皆會包括以下屬性,分別為訊息類別的名稱、診斷級別以及描述事件內容的資訊。
  2. 日誌記錄工具接收日誌事件,並且根據事件的名稱屬性確定要將其分配給哪個記錄器。
  3. 日誌事件的等級別與日誌記錄設定中為記錄器指定的門檻值進行比較,若事件的等級等於或高於指定的門檻值,則繼續處理,反之低於門檻值,則忽略該事件。

當完成以上步驟之後,日誌事件會分配給日誌記錄器和其日誌記錄設定中的 Appender 設定進行比較,若事件的等級等於或高於指定的門檻值,則繼續處理,反之低於門檻值,則忽略該事件,以及若 Appender 設定包含過濾器,則將事件與過濾條件進行比較,並且根據比較結果,處理繼續或停止。當比較完事件的等級和過濾條件之後,就會根據 Appender 設定中定義的規範將事件寫入輸出目標,所謂規範主要包括模式佈局,日誌資料夾,日誌檔案名,滾動策略,區域設置和編碼等參數設定。

最後對於每個伺服器皆提供一個名為 logconfig.xml 的日誌記錄設定檔案,該檔案位於伺服器的設定資料夾中,請注意若非必要請勿使用 TRACE 和 DEBUG 級別,因為這些日誌記錄等級會影響效能。此外企業客戶會期望針對記錄檔能夠提供以不同日期或以檔案大小切檔的功能,此時我們能夠透過 RollingFileAppender 將訊息寫入指定路徑中的指定檔案,並且在滿足指定條件時開始將訊息寫入具有不同名稱的新檔案,其主要有三種設定,分別為每天滾動到新日誌檔案、新連線開始時轉到新日誌檔案以及當文件到達到特定大小時轉到新日誌檔案。

相關資源

⬅️ Go back