分享方式:


Azure 監視器中資料收集規則的結構

資料收集規則 (DCR) 是一組指示,決定如何收集和處理向 Azure 監視器傳送的遙測。 Azure 監視器將建立及管理一些 DCR。 本文說明 DCR 的 JSON 結構,以在您需要直接使用這些 DCR 的情況下建立和編輯它們。

屬性

下表描述 DCR 最上層的屬性。

屬性 說明
description 使用者所定義之數據收集規則的選擇性描述。
dataCollectionEndpointId 如果您在建立 DCR 時提供資料收集端點的資源識別碼 則為 DCR 所使用的資源識別碼。 此屬性不存在於不使用 DCE 的 DCR 中。
endpoints1 包含 logsIngestion DCR 端點的 和 metricsIngestion URL。 只有在 DCR 中的 屬性為 Direct時,才會kind自動建立本節及其屬性。
immutableId 資料收集規則的唯一識別碼。 建立 DCR 時,會自動建立此屬性及其值。
kind 指定 DCR 所使用的資料收集案例。 以下將進一步說明此參數。

1此屬性未針對 2024 年 3 月 31 日之前建立的 DCR 建立。 在此日期之前建立的 DCR 需要資料收集端點 (DCE) 和要指定的 dataCollectionEndpointId 屬性。 如果您要使用這些內嵌 DCE,則必須建立新的 DCR。

種類

kind DCR 中的 屬性會指定 DCR 所使用的集合類型。 每種 DCR 都有不同的結構和屬性。

下表列出不同類型的 DCR 及其詳細數據。

種類 描述
Direct 使用記錄擷取 API 進行直接擷取。 只有在使用這種值時,才會為 DCR 建立端點。
AgentDirectToStore 將收集的數據傳送至 Azure 儲存體 和事件中樞。
AgentSettings 設定 Azure 監視器代理程序參數。
Linux 從 Linux 機器收集事件和效能數據。
PlatformTelemetry 匯出平臺計量。
Windows 從 Windows 電腦收集事件和效能數據。
WorkspaceTransforms 工作區轉換 DCR。 此 DCR 不包含輸入資料流。

DCR 數據流概觀

下圖顯示 DCR 的基本流程。 下列各節將說明每個元件。

此圖說明 DCR 不同區段之間的關聯性。

輸入資料流

DCR 的輸入數據流區段會定義所收集的傳入數據。 根據特定的數據收集案例,有兩種類型的傳入數據流。 大部分的數據收集案例都會使用其中一個輸入數據流,有些則可能會同時使用這兩個數據流。

注意

工作區轉換 DCR 沒有輸入數據流。

輸入資料流 描述
dataSources 已知數據類型。 這通常是由 Azure 監視器代理程式處理,並使用已知數據類型傳遞至 Azure 監視器的數據。
streamDeclarations 必須在 DCR 中定義的自訂數據。

從記錄擷取 API 傳送的資料會搭配傳入資料的架構使用 streamDeclaration 。 這是因為 API 會傳送可具有任何架構的自定義數據。

AMA 中的文字記錄是需要 dataSourcesstreamDeclarations的數據收集範例。 數據源包含組態

資料來源

數據源是監視數據的唯一來源,每個數據源都有自己的公開數據格式和方法。 每個數據源類型都有一組唯一的參數,必須為每個數據源設定。 數據源傳回的數據通常是已知的類型,因此不需要在 DCR 中定義架構。

例如,使用 Azure 監視器代理程式從 VM 收集的事件和效能數據,請使用 和 performanceCounterswindowsEventLogs數據源。 您可以指定您想要收集的事件和性能計數器準則,但不需要定義數據本身的結構,因為這是潛在傳入數據的已知架構。

Common parameters

所有數據源類型都會共用下列常見參數。

參數 描述
name 用來識別 DCR 中數據源的名稱。
streams 數據源將收集的數據流清單。 如果這是標準資料類型,例如 Windows 事件,則資料流的格式會是 Microsoft-<TableName>。 如果是自定義類型,則會以窗體形式顯示 Custom-<TableName>

有效的數據源類型

下表列出目前可用的資料來源類型。

