Azure 資源記錄

Azure 資源記錄是 平台記錄 ,可深入解析在 Azure 資源內執行的作業。 資源記錄的內容會因 Azure 服務和資源類型而有所不同。 預設不會收集資源記錄。 本文說明 每個 Azure 資源將資源記錄傳送至不同目的地所需的診斷設定

傳送至 Log Analytics 工作區

將資源記錄傳送至 Log Analytics 工作區,以啟用 Azure 監視器記錄的功能,您可以在其中:

  • 將資源記錄數據與 Azure 監視器所收集的其他監視數據相互關聯。
  • 將多個 Azure 資源、訂用帳戶和租用戶的記錄項目合併到一個位置,以便一起進行分析。
  • 使用記錄查詢來執行複雜的分析,並深入了解記錄數據。
  • 使用記錄搜尋警示搭配複雜的警示邏輯。

建立診斷設定 ,以將資源記錄傳送至 Log Analytics 工作區。 此數據會儲存在數據表中,如 Azure 監視器記錄的結構中所述。 資源記錄所使用的數據表取決於資源所使用的集合類型:

  • Azure 診斷:所有數據都會寫入 AzureDiagnostics 數據表。
  • 資源特定:數據會寫入每個資源類別的個別數據表。

特定資源

在此模式中,系統會針對診斷設定中選取的每個類別,建立所選工作區中的個別數據表。 我們建議使用此方法,因為它:

  • 可讓您更輕鬆地在記錄查詢中使用數據。
  • 提供更好的架構及其結構的可探索性。
  • 改善擷取延遲和查詢時間的效能。
  • 提供在特定數據表上授與 Azure 角色型訪問控制許可權的能力。

所有 Azure 服務最終都會移轉至資源特定的模式。

下列範例會建立三個數據表:

  • Service1AuditLogs

    資源提供者 類別 A B C
    服務 1 AuditLogs x1 y1 z1
    服務 1 AuditLogs x5 y5 z5
    ...
  • Service1ErrorLogs

    資源提供者 類別 D E F
    服務 1 ErrorLogs q1 w1 e1
    服務 1 ErrorLogs q2 w2 e2
    ...
  • Service2AuditLogs

    資源提供者 類別 G H I
    服務 2 AuditLogs j1 k1 l1
    服務 2 AuditLogs j3 k3 l3
    ...

Azure 診斷模式

在此模式中,來自任何診斷設定的所有數據都會收集在 AzureDiagnostics 數據表中。 大部分的 Azure 服務今天都會使用這個舊版方法。 由於多個資源類型會將數據傳送至相同的數據表,因此其架構是所收集之所有不同數據類型之架構的超集。 如需此數據表結構及其使用方式的詳細資訊,請參閱 AzureDiagnostics 參考

請考慮下列資料類型在相同工作區中收集診斷設定的範例:

  • 服務 1 的稽核記錄包含 A、B 和 C 資料行的架構
  • 服務 1 的錯誤記錄包含資料行 D、E 和 F 的架構
  • 服務 2 的稽核記錄包含 G、H 和 I 資料行的架構

AzureDiagnostics 資料表看起來像下列範例:

ResourceProvider 類別 A B C D E F G H I
Microsoft.Service1 AuditLogs x1 y1 z1
Microsoft.Service1 ErrorLogs q1 w1 e1
Microsoft.Service2 AuditLogs j1 k1 l1
Microsoft.Service1 ErrorLogs q2 w2 e2
Microsoft.Service2 AuditLogs j3 k3 l3
Microsoft.Service1 AuditLogs x5 y5 z5
...

選取收集模式

大部分的 Azure 資源都會以 Azure 診斷資源特定 模式將數據寫入工作區,而不需提供選擇。 如需詳細資訊,請參閱 Azure 資源記錄的常見和服務特定架構。

所有 Azure 服務最終都會使用資源特定的模式。 在此轉換中,某些資源可讓您在診斷設定中選取模式。 指定任何新診斷設定的資源特定模式,因為此模式可讓數據更容易管理。 它也可能有助於您稍後避免複雜的移轉。

Screenshot that shows the Diagnostics settings mode selector.

注意

如需使用 Azure Resource Manager 範本來設定收集模式的範例,請參閱 Azure 監視器中診斷設定的 Resource Manager 範本範例。

您可以將現有的診斷設定修改為資源特定模式。 在此情況下,已收集的數據會保留在數據表中 AzureDiagnostics ,直到根據工作區的保留設定移除為止。 專用數據表中會收集新的數據。 使用等位運算符來查詢這兩個數據表的數據。

請繼續觀看 Azure 更新 部落格,以瞭解支持資源特定模式的 Azure 服務公告。

傳送至 Azure 事件中樞

將資源記錄傳送至事件中樞,以將它們傳送到 Azure 外部。 例如,資源記錄可能會傳送至第三方 SIEM 或其他記錄分析解決方案。 來自事件中樞的資源記錄會以 JSON 格式使用,其中包含 records 每個承載中記錄的專案。 架構取決於資源類型,如 Azure 資源記錄的通用和服務特定架構中所述

下列範例輸出資料來自資源記錄 Azure 事件中樞:

{
    "records": [
        {
            "time": "2019-07-15T18:00:22.6235064Z",
            "workflowId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
            "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/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": "00000000-0000-0000-0000-000000000000",
                    "resourceGroupName": "JohnKemTest",
                    "workflowId": "243aac67fe904cf195d4a28297803785",
                    "workflowName": "JohnKemTestLA",
                    "runId": "08587330013509921957",
                    "location": "westus",
                    "actionName": "Send_email"
                },
                "correlation": {
                    "actionTrackingId": "29a9862f-969b-4c70-90c4-dfbdc814e413",
                    "clientTrackingId": "08587330013509921958"
                }
            }
        },
        {
            "time": "2019-07-15T18:01:15.7532989Z",
            "workflowId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
            "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/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": "00000000-0000-0000-0000-000000000000",
                    "resourceGroupName": "JohnKemTest",
                    "workflowId": "243aac67fe904cf195d4a28297803785",
                    "workflowName": "JohnKemTestLA",
                    "runId": "08587330012106702630",
                    "location": "westus",
                    "actionName": "Send_email"
                },
                "correlation": {
                    "actionTrackingId": "042fb72c-7bd4-439e-89eb-3cf4409d429e",
                    "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/00000000-0000-0000-0000-000000000000/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": "46cdbb41-cb9c-4f3d-a5b4-1d458d827ff1","category": "NetworkSecurityGroupRuleCounter","resourceId": "/SUBSCRIPTIONS/s1id1234-5679-0123-4567-890123456789/RESOURCEGROUPS/TESTRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/TESTNSG","operationName": "NetworkSecurityGroupCounters","properties": {"vnetResourceGuid": "{12345678-9012-3456-7890-123456789012}","subnetPrefix": "10.3.0.0/24","macAddress": "000123456789","ruleName": "/subscriptions/ s1id1234-5679-0123-4567-890123456789/resourceGroups/testresourcegroup/providers/Microsoft.Network/networkSecurityGroups/testnsg/securityRules/default-allow-rdp","direction": "In","type": "allow","matchedConnections": 1988}}

Azure 監視器合作夥伴整合

您也可以將資源記錄傳送給已完全整合到 Azure 中的合作夥伴解決方案。 如需這些解決方案的清單,以及如何設定這些解決方案的詳細資訊,請參閱 Azure 監視器合作夥伴整合

下一步