將 Azure 資源記錄傳送至 Log Analytics 工作區、事件中樞或 Azure 儲存體
Azure 資源記錄是 平台記錄 ,可深入解析在 Azure 資源中執行的作業。 每個資源類型的資源記錄內容都不同。 預設不會收集資源記錄。 若要收集資源記錄,您必須啟用和設定診斷設定或使用數據收集規則。 如需數據收集規則的詳細資訊,請參閱 Azure 監視器中的數據收集規則。 本文說明每個 Azure 資源將資源記錄傳送至 Log Analytics 工作區、事件中樞或 Azure 儲存體 所需的診斷設定。
傳送至 Log Analytics 工作區
將資源記錄傳送至 Log Analytics 工作區,以啟用 Azure 監視器記錄的功能,其中包括下列各項:
- 將資源記錄資料與 Azure 監視器所收集的其他監視資料相互關聯。
- 將多個 Azure 資源、訂用帳戶和租用戶的記錄項目合併至單一位置,以一起分析。
- 使用記錄查詢來執行複雜的分析,並獲得記錄資料的深度見解。
- 搭配複雜的警示邏輯使用記錄搜尋警示。
建立診斷設定以將資源記錄傳送至 Log Analytics 工作區。 此資料會儲存在資料表中,如 Azure 監視器記錄的結構中所述。 資源記錄所使用的數據表取決於資源類型和資源所使用的集合類型。 資源記錄有兩種類型的收集模式:
- Azure 診斷:所有資料都會寫入 AzureDiagnostics 資料表。
- 資源專屬:資料會針對資源的每個類別寫入個別的資料表。
特定資源
針對使用資源特定模式的記錄,系統會針對診斷設定中選取的每個記錄類別建立所選工作區中的個別數據表。 資源特定的記錄在 Azure 診斷記錄上具有下列優點:
- 在記錄查詢中使用資料時更方便。
- 對結構描述及其結構的探索能力更佳。
- 同時改善擷取延遲及查詢時間的效能。
- 提供在特定資料表上授與 Azure 角色型存取控制許可權的能力。
如需資源特定記錄和數據表的描述,請參閱 Azure 監視器支援的資源記錄類別
Azure 診斷模式
在 Azure 診斷模式中,所有來自任何診斷設定的數據都會收集在 AzureDiagnostics 數據表中。 此舊版方法目前由少數 Azure 服務使用。 因為多個資源類型會將資料傳送至相同的資料表,因此其結構描述是所收集的所有不同資料類型之結構描述的超集合。 若要取得此資料表結構的詳細資料,以及其如何與這個潛在的龐大資料行數量搭配運作,請參閱 AzureDiagnostics 參考。
AzureDiagnostics 數據表包含產生記錄的資源 resourceId、記錄的類別,以及產生記錄的時間,以及資源特定屬性。
選取收集模式
大部分的 Azure 資源都會在不提供選擇的情況下,以 Azure 診斷或資源專屬模式將資料寫入工作區。 如需詳細資訊,請參閱 Azure 資源記錄的通用和服務特定結構描述。
所有 Azure 服務最終都會使用資源特定模式。 在此轉換過程中,某些資源可讓您在診斷設定中選取模式。 因為資源專屬模式可讓資料更易於管理,請在任何新診斷設定中指定此模式。 這有助於在之後避免複雜的移轉作業。
注意
如需使用 Azure Resource Manager 範本設定收集模式的範例,請參閱 Azure 監視器中適用於診斷設定的 Resource Manager 範本範例。
您可以將現有的診斷設定修改為資源特定模式。 在此情況下,已收集的資料會保留在 AzureDiagnostics
資料表中,直到根據工作區的保留設定加以移除為止。 系統會在專用資料表中收集新資料。 使用 union 運算子來查詢這兩個資料表中的資料。
請持續關注 Azure 更新部落格,以取得支援資源專屬模式的 Azure 服務相關公告。
傳送至 Azure 事件中樞
將資源記錄傳送至事件中樞,以將它們傳送到 Azure 外部。 例如,資源記錄可能會傳送至第三方 SIEM 或其他記錄分析解決方案。 來自事件中樞的資源記錄會以 JSON 格式取用,其中會具備 records
元素,該元素會包含每個承載中的記錄。 結構描述會取決於資源類型,如 Azure 資源記錄的一般和服務特定結構描述中所述。
下列範例輸出資料來自資源記錄的 Azure 事件中樞:
{
"records": [
{
"time": "2019-07-15T18:00:22.6235064Z",
"workflowId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
"resourceId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA/RUNS/08587330013509921957/ACTIONS/SEND_EMAIL",
"category": "WorkflowRuntime",
"level": "Error",
"operationName": "Microsoft.Logic/workflows/workflowActionCompleted",
"properties": {
"$schema": "2016-04-01-preview",
"startTime": "2016-07-15T17:58:55.048482Z",
"endTime": "2016-07-15T18:00:22.4109204Z",
"status": "Failed",
"code": "BadGateway",
"resource": {
"subscriptionId": "AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E",
"resourceGroupName": "JohnKemTest",
"workflowId": "2222cccc-33dd-eeee-ff44-aaaaaa555555",
"workflowName": "JohnKemTestLA",
"runId": "08587330013509921957",
"location": "westus",
"actionName": "Send_email"
},
"correlation": {
"actionTrackingId": "3333dddd-44ee-ffff-aa55-bbbbbbbb6666",
"clientTrackingId": "08587330013509921958"
}
}
},
{
"time": "2019-07-15T18:01:15.7532989Z",
"workflowId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
"resourceId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA/RUNS/08587330012106702630/ACTIONS/SEND_EMAIL",
"category": "WorkflowRuntime",
"level": "Information",
"operationName": "Microsoft.Logic/workflows/workflowActionStarted",
"properties": {
"$schema": "2016-04-01-preview",
"startTime": "2016-07-15T18:01:15.5828115Z",
"status": "Running",
"resource": {
"subscriptionId": "AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E",
"resourceGroupName": "JohnKemTest",
"workflowId": "dddd3333-ee44-5555-66ff-777777aaaaaa",
"workflowName": "JohnKemTestLA",
"runId": "08587330012106702630",
"location": "westus",
"actionName": "Send_email"
},
"correlation": {
"actionTrackingId": "ffff5555-aa66-7777-88bb-999999cccccc",
"clientTrackingId": "08587330012106702632"
}
}
}
]
}
傳送到 Azure 儲存體
將資源記錄傳送至 Azure 儲存體以加以保留來進行封存。 建立診斷設定之後,便會在其中一個啟用的記錄類別中發生事件時,立即在儲存體帳戶中建立儲存體容器。
注意
封存的替代方式是將資源記錄傳送至 Log Analytics 工作區中的資料表,其為低成本、長期保留。
容器內的 Blob 會使用下列命名慣例:
insights-logs-{log category name}/resourceId=/SUBSCRIPTIONS/{subscription ID}/RESOURCEGROUPS/{resource group name}/PROVIDERS/{resource provider name}/{resource type}/{resource name}/y={four-digit numeric year}/m={two-digit numeric month}/d={two-digit numeric day}/h={two-digit 24-hour clock hour}/m=00/PT1H.json
例如,網路安全性群組的 Blob 可能具有類似下列的名稱:
insights-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/TESTRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUP/TESTNSG/y=2016/m=08/d=22/h=18/m=00/PT1H.json
個別 Pt1h.json blob 都包含 JSON 物件,其納入 blob URL 指定的小時內所接接收的記錄檔的事件。 在目前的一小時內,系統會在接收事件時將事件附加至 PT1H.json 檔案,不論事件是在何時產生。 URL 的分鐘值m=00
總是00
,因為 BLOB 是以每小時為基礎建立。
在 PT1H.json 檔案中,每個事件會以下列格式儲存。 它使用常見的最上層結構描述,但對於每個 Azure 服務而言都是唯一,如資源記錄結構描述中所述。
注意
無論記錄產生的時間為何,都會根據接收記錄的時間寫入 blob。 這代表指定的 blob 可包含 blob URL 指定小時以外的記錄資料。 資料來源 (如 Application Insights) 支援上傳過時的遙測,而 blob 則可包含過去 48 小時的資料。
在新一小時開始時,現有的記錄可能仍在寫入前一小時的 blob,而新的記錄會寫入新一小時的 blob。
{"time": "2016-07-01T00:00:37.2040000Z","systemId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1","category": "NetworkSecurityGroupRuleCounter","resourceId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/TESTRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/TESTNSG","operationName": "NetworkSecurityGroupCounters","properties": {"vnetResourceGuid": "{aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e}","subnetPrefix": "10.3.0.0/24","macAddress": "000123456789","ruleName": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testresourcegroup/providers/Microsoft.Network/networkSecurityGroups/testnsg/securityRules/default-allow-rdp","direction": "In","type": "allow","matchedConnections": 1988}}
Azure 監視器合作夥伴整合
資源記錄也可以傳送至完全整合至 Azure 的合作夥伴解決方案。 如需這些解決方案的清單,以及如何設定這些解決方案的詳細資料,請參閱 Azure 監視器合作夥伴整合。