資料來源類型 描述 資料流 參數
eventHub 來自 Azure 事件中樞的數據。 自訂1 consumerGroup - 要從中收集的事件中樞取用者群組。
iisLogs 來自 Windows 電腦的 IIS 記錄 Microsoft-W3CIISLog logDirectories - IIS 記錄儲存在客戶端的目錄。
logFiles 虛擬機上的文字或 json 記錄 自訂1 filePatterns - 要從用戶端收集記錄檔的資料夾和檔案模式。
format - jsontext
performanceCounters Windows 和 Linux 虛擬機器的效能計數器 Microsoft-Perf
Microsoft-InsightsMetrics
samplingFrequencyInSeconds - 應取樣效能數據的頻率。
counterSpecifiers - 應收集的物件和計數器。
prometheusForwarder 從 Kubernetes 叢集收集的 Prometheus 數據。 Microsoft-PrometheusMetrics streams - 要收集的數據流
labelIncludeFilter - 標籤包含篩選清單做為名稱/值組。 目前僅支援 「microsoft_metrics_include_label」。
syslog 在 Linux 虛擬機器上的 Syslog 事件 Microsoft-Syslog facilityNames - 收集的設施
logLevels - 要收集的記錄層級
windowsEventLogs 虛擬機器上的 Windows 事件記錄檔 Microsoft-Event xPathQueries - XPaths,指定應收集之事件的準則。
extension Azure 監視器代理程式所使用的擴充功能型數據源。 依擴充功能而異 extensionName - 延伸模組的名稱
extensionSettings - 延伸模組所需之每個設定的值

1 這些數據源同時使用數據源和數據流宣告,因為它們收集的數據架構可能會有所不同。 數據源中使用的數據流應該是數據流宣告中定義的自定義數據流。

數據流宣告

傳送至Log Analytics工作區之不同類型的資料宣告。 每個資料流都是物件,其索引鍵代表資料流名稱,開頭必須是 Custom- 。 資料流包含一份最上層屬性的完整清單,這些屬性包含在要傳送的 JSON 資料中。 您傳送至端點的資料型態不必符合目的地資料表的資料型態。 但在最上層輸入資料上的轉換輸出必須符合目的地型態。

資料類型

您可以指派給屬性的可能資料類型是:

  • string
  • int
  • long
  • real
  • boolean
  • dynamic
  • datetime.

目的地

destinations 段包含將傳送數據的每個目的地專案。 這些目的地會與 區段中的 dataFlows 輸入數據流相符。

Common parameters

參數 描述
name 用來識別區段中目的地 dataSources 的名稱。

有效的目的地

下表列出目前可用的目的地。

Destination 描述 必要參數
logAnalytics Log Analytics 工作區 workspaceResourceId - 工作區的資源識別碼。
workspaceID - 工作區的識別碼

這隻會指定工作區,而不是將傳送數據的數據表。 如果是已知的目的地,則不需要指定任何數據表。 針對自定義數據表,數據表是在數據源中指定。
azureMonitorMetrics Azure 監視器計量 不需要設定,因為訂用帳戶只有單一計量存放區。
storageTablesDirect Azure 資料表儲存體 storageAccountResourceId - 記憶體帳戶的資源識別碼
tableName - 資料表的名稱
storageBlobsDirect Azure Blob 儲存體 storageAccountResourceId - 記憶體帳戶的資源識別碼
containerName - Blob 容器的名稱
eventHubsDirect 事件中樞 eventHubsDirect - 事件中樞的資源標識碼。

重要

一個資料流只能傳送至 DCR 中的一個 Log Analytics 工作區。 如果項目使用相同工作區中不同的資料表,單一資料流可以有多個 dataFlow 項目。 如果您需要將資料從單一資料流傳送至多個 Log Analytics 工作區,請為每個工作區建立個別的 DCR。

資料流程

數據流會比對輸入數據流與目的地。 每個數據源可以選擇性地指定轉換,在某些情況下,會在Log Analytics工作區中指定特定的數據表。

數據流屬性

區段 描述
streams 輸入數據流區段中定義的一或多個數據流。 如果想要將多個資料來源傳送至相同的目的地,您可以將多個資料流包含在單一資料流程中。 只有在資料流程包含轉換時,才使用單一資料流。 當您想要將特定資料來源傳送至相同 Log Analytics 工作區中的多個資料表時,多個資料流程也可以使用單一資料流。
destinations 上述 destinations 一節中的一或多個目的地。 多路連接案例允許多個目的地。
transformKql 套用至傳入資料流的選擇性轉換。 轉換必須了解傳入資料的結構描述,以及以目標資料表結構描述中的輸出資料。 如果您使用轉換,則資料流程應只使用單一資料流。
outputStream 描述要將資料傳送至 destination 屬性下指定工作區中的哪個資料表。 當數據擷取至標準數據表,或Custom-[tableName]將數據內嵌至自定義數據表時,的值outputStream具有 格式Microsoft-[tableName]。 每個資料流只允許一個目的地。

此屬性不會用於來自 Azure 監視器的已知資料來源,例如事件和效能資料,因為會將這些資料傳送至預先定義的資料表。

下一步

概述資料收集規則和建立這些規則的方法