Azure 監視器中的 Log Analytics 資料匯出規則

Log Analytics 工作區中的資料匯出規則允許您依選定的資料表持續匯出資料。 當數據到達 Azure 監視器 時,匯出到 Azure Blob 儲存體 帳戶或 Azure 事件中樞。 本文提供此功能的詳細資訊及設定工作區資料匯出規則的步驟。

概觀

Log Analytics 中的資料可在工作區中定義的保留期間內存取。 可用於 Azure 監視器和 Azure 服務中提供的各種體驗。 在部分案例時,您必須使用其他工具:

  • 防竄改儲存體合規性: 資料在擷取至 Log Analytics 後無法變更,但可以清除。 匯出到設定有 不可變性政策 的儲存帳號,以保護資料被竄改。
  • 整合 Azure 服務和其他工具:資料送達 Azure 監視器並在其中進行處理後,匯出至事件中樞。
  • 審計與安全資料的長期保存: 匯出到工作區區域內的儲存帳號。 可透過使用 Azure 儲存體 的冗餘選項(包括 GRS 和 GZRS)將資料複製到其他區域。

在 Log Analytics 工作區設定資料匯出規則後,規則中資料表的新資料會在抵達時,從 Azure 監視器管線匯出至您的儲存體帳戶或事件中樞。 資料匯出流量是在 Azure 骨幹網路中,不會離開 Azure 網路。

顯示資料匯出流程的圖表。

資料會在沒有篩選的情況下匯出。 例如,設定 SecurityEvent 資料表的資料匯出規則後,傳送至 SecurityEvent 資料表的所有資料會從設定時間開始匯出。 或者,透過在工作區設定 轉換 來過濾或修改匯出的資料。 轉換會在傳入資料傳送至 Log Analytics 工作區和匯出目的地之前套用。

其他匯出選項

Log Analytics 資料匯出規則會持續匯出傳送到您的 Log Analytics 工作區的資料。 其他針對這些特定情境的匯出資料選項:

  • 若要將單一資料表的查詢與時間範圍的歷史紀錄匯出至 Azure Blob 儲存體,請執行匯出工作(預覽)。 匯出工作專為大規模按需匯出歷史資料而設計,並以 Parquet 格式撰寫結果。
  • 如果 Azure 資源已透過其診斷記錄設定將記錄傳送至 Log Analytics 工作區,請考慮直接更新 Azure 資源的診斷設定,以新增目的地,而不是定期使用數據匯出。 相較於數據匯出,此方法的延遲較低,但不會傳送歷程記錄數據。
  • 根據您使用 Log Analytics 查詢 API 所定義的查詢記錄,安排數據匯出的時間表。 使用 Azure Data Factory、Azure Functions 或 Azure Logic Apps 等來協調工作區中的查詢,並將資料匯出至目的地。 此方法類似於資料匯出功能,但可用來透過篩選和彙總,從工作區匯出歷程記錄資料。 此方法受記錄查詢限制規範,且不適用縮放。 欲了解更多資訊,請參閱使用 Logic Apps 將資料從 Log Analytics 工作區匯出至儲存帳戶。
  • 使用 PowerShell 指令碼以使用單次匯出至本機電腦。 如需詳細資訊,請參閱 Invoke-AzOperationalInsightsQueryExport。

所需權限

動作 所需權限
建立或更新數據匯出規則 例如,Microsoft.OperationalInsights/workspaces/dataexports/write所提供的 Log Analytics 工作區 權限
刪除資料匯出規則 例如,Microsoft.OperationalInsights/workspaces/dataexports/delete所提供的 Log Analytics 工作區 權限
匯出到儲存帳戶 例如,由內建的儲存體帳戶參與者角色所提供,對儲存體帳戶具有 Microsoft.Storage/storageAccounts/blobServices/containers/write 權限。
匯出至事件中樞 Microsoft.EventHub/namespaces/eventhubs/write、Microsoft.EventHub/namespaces/eventhubs/messages/write、Microsoft.EventHub/namespaces/authorizationRules/listkeys/action 事件中心的權限,例如由 Azure 事件中心資料擁有者內建角色所提供的權限。
查詢資料表中的記錄 例如,Microsoft.OperationalInsights/workspaces/query/<table>/read所提供的 Log Analytics 工作區 權限
資料表中的查詢記錄 (資料表動作) 例如,Microsoft.OperationalInsights/workspaces/tables/query/read所提供的 Log Analytics 工作區 權限

