Azure 監視器中 Log Analytics 代理程式的自訂記錄資料來源可讓您從 Windows 和 Linux 電腦上的文字檔收集事件。 許多應用程式將資訊記錄到文字檔,而不是標準記錄服務,例如 Windows 事件記錄檔或 Syslog。 收集資料之後,您可以將資料剖譯成查詢中的個別欄位,或在收集期間擷取資料至個別欄位。
這很重要
本文說明如何使用 Log Analytics 代理程式收集文字記錄。 如果您使用 Azure 監視器代理程式,請參閱使用 Azure 監視器代理程式收集文字記錄。
這很重要
舊版 Log Analytics 代理程式已於 2024 年 8 月 31 日取代。 Microsoft 將不再提供 Log Analytics 代理程式的任何支援。 如果您使用 Log Analytics 代理程式將資料內嵌至 Azure 監視器,請 立即移轉至 Azure 監視器代理程式。
要收集的日誌檔必須符合下列條件:
記錄檔必須每行有單一項目,或在每個項目開頭使用符合下列其中一種格式的時間戳記:
YYYY-MM-DD HH:MM:SS
M/D/YYYY HH:MM:SS 上午/下午
星期一 DD, YYYY HH:MM:SS
yyMMdd HH:mm:ss
ddMMyy HH:mm:ss
嗯,d,hh:mm:ss
dd/MMM/yyyy:HH:mm:ss zzz
yyyy-MM-ddTHH:mm:ssK記錄檔不得允許循環記錄。 此行為是日誌輪替,其中檔案會以新項目覆寫,或重新命名檔案,並重複使用相同的檔案名稱來繼續記錄。
記錄檔必須使用 ASCII 或 UTF-8 編碼。 不支援其他格式,例如 UTF-16。
針對 Linux,記錄中的時間戳記不支援時區轉換。
最佳實務是,記錄檔應包含建立記錄檔的日期和時間,以防止記錄輪替覆寫或重新命名。
備註
如果記錄檔中有重複的條目,Azure 監視器會收集這些條目。 產生的查詢結果將不一致。 篩選結果將顯示比結果計數更多的事件。 您必須驗證記錄檔,以判斷建立記錄檔的應用程式是否造成此行為。 如果可能,請先解決此問題,再建立自訂記錄收集定義。
Log Analytics 工作區支援下列限制:
- 只能建立 500 個自訂日誌。
- 資料表最多僅支援 500 個資料行。
- 直欄名稱的字元數上限為 500。
這很重要
自訂記錄收集需要寫入記錄檔的應用程式定期將記錄內容排清至磁碟。 這是因為自訂日誌收集依賴於所追蹤日誌檔的檔案系統變更通知。
定義自訂日誌表格
使用下列程序來定義自訂記錄表。 捲到本文的末尾以查看新增自訂日誌範例的教學。
開啟自訂記錄精靈
自訂記錄精靈會在 Azure 入口網站中執行,並可讓您定義要收集的新自訂記錄。
在 Azure 入口網站中,選取 Log Analytics 工作區> 您的工作區>表格。
選取 [ 建立 ],然後選取 [新增自訂記錄 (MMA 型)]。
依預設,所有組態變更都會自動推送至所有代理程式。 對於 Linux 代理程式,組態檔會傳送至 Fluentd 資料收集器。
上傳並剖析範例記錄
若要開始,請上傳自訂記錄的範例。 精靈會剖析並顯示此檔案中的項目,供您驗證。 Azure 監視器會使用您指定的分隔符號來識別每筆記錄。
換行是 預設定界字元,用於每行只有一個項目的日誌檔。 如果行以其中一種可用格式的日期和時間開頭,您可以指定 時間戳記 定界字元,以支援跨越多行的項目。
如果使用時間戳記分隔符號,儲存在 Azure Monitor 中的每筆記錄的 TimeGenerated 屬性將會填入該記錄檔中指定的日期和時間。 如果使用新的行界限符,則 TimeGenerated 會填入 Azure Monitor 收集記錄時的日期和時間。
選取 [瀏覽] ,然後瀏覽至範例檔案。 在某些瀏覽器中,此按鈕可能標示為 「選擇檔案 」。
選取 下一步。
「自訂記錄」精靈會上傳檔案,並列出它所識別的記錄。
變更用來識別新記錄的分隔符號。 選取最能識別記錄檔中記錄的分隔符號。
選取 下一步。
新增記錄收集路徑
您必須在代理程式上定義一或多個路徑,以找到自訂日誌。 您可以提供日誌檔的特定路徑和名稱,也可以指定名稱具有萬用字元的路徑。 此步驟支援應用程式在每天建立新檔案,或於檔案達到特定大小時建立新檔案。 您也可以為單一日誌檔提供多個路徑。
例如,應用程式可能會每天建立日誌檔,其名稱中包含日期,如 log20100316.txt中所示。 這類日誌的型樣可能是 log*.txt,它會套用至遵循應用程式命名配置的任何日誌檔。
下表提供指定不同記錄檔的有效模式範例。
| Description | 路徑 |
|---|---|
| Windows 代理程式上 C:\Logs 中副檔名 .txt 的所有檔案 | C:\Logs\*.txt |
| C:\Logs 中的所有檔案,其名稱以 log 開頭,並在 Windows 代理程式上以 .txt 副檔名開頭 | C:\Logs\log*.txt |
| Linux 代理程式上 /var/log/audit 中副檔名為 .txt 的所有檔案 | /var/log/audit/*.txt |
| /var/log/audit 中的所有檔案,其名稱以 log 開頭,並在 Linux 代理程式上以 .txt 副檔名開頭 | /var/log/audit/log*.txt |
- 選取 [Windows] 或 [Linux] 以指定您要新增的路徑格式。
- 輸入路徑並選取按鈕 + 。
- 對更多路徑重複此過程。
提供記錄的名稱和描述
您指定的名稱將用於所述的日誌類型。 它一律會以_CL結尾,以使它區分為自訂日誌。
- 輸入記錄的名稱。 尾碼 _CL 會自動提供。
- 新增選用的 說明。
- 選取 [ 下一步 ] 以儲存自訂記錄定義。
驗證是否正在收集自訂記錄
新自訂記錄的初始資料最多可能需要一小時的時間,才會出現在 Azure 監視器中。 Azure 監視器將會從您指定的路徑開始收集記錄,從您定義自訂記錄的時間點開始。 它不會保留您在自訂記錄建立期間上傳的項目。 它會收集其所找到的記錄檔中已有的項目。
Azure 監視器開始從自訂記錄收集之後,其記錄將可透過記錄查詢取得。 在查詢中使用您為自訂日誌提供的名稱作為 類型 。
備註
如果查詢中遺漏 RawData 屬性,您可能需要關閉並重新開啟瀏覽器。
剖析自訂記錄項目
整個記錄項目將儲存在名為 RawData 的單一屬性中。 您很可能會希望將每筆記錄項目中的不同資訊劃分為個別屬性。 如需將 RawData 剖析為多個屬性的選項,請參閱 Azure 監視器中的文字資料剖析。
刪除自訂日誌表格
請參閱 刪除表格。
數據採集
Azure 監視器大約每 5 分鐘從每個自訂日誌收集新條目。 代理程式會在從中收集的每一個日誌檔中記錄其位置。 如果代理程式離線一段時間,Azure 監視器會從上次中斷的位置收集專案,即使這些專案是在代理程式離線時建立的也一樣。
記錄項目的整個內容會寫入稱為 RawData 的單一屬性。 如需將每個匯入的日誌項目剖析為多個屬性的方法,請參閱 剖析 Azure Monitor 中的文字資料。
自訂日誌記錄屬性
自訂記錄記錄的類型具有您提供的記錄名稱和下表中的屬性。
| 房產 | Description |
|---|---|
| TimeGenerated | Azure 監視器收集記錄的日期和時間。 如果資料日誌使用以時間為基礎的分隔符號,則這是從條目收集的時間。 |
| SourceSystem | 收集記錄的專員類型。 OpsManager — Windows 代理程式,可選擇直接連線或使用 System Center Operations Manager Linux — 所有 Linux 代理程式 |
| 原始數據 | 收集的條目的全文。 您很可能會想要 將此資料剖解析為個別屬性。 |
| 管理群組名稱 | System Center Operations Manager 代理程式的管理群組名稱。 對於其他代理程式,此名稱是 AOI-<workspace ID>。 |
新增自訂日誌的範例逐步說明
下一節將逐步解說建立自訂日誌的範例。 所收集的範例日誌在每一行上都有一個項目,以日期和時間開頭,然後以逗點分隔的代碼、狀態和訊息欄位。 顯示數個範例項目。
2019-08-27 01:34:36 207,Success,Client 05a26a97-272a-4bc9-8f64-269d154b0e39 connected
2019-08-27 01:33:33 208,Warning,Client ec53d95c-1c88-41ae-8174-92104212de5d disconnected
2019-08-27 01:35:44 209,Success,Transaction 10d65890-b003-48f8-9cfc-9c74b51189c8 succeeded
2019-08-27 01:38:22 302,Error,Application could not connect to database
2019-08-27 01:31:34 303,Error,Application lost connection to database
上傳並剖析範例記錄
我們提供其中一個記錄檔,並可以看到它將收集的事件。 在此情況下,換行 是足夠的定界符號。 不過,如果日誌中的單一項目可以跨過多行,則需要使用一個時間戳記作為定界符號。
新增記錄收集路徑
記錄檔將位於 C:\MyApp\Logs 中。 每天都會建立一個新檔案,其名稱包含圖案 appYYYYMMDD.log中的日期。 此記錄的足夠模式是 C:\MyApp\Logs\*.log。
提供記錄的名稱和描述
我們使用 MyApp_CL 的名稱並輸入描述。
驗證是否正在收集自訂記錄
我們使用簡單的 MyApp_CL 查詢來傳回所收集日誌中的所有記錄。
自訂日誌的替代方案
雖然如果您的資料符合列出的條件,自訂記錄很有用,但在某些情況下,您需要其他策略:
- 資料不符合必要的結構,例如時間戳記採用不同的格式。
- 記錄檔不符合檔案編碼或不支援的資料夾結構等需求。
- 資料在收集之前需要進行預處理或篩選。
如果無法使用自訂記錄收集資料,請考慮下列替代策略:
- 使用自訂腳本或其他方法,將資料寫入 Azure 監視器所收集的 Windows 事件 或 Syslog。
- 使用 HTTP 資料收集器 API 將資料直接傳送至 Azure 監視器。
後續步驟
- 請參閱 剖析 Azure Monitor 中的文字資料,了解如何將每個匯入的日誌項目剖析為多個屬性的方法。
- 瞭解 記錄查詢 ,以分析從資料來源和解決方案收集的資料。