准备对存档到存储帐户的 Azure Monitor 平台日志的格式更改

警告

如果您使用诊断设置将 Azure 资源日志或指标发送到存储帐户,或者使用日志配置文件将活动日志发送到存储帐户,那么存储帐户中的数据格式在 2018 年11月1日已更改为 JSON Lines。 以下说明描述了影响以及如何更新工具以处理新格式。

更改内容

Azure Monitor 提供了一项功能,使你能够将资源日志和活动日志发送到 Azure 存储帐户、事件中心命名空间或 Azure Monitor 中的 Log Analytics 工作区。 为了解决系统性能问题, 2018 年 11 月 1 日午夜 12:00 UTC ,日志数据发送到 Blob 存储的格式已更改。 如果有从 Blob 存储中读取数据的工具,则需要更新工具以了解新的数据格式。

  • 在 2018 年 11 月 1 日星期四午夜 12:00 UTC,blob 格式更改为 JSON 行。 这意味着每个记录都将用换行符分隔,没有外部记录数组,JSON 记录之间没有逗号。
  • 针对所有订阅的所有诊断设置一次性更改了 Blob 格式。 为 11 月 1 日发出的第一个 PT1H.json 文件使用此新格式。 Blob 和容器名称保持不变。
  • 在 11 月 1 日之前设置诊断设置将继续以当前格式发出数据,直到 11 月 1 日为止。
  • 此更改一次性发生在所有公有云区域中。 更改不会发生在由世纪互联运营的 Microsoft Azure、Azure 德国或 Azure 政府云。
  • 此更改会影响以下数据类型:
  • 此更改不会影响:
    • 网络流日志
    • Azure 服务日志尚未通过 Azure Monitor 提供(例如 Azure 应用服务资源日志、存储分析日志)
    • 将 Azure 资源日志和活动日志路由到其他目标(事件中心、Log Analytics)

如何查看你是否受到影响

仅当发生以下更改时,才会受到此更改的影响:

  1. 使用诊断设置将日志数据发送到 Azure 存储帐户,以及
  2. 具有依赖于存储中这些日志的 JSON 结构的工具。

若要确定是否具有将数据发送到 Azure 存储帐户的诊断设置,可以导航到门户的 “监视 ”部分,单击“ 诊断设置”,并识别已将 诊断状态 设置为 “已启用”的任何资源:

Azure Monitor 诊断设置窗格

如果诊断状态设置为启用,则该资源上有激活的诊断设置。 单击资源以查看是否有任何诊断设置将数据发送到存储帐户:

已启用存储帐户

如果确实有资源使用这些资源诊断设置将数据发送到存储帐户,该存储帐户中的数据格式将受到此更改的影响。 除非你具有从这些存储帐户中运行的自定义工具,否则格式更改不会影响你。

格式更改的详细信息

Azure blob 存储中 PT1H.json 文件的当前格式使用 JSON 记录数组。 下面是 KeyVault 日志文件的示例:

{
    "records": [
        {
            "time": "2016-01-05T01:32:01.2691226Z",
            "resourceId": "/SUBSCRIPTIONS/361DA5D4-A47A-4C79-AFDD-XXXXXXXXXXXX/RESOURCEGROUPS/CONTOSOGROUP/PROVIDERS/MICROSOFT.KEYVAULT/VAULTS/CONTOSOKEYVAULT",
            "operationName": "VaultGet",
            "operationVersion": "2015-06-01",
            "category": "AuditEvent",
            "resultType": "Success",
            "resultSignature": "OK",
            "resultDescription": "",
            "durationMs": "78",
            "callerIpAddress": "104.40.82.76",
            "correlationId": "",
            "identity": {
                "claim": {
                    "http://schemas.microsoft.com/identity/claims/objectidentifier": "d9da5048-2737-4770-bd64-XXXXXXXXXXXX",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn": "live.com#username@outlook.com",
                    "appid": "1950a258-227b-4e31-a9cf-XXXXXXXXXXXX"
                }
            },
            "properties": {
                "clientInfo": "azure-resource-manager/2.0",
                "requestUri": "https://control-prod-wus.vaultcore.azure.net/subscriptions/361da5d4-a47a-4c79-afdd-XXXXXXXXXXXX/resourcegroups/contosoresourcegroup/providers/Microsoft.KeyVault/vaults/contosokeyvault?api-version=2015-06-01",
                "id": "https://contosokeyvault.vault.azure.net/",
                "httpStatusCode": 200
            }
        },
        {
            "time": "2016-01-05T01:33:56.5264523Z",
            "resourceId": "/SUBSCRIPTIONS/361DA5D4-A47A-4C79-AFDD-XXXXXXXXXXXX/RESOURCEGROUPS/CONTOSOGROUP/PROVIDERS/MICROSOFT.KEYVAULT/VAULTS/CONTOSOKEYVAULT",
            "operationName": "VaultGet",
            "operationVersion": "2015-06-01",
            "category": "AuditEvent",
            "resultType": "Success",
            "resultSignature": "OK",
            "resultDescription": "",
            "durationMs": "83",
            "callerIpAddress": "104.40.82.76",
            "correlationId": "",
            "identity": {
                "claim": {
                    "http://schemas.microsoft.com/identity/claims/objectidentifier": "d9da5048-2737-4770-bd64-XXXXXXXXXXXX",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn": "live.com#username@outlook.com",
                    "appid": "1950a258-227b-4e31-a9cf-XXXXXXXXXXXX"
                }
            },
            "properties": {
                "clientInfo": "azure-resource-manager/2.0",
                "requestUri": "https://control-prod-wus.vaultcore.azure.net/subscriptions/361da5d4-a47a-4c79-afdd-XXXXXXXXXXXX/resourcegroups/contosoresourcegroup/providers/Microsoft.KeyVault/vaults/contosokeyvault?api-version=2015-06-01",
                "id": "https://contosokeyvault.vault.azure.net/",
                "httpStatusCode": 200
            }
        }
    ]
}