Considerations

  • 你無法匯出使用 HTTP Data Collector API 建立的自訂日誌,包括 Log Analytics 代理所處理的文字日誌。 你可以匯出使用 資料收集規則建立的自訂日誌,包括文字式日誌。
  • 數據匯出將逐漸支援更多數據表。 請參閱 「無支援表格 」部分。
  • 每個工作區最多可啟用 10 條規則,且每條規則可包含多個資料表。
  • 儲存體帳戶必須在工作區的所有規則之間保持唯一。
  • 支持的數據表計劃為 Analytics 和 Basic。 不支援輔助方案。
  • 目的地必須與 Log Analytics 工作區位於相同的區域。
  • 不支援匯出到高級儲存帳號。

資料完整性

數據匯出已經過優化,能夠將大量數據移動到您的目的地。 若目的地的規模或可用性不足,重試程序將持續長達 12 小時,可能導致部分匯出紀錄被重複。 請遵循 儲存體帳戶 和 Event Hubs 目的地的建議,以提高可靠性。 如果目的地在重試期間之後仍然無法使用,則會捨棄資料。

如需有關目的地限制和建議警示的詳細資訊,請參閱建立或更新資料匯出規則。

計價模式

資料匯出費用會根據 JSON 格式資料匯出至目的地的位元組數目,以 GB (10^9 個位元組) 為單位來計算。 Azure 監視器 Logs 中報告的資料表大小比匯出目的地的資料大小還小。 此差異源自以下因素:

  • Azure 監視器 日誌會在可計費大小計算中排除某些欄位。
  • 匯出到儲存裝置的資料是未壓縮的。
  • 匯出資料中每個記錄都會附有屬性名稱,以確保每筆記錄都是有效的 JSON。
  • 當實際記錄較小型時,中繼資料便是顯著的額外負荷,讓相對大小的增加更加明顯。

數據匯出大小計算無法透過工作區查詢來完成,因為大小計算不包含 JSON 格式額外負荷。 比較 Azure 監視器記錄中回報的大小與儲存體帳戶中顯示的大小時,預期會有顯著差異。 在 Azure 監視器 日誌中,小型事件會省略如屬性名稱等中繼資料,而儲存區塊則包含中繼資料與未壓縮的 JSON,使記錄體積大幅增加。

為了獲得準確估算,可以將代表性匯出到測試的 blob 容器,並使用這個範例 PowerShell 腳本來計算 blob 容器的總計費大小來衡量結果。 目前不收取導出至主權雲端的費用。 啟用之前會傳送通知。

資料匯出規則會依 Log Analytics 資料匯出 計量單位計費。 相同的計量也用於匯出作業(預覽)。 要在發票或成本分析中區分這兩者,請檢查 「附加資訊 」欄位,該欄位標註資料匯出規則 ExportType:Data export rule。

如需詳細資訊,包括資料匯出計費時間表,請參閱 Azure 監視器定價。 資料匯出的計費已在 2023 年 10 月初啟用。

匯出目的地

在工作區中建立匯出規則前,資料匯出目的地必須可供使用。 目的地可以位於不同的訂閱方案中。 使用 Azure Lighthouse,您也可以將資料傳送至另一個 Microsoft Entra 租戶中的目的地。

記憶體帳戶

透過使用沒有其他非監控資料的現有儲存帳號,避免因延遲或速率超過而導致的儲存入侵失敗。 此方法有助於您更好地控制資料存取,並提升資料匯出的可靠性。

若要將資料傳送到不可變儲存帳號,請依照 Set 和 Manage Azure Blob 儲存體 的不可變性政策設定該儲存帳號的不可變政策。 您必須遵循本文中所有的步驟,包括啟用受保護的附加 Blob 寫入。

儲存需求 詳細資料
帳戶層級 StorageV1 或更新版本。 Premium 不支援。
區域 和 Log Analytics 工作區是同一區域。 使用 Azure 儲存體 冗餘選項(GRS、GZRS)進行跨區域複製。
容器命名 每個資料表有一個容器,名稱為 am- 後接資料表名稱(例如 am-SecurityEvent)。
資料夾結構 5 分鐘資料夾: WorkspaceResourceId=/subscriptions/.../y=<year>/m=<month>/d=<day>/h=<hour>/m=<minute>/PT05M.json
Blob 格式 JSON Lines,以換行符號分隔,沒有外層陣列。
追加限制 每個 Blob 可寫入 50,000 次。 其他 blob 檔案已新增為 PT05M_#.json。

