共用方式為


傳送 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 服務最終都會使用資源特定模式。 在此轉換過程中,某些資源可讓您在診斷設定中選取模式。 因為資源專屬模式可讓資料更易於管理,請在任何新診斷設定中指定此模式。 這有助於在之後避免複雜的移轉作業。

顯示診斷設定模式選取器的螢幕擷取畫面。

注意

如需使用 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/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 監視器合作夥伴整合

下一步