新格式使用 JSON 行,其中每个事件都是一行,换行符指示新事件。 下面是更改后 PT1H.json 文件中上述示例的外观:

{"time": "2016-01-05T01:32:01.2691226Z","resourceId": "/SUBSCRIPTIONS/361DA5D4-A47A-4C79-AFDD-XXXXXXXXXXXX/RESOURCEGROUPS/CONTOSOGROUP/PROVIDERS/MICROSOFT.KEYVAULT/VAULTS/CONTOSOKEYVAULT","operationName": "VaultGet","operationVersion": "2015-06-01","category": "AuditEvent","resultType": "Success","resultSignature": "OK","resultDescription": "","durationMs": "78","callerIpAddress": "104.40.82.76","correlationId": "","identity": {"claim": {"http://schemas.microsoft.com/identity/claims/objectidentifier": "d9da5048-2737-4770-bd64-XXXXXXXXXXXX","http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn": "live.com#username@outlook.com","appid": "1950a258-227b-4e31-a9cf-XXXXXXXXXXXX"}},"properties": {"clientInfo": "azure-resource-manager/2.0","requestUri": "https://control-prod-wus.vaultcore.azure.net/subscriptions/361da5d4-a47a-4c79-afdd-XXXXXXXXXXXX/resourcegroups/contosoresourcegroup/providers/Microsoft.KeyVault/vaults/contosokeyvault?api-version=2015-06-01","id": "https://contosokeyvault.vault.azure.net/","httpStatusCode": 200}}
{"time": "2016-01-05T01:33:56.5264523Z","resourceId": "/SUBSCRIPTIONS/361DA5D4-A47A-4C79-AFDD-XXXXXXXXXXXX/RESOURCEGROUPS/CONTOSOGROUP/PROVIDERS/MICROSOFT.KEYVAULT/VAULTS/CONTOSOKEYVAULT","operationName": "VaultGet","operationVersion": "2015-06-01","category": "AuditEvent","resultType": "Success","resultSignature": "OK","resultDescription": "","durationMs": "83","callerIpAddress": "104.40.82.76","correlationId": "","identity": {"claim": {"http://schemas.microsoft.com/identity/claims/objectidentifier": "d9da5048-2737-4770-bd64-XXXXXXXXXXXX","http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn": "live.com#username@outlook.com","appid": "1950a258-227b-4e31-a9cf-XXXXXXXXXXXX"}},"properties": {"clientInfo": "azure-resource-manager/2.0","requestUri": "https://control-prod-wus.vaultcore.azure.net/subscriptions/361da5d4-a47a-4c79-afdd-XXXXXXXXXXXX/resourcegroups/contosoresourcegroup/providers/Microsoft.KeyVault/vaults/contosokeyvault?api-version=2015-06-01","id": "https://contosokeyvault.vault.azure.net/","httpStatusCode": 200}}

此新格式使 Azure Monitor 能够使用 追加 blob 推送日志文件,从而更高效地持续追加新事件数据。

更新方法

如果自定义工具引入这些日志文件以供进一步处理,则只需进行更新。 如果使用外部日志分析或 SIEM 工具,建议 改用事件中心引入此数据。 在处理来自众多服务的日志以及标记特定日志位置方面,事件中心的集成更为简便。

应更新自定义工具以处理上述当前格式和 JSON 行格式。 这将确保当数据开始以新格式显示时,工具不会中断。

后续步骤