附註

附加至 Blob 會根據 "TimeGenerated" 欄位來寫入,並會在接收來源資料時發生。 延遲抵達 Azure 監視器或在目的地節流之後重試的資料會根據其 TimeGenerated 寫入 Blob。

儲存帳號中 blob 的格式是以 JSON 行為單位,每筆紀錄都以新行分隔,沒有外層記錄陣列,也沒有逗號。

顯示 Blob 中資料格式的螢幕擷取畫面。

事件中樞

避免使用具有現有非監視數據的事件中樞。 此最佳做法有助於防止因延遲或超出速率限制而導致的流量入口失敗。

資料到達 Azure 監視器並匯出至工作區區域的目的地後,即傳送至事件中樞。 藉由在規則中提供不同的 Event Hub name ,建立多個導出規則至相同的事件中樞命名空間。 當未提供 Event Hub name 時,系統會為您匯出的資料表建立一個預設的事件中樞,並將其命名為 am- 加上資料表的名稱。 例如,資料表 SecurityEvent 會傳送至名為 am-SecurityEvent 的事件中樞。

「基本」和「標準」命名空間層支援的事件中樞數目為 10。 當您要將超過 10 個資料表匯出至這些層級時,可以將資料表分割成多個匯出規則,將其匯出至不同的事件中樞命名空間,或者提供單一事件中樞名稱以將所有資料表匯出至該命名空間。

附註

  • 基本事件中樞的命名空間層級有限。 其支援較低的事件大小,而且沒有自動擴充選項可自動擴大和增加輸送量單位數目。 由於工作區的資料量會隨著時間增加,因此需要對事件中樞進行擴展,建議使用啟用自動擴充功能的「標準」、「進階」或「專用」事件中樞層級。 如需詳細資訊,請參閱自動擴大 Azure 事件中樞輸送量單位。
  • 你不能使用 壓縮事件集線器 ,因為它要求訊息有分割鍵,而 Azure 監視器 沒有包含分割鍵。
  • 啟用虛擬網路時,資料匯出無法傳送至事件中樞資源。 您必須選取 [允許受信任服務清單中的 Azure 服務存取此儲存器帳戶] 核取方塊,以略過事件中樞中的此防火牆設定,進而授與事件中樞的存取權。

查詢匯出的資料

將資料從工作區匯出至儲存體帳戶,有助於符合 概觀 中所述的各種案例需求,且可供能夠從儲存體帳戶讀取 Blob 的工具使用。 下列方法可讓您使用 Log Analytics 查詢語言來查詢資料,這與 Azure Data Explorer 的查詢語言相同。

啟用資料匯出

若要啟用 Log Analytics 資料匯出,請執行下列步驟。

建立資料匯出規則後, 監控目的地 以確保匯出作業的可靠。

註冊資源提供者

若要啟用 Log Analytics 資料匯出,請在訂閱中登錄 Azure 資源提供者 Microsoft.Insights。

此資源提供者可能已為大多數 Azure 監視器使用者註冊。 若要確認,請移至 Azure 入口網站中的訂閱。 選取您的訂閱,然後選取功能表 [設定] 區段底下的 [資源提供者]。 尋找 Microsoft.Insights。 如果其狀態為已登錄,即已經登錄。 如果不是,請選取 [註冊] 來進行註冊。

您也可以使用任何可用的方法登錄資源提供者,如 Azure 資源提供者和類型所述。 以下 Azure CLI 範例使用了該az provider register指令。

az provider register --namespace Microsoft.Insights

以下 Azure PowerShell 範例使用 Register-AzResourceProvider cmdlet。

Register-AzResourceProvider -ProviderNamespace Microsoft.Insights

允許信任的 Microsoft 服務

如果你設定儲存帳號允許從特定網路存取,你需要新增例外讓 Azure 監視器 寫入該帳號。 在您儲存體帳戶的 防火牆與虛擬網路 中,選取 允許受信任服務清單上的 Azure 服務存取此儲存體帳戶。

顯示 [在信任的服務清單上允許 Azure 服務] 選項的螢幕擷取畫面。

監視目的地

重要

出口目的地有限制。 監控這些問題,以減少節流、故障和延遲。 欲了解更多資訊,請參閱 儲存帳號可擴展 性與 事件中心命名空間配額。

下列計量適用於資料匯出作業和警示

度量名稱 描述
已匯出的位元組 在所選時間範圍內,從 Log Analytics 工作區匯出到目的地的位元組總數。 匯出的資料大小是匯出 JSON 格式資料的位元組數目。 1 GB = 10^9 個位元組。
匯出失敗 在所選時間範圍內,從 Log Analytics 工作區到目的地的匯出失敗要求總數。 此數目包含目的地資源節流、禁止存取錯誤或任何伺服器錯誤所造成的失敗匯出嘗試。 重試程式會處理失敗的嘗試,而且數位不是遺漏數據的指示。
輸出紀錄 在所選時間範圍內,從 Log Analytics 工作區匯出的記錄總數。 此數目會計算成功結束之作業的記錄。

監控儲存帳號

  1. 用獨立的儲存帳戶來匯出。

  2. 設定計量的警示:

    Scope 計量命名空間 計量 彙總 臨界值
    儲存體名稱 帳戶 輸入 總和 每個警示評估期間最大輸入量的 80%。 例如,美國西部常規用途 v2 的限制為 60 Gbps。 每 5 分鐘評估期間的警示閾值為 1676 GiB。
  3. 警示補救動作:

    • 用一個獨立的儲存帳號來匯出,不要和非監控資料分享。
    • Azure 儲存體 Standard 帳戶可依要求支援更高的輸入限制。 若要要求提高,請連絡 Azure 支援。
    • 將資料表分散到更多儲存帳戶之間。

監視事件中樞

  1. 設定計量上的警示:

    Scope 計量命名空間 計量 彙總 臨界值
    命名空間名稱 事件中樞標準計量 傳入位元組 總和 每個警示評估期間最大輸入量的 80%。 例如,每個單位 (TU 或 PU) 的限制為 1 MB/秒,並使用五個單位。 每 5 分鐘評估期間的閾值是 228 MiB。
    命名空間名稱 事件中樞標準計量 收到的請求 Count 每個警示評估期間最大事件量的 80%。 例如,每個單位 (TU 或 PU) 的限制為 1,000/秒,並使用五個單位。 每 5 分鐘評估期間的閾值是 1,200,000。
    命名空間名稱 事件中樞標準計量 超出配額的錯誤 Count 介於 1% 的要求。 例如,每 5 分鐘的要求數是 600,000。 每 5 分鐘評估期間的閾值是 6,000。
  2. 警示補救動作:

    • 請使用單獨的事件中樞命名空間來匯出,不與非監控資料共用。
    • 設定自動擴充功能,自動擴大並增加輸送量單位的數目,滿足使用量需求。
    • 確認傳輸單位的增加以適應資料量。
    • 在更多命名空間之間分割資料表。
    • 針對較高的輸送量,使用「進階」或「專用」層。

建立或更新資料匯出規則

資料匯出規則會定義資料匯出的目的地和資料表。 在匯出作業起始之前,規則佈建大約需要 30 分鐘的時間。 資料匯出規則注意事項:

  • 儲存體帳戶必須在工作區的所有規則之間保持唯一。
  • 當您傳送至個別的事件中樞時,多個規則可以使用相同的事件中樞命名空間。
  • 匯出到儲存帳號:每個資料表會在儲存帳號中建立獨立的容器。
  • 匯出至事件中樞:如果未提供事件中樞名稱,即會為每個資料表建立個別的事件中樞。 「基本」和「標準」命名空間層支援的事件中樞數目為 10。 當您匯出 10 個以上的資料表至這些命名空間層時,若要匯出所有資料表,您可以將資料表分割成多個匯出規則至不同的事件中樞命名空間,或在規則中提供事件中樞名稱。
  1. 從 Azure 入口網站,前往你的 Log Analytics 工作區。

  2. 在左側選單的 設定中,選擇 規則。

  3. 選擇 「資料匯出規則 」標籤。

  4. 選取窗格頂端的 [新增匯出規則]。

    顯示資料匯出輸入點的螢幕擷取畫面。

  5. 遵循步驟,然後選取 [建立]。 只有包含資料的資料表會顯示在 [來源] 索引標籤下。

    匯出規則設定的螢幕擷取畫面。

檢視資料匯出規則設定

  1. 從 Azure 入口網站,前往你的 Log Analytics 工作區。

  2. 在左側選單的 設定中,選擇 規則。

  3. 選擇 「資料匯出規則 」標籤,以查看工作區中的所有匯出規則。

    顯示 [資料匯出] 畫面的螢幕擷取畫面。

  4. 選取設定檢視的規則。

    資料匯出規則檢視的螢幕擷取畫面。

