Azure 監視器中資料收集規則的結構
資料收集規則 (DCR) 是一組指示,決定如何收集和處理向 Azure 監視器傳送的遙測。 Azure 監視器將建立及管理一些 DCR。 本文說明 DCR 的 JSON 結構,以在您需要直接使用這些 DCR 的情況下建立和編輯它們。
- 請參閱 Azure 監視器中的建立和編輯資料收集規則 (DCR),了解如何使用此處所述 JSON 的詳細資訊。
- 請參閱範例資料收集規則 (DCR),以取得不同案例的範例 DCR。
屬性
下表描述 DCR 最上層的屬性。
屬性 | 說明 |
---|---|
description |
使用者所定義之數據收集規則的選擇性描述。 |
dataCollectionEndpointId |
如果您在建立 DCR 時提供資料收集端點的資源識別碼 , 則為 DCR 所使用的資源識別碼。 此屬性不存在於不使用 DCE 的 DCR 中。 |
endpoints 1 |
包含 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 沒有輸入數據流。
輸入資料流 | 描述 |
---|---|
dataSources |
已知數據類型。 這通常是由 Azure 監視器代理程式處理,並使用已知數據類型傳遞至 Azure 監視器的數據。 |
streamDeclarations |
必須在 DCR 中定義的自訂數據。 |
從記錄擷取 API 傳送的資料會搭配傳入資料的架構使用 streamDeclaration
。 這是因為 API 會傳送可具有任何架構的自定義數據。
AMA 中的文字記錄是需要 dataSources
和 streamDeclarations
的數據收集範例。 數據源包含組態
資料來源
數據源是監視數據的唯一來源,每個數據源都有自己的公開數據格式和方法。 每個數據源類型都有一組唯一的參數,必須為每個數據源設定。 數據源傳回的數據通常是已知的類型,因此不需要在 DCR 中定義架構。
例如,使用 Azure 監視器代理程式從 VM 收集的事件和效能數據,請使用 和 performanceCounters
等windowsEventLogs
數據源。 您可以指定您想要收集的事件和性能計數器準則,但不需要定義數據本身的結構,因為這是潛在傳入數據的已知架構。
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 - json 或 text |
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 監視器的已知資料來源,例如事件和效能資料,因為會將這些資料傳送至預先定義的資料表。 |