停用或更新匯出規則

關閉匯出規則以暫停匯出一段時間,例如在進行測試期間。

  1. 從 Azure 入口網站,前往你的 Log Analytics 工作區。
  2. 在左側選單的 設定中,選擇 規則。
  3. 選擇 「資料匯出規則 」標籤。
  4. 選取 [狀態] 切換開關以停用或啟用匯出規則。

顯示正在停用資料匯出規則的螢幕擷取畫面。

刪除匯出規則

  1. 從 Azure 入口網站,前往你的 Log Analytics 工作區。
  2. 在左側選單的 設定中,選擇 規則。
  3. 選擇 「資料匯出規則 」標籤。
  4. 選取規則右側的省略符號,然後選取 [刪除]。

顯示正在刪除資料匯出規則的螢幕擷取畫面。

檢視工作區中所有的資料匯出規則

  1. 從 Azure 入口網站,前往你的 Log Analytics 工作區。
  2. 在左側選單的 設定中,選擇 規則。
  3. 選擇 「資料匯出規則 」標籤,以查看工作區中的所有匯出規則。

顯示資料匯出規則檢視的螢幕擷取畫面。

不支援的資料表

附註

如果資料匯出規則包含不支援的資料表,雖然設定會成功,但不會匯出該資料表的資料。 支持數據表時,數據匯出會隨即啟動。 我們正在新增更多資料表的支援。 請定期檢查這篇文章。

 Table  限制
警示 部分支援。 不支援 Zabbix 警示的資料輸入。
警報歷史
AzureActivity 部分支援。 匯出中完全支援從 Log Analytics 代理程式或 Azure 監視器代理程式傳出的資料。 透過診斷延伸模組代理程式傳送的資料會透過儲存體收集。 匯出中不支援此路徑。
AzureDiagnostics
ConfigurationChange 部分支援。 部分資料擷取是透過不支援匯出的內部服務。 匯出中目前遺漏此部分。
配置數據 部分支援。 部分資料擷取是透過不支援匯出的內部服務。 匯出中目前遺漏此部分。
DatabricksDatabricksSQL
DatabricksSQL
DeviceAppLaunch
裝置行事曆
DeviceConnectSession
DeviceEtw 部分支援。 部分資料擷取是透過不支援匯出的內部服務。 匯出中目前遺漏此部分。
DeviceHeartbeat
ETWEvent 部分支援。 匯出中完全支援從 Log Analytics 代理程式或 Azure 監視器代理程式傳出的資料。 透過診斷延伸模組代理程式傳送的資料會透過儲存體收集。 匯出中不支援此路徑。
事件 部分支援。 匯出中完全支援從 Log Analytics 代理程式或 Azure 監視器代理程式傳出的資料。 透過診斷延伸模組代理程式傳送的資料會透過儲存體收集。 匯出中不支援此路徑。
網路會話
作業 部分支援。 部分資料擷取是透過不支援匯出的內部服務。 匯出中目前遺漏此部分。
保護狀態
SecurityEvent 部分支援。 部分資料擷取是透過不支援匯出的內部服務。 匯出中目前遺漏此部分。
ServiceFabricOperationalEvent 部分支援。 匯出中完全支援從 Log Analytics 代理程式或 Azure 監視器代理程式傳出的資料。 透過診斷延伸模組代理程式傳送的資料會透過儲存體收集。 匯出中不支援此路徑。
ServiceFabricReliableActorEvent 部分支援。 匯出中完全支援從 Log Analytics 代理程式或 Azure 監視器代理程式傳出的資料。 透過診斷延伸模組代理程式傳送的資料會透過儲存體收集。 匯出中不支援此路徑。
ServiceFabricReliableServiceEvent 部分支援。 匯出中完全支援從 Log Analytics 代理程式或 Azure 監視器代理程式傳出的資料。 透過診斷延伸模組代理程式傳送的資料會透過儲存體收集。 匯出中不支援此路徑。
Syslog 部分支援。 部分資料擷取是透過不支援匯出的內部服務。 匯出中目前遺漏此部分。
W3CIISLog 部分支援。 匯出中完全支援從 Log Analytics 代理程式或 Azure 監視器代理程式傳出的資料。 透過診斷延伸模組代理程式傳送的資料會透過儲存體收集。 匯出中不支援此路徑。

從 Azure Data Explorer 查詢匯出的資料