Отправка данных журнала действий Azure Monitor

Журнал действий Azure Monitor — это журнал платформы, предоставляющий представление о событиях уровня подписки. Журнал действий содержит такие сведения, как при изменении ресурса или запуске виртуальной машины. Журнал действий можно просмотреть в портал Azure или получить записи с помощью PowerShell и Azure CLI. В этой статье содержатся сведения о том, как просмотреть журнал действий и отправить его в разные места назначения.

Создайте параметр диагностики для отправки журнала действий в одно или несколько из следующих расположений:

  • Рабочая область Log Analytics для более сложных запросов и оповещений
  • Центры событий Azure переадресации журналов за пределами Azure.
  • служба хранилища Azure для более дешевой долгосрочной архивации.

Дополнительные сведения о том, как создать параметр диагностики, см. в статье Создание параметров диагностики для отправки журналов и метрик платформы в разные назначения.

Совет

Отправка журналов действий в рабочую область Log Analytics для следующих преимуществ:

Примечание.

  • Записи в журнале действий создаются системой и не могут быть изменены или удалены.
  • Записи в журнале действий представляют изменения уровня управления, такие как перезапуск виртуальной машины, все не связанные записи должны быть записаны в журналы ресурсов Azure.
  • Записи в журнале действий обычно являются результатом изменений (создание, обновление или удаление) или действие, инициируемое. Операции, ориентированные на чтение сведений о ресурсе, обычно не фиксируются.

Отправка в рабочую область Log Analytics

Отправьте журнал действий в рабочую область Log Analytics, чтобы включить функцию Журналы Azure Monitor, где можно:

  • сопоставлять данные журнала действий с другими данными мониторинга, собранными Azure Monitor;
  • Объединение записей журнала из нескольких подписок Azure и клиентов в единое место для совместного анализа.
  • использовать запросы журналов для сложного анализа и получения подробных сведений о записях журнала действий;
  • Используйте оповещения поиска по журналам с записями действий для более сложной логики оповещений.
  • хранить записи журнала действий дольше срока хранения журнала действий;
  • не платить за прием и хранение данных журнала действий, хранящихся в рабочей области Log Analytics.
  • В Log Analytics период хранения по умолчанию составляет 90 дней.

Выберите Экспорт журналов действий, чтобы отправить журнал действий в рабочую область Log Analytics.

Снимок экрана: экспорт журналов действий.

Журнал действий можно отправить из любой одной подписки в пять рабочих областей.

Данные журнала действий в рабочей области Log Analytics хранятся в таблице, которую AzureActivity можно получить с помощью запроса журнала в Log Analytics. Структура этой таблицы зависит от категории записи журнала. Описание свойств таблицы см. в Справочнике по данным Azure Monitor.

Например, чтобы просмотреть количество записей журнала действий для каждой категории, используйте следующий запрос:

AzureActivity
| summarize count() by CategoryValue

Чтобы получить все записи в административной категории, используйте нижеуказанный запрос.

AzureActivity
| where CategoryValue == "Administrative"

Внимание

В некоторых сценариях возможно, что значения в полях AzureActivity могут иметь разные регистры от других эквивалентных значений. При запросе данных в AzureActivity следует использовать нечувствительные операторы регистра для сравнения строк или использовать скалярную функцию для принудительного ввода поля в единый регистр перед любыми сравнениями. Например, используйте функцию tolower() в поле, чтобы принудить ее всегда быть строчным или оператором =~ при выполнении сравнения строк.

Отправка в Центры событий Azure

Отправьте журнал действий в Центры событий Azure, чтобы передать записи за пределы Azure, например в сторонние SIEM или другие решения для анализа журналов. События журнала действий из Центров событий потребляются в формате JSON с элементом records, содержащим записи в каждой полезной нагрузке. Схема зависит от категории; см. статью Схема событий журнала действий Azure.

Пример выходных данных из Центров событий для журнала действий:

{
    "records": [
        {
            "time": "2019-01-21T22:14:26.9792776Z",
            "resourceId": "/subscriptions/s1/resourceGroups/MSSupportGroup/providers/microsoft.support/supporttickets/115012112305841",
            "operationName": "microsoft.support/supporttickets/write",
            "category": "Write",
            "resultType": "Success",
            "resultSignature": "Succeeded.Created",
            "durationMs": 2826,
            "callerIpAddress": "111.111.111.11",
            "correlationId": "c776f9f4-36e5-4e0e-809b-c9b3c3fb62a8",
            "identity": {
                "authorization": {
                    "scope": "/subscriptions/s1/resourceGroups/MSSupportGroup/providers/microsoft.support/supporttickets/115012112305841",
                    "action": "microsoft.support/supporttickets/write",
                    "evidence": {
                        "role": "Subscription Admin"
                    }
                },
                "claims": {
                    "aud": "https://management.core.windows.net/",
                    "iss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
                    "iat": "1421876371",
                    "nbf": "1421876371",
                    "exp": "1421880271",
                    "ver": "1.0",
                    "http://schemas.microsoft.com/identity/claims/tenantid": "00000000-0000-0000-0000-000000000000",
                    "http://schemas.microsoft.com/claims/authnmethodsreferences": "pwd",
                    "http://schemas.microsoft.com/identity/claims/objectidentifier": "2468adf0-8211-44e3-95xq-85137af64708",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn": "admin@contoso.com",
                    "puid": "20030000801A118C",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier": "9vckmEGF7zDKk1YzIY8k0t1_EAPaXoeHyPRn6f413zM",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname": "John",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname": "Smith",
                    "name": "John Smith",
                    "groups": "cacfe77c-e058-4712-83qw-f9b08849fd60,7f71d11d-4c41-4b23-99d2-d32ce7aa621c,31522864-0578-4ea0-9gdc-e66cc564d18c",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": " admin@contoso.com",
                    "appid": "c44b4083-3bq0-49c1-b47d-974e53cbdf3c",
                    "appidacr": "2",
                    "http://schemas.microsoft.com/identity/claims/scope": "user_impersonation",
                    "http://schemas.microsoft.com/claims/authnclassreference": "1"
                }
            },
            "level": "Information",
            "location": "global",
            "properties": {
                "statusCode": "Created",
                "serviceRequestId": "50d5cddb-8ca0-47ad-9b80-6cde2207f97c"
            }
        }
    ]
}

Отправка в службу хранилища Azure

Отправьте журнал действий в учетную запись служба хранилища Azure, если вы хотите сохранить данные журнала дольше 90 дней для аудита, статического анализа или резервного копирования. Если вам необходимо хранить события не больше 90 дней, вам не нужно настраивать архивацию в учетной записи хранения. События в журнале действий хранятся на платформе Azure 90 дней.

При отправке журнала действий в Azure в учетной записи хранения создается контейнер хранилища, как только происходит событие. BLOB-объекты в контейнере используют следующее соглашение об именовании.

insights-activity-logs/resourceId=/SUBSCRIPTIONS/{subscription ID}/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-activity-logs/resourceId=/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/y=2020/m=06/d=08/h=18/m=00/PT1H.json

Каждый PT1H.json большой двоичный объект содержит объект JSON с событиями из файлов журнала, полученных в течение часа, указанного в URL-адресе БОЛЬШОго двоичного объекта. В течение текущего часа события добавляются в файл PT1H.json по мере их получения независимо от того, когда они были созданы. Значение минуты в URL-адресе m=00 всегда создается как 00 большие двоичные объекты создаются по часам.

В файле PT1H.json каждое событие сохраняется в следующем формате. В этом формате используется общая схема верхнего уровня, но в остальном она уникальна для каждой категории, как описано в статье Схема журнала действий.

{ "time": "2020-06-12T13:07:46.766Z", "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/MY-RESOURCE-GROUP/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINES/MV-VM-01", "correlationId": "0f0cb6b4-804b-4129-b893-70aeeb63997e", "operationName": "Microsoft.Resourcehealth/healthevent/Updated/action", "level": "Information", "resultType": "Updated", "category": "ResourceHealth", "properties": {"eventCategory":"ResourceHealth","eventProperties":{"title":"This virtual machine is starting as requested by an authorized user or process. It will be online shortly.","details":"VirtualMachineStartInitiatedByControlPlane","currentHealthStatus":"Unknown","previousHealthStatus":"Unknown","type":"Downtime","cause":"UserInitiated"}}}

Другие методы получения событий журнала действий

Вы также можете получить доступ к событиям журнала действий с помощью следующих методов:

Устаревшие методы сбора журнала

Примечание.

  • Решение журналов действий Azure использовалось для пересылки журналов действий в Azure Log Analytics. Это решение отменяется на 15 сентября 2026 г. и автоматически преобразуется в параметры диагностики.

Если вы собираете журналы действий с помощью устаревшего метода сбора, мы рекомендуем экспортировать журналы действий в рабочую область Log Analytics и отключить устаревший метод сбора через API удаления для источников данных, как описано ниже.

  1. Получите полный список источников данных, подключенных к рабочей области, с помощью API списка по рабочим областям для источников данных, и отфильтруйте журналы действий, задав параметр kind eq 'AzureActivityLog'.

    Снимок экрана: настройка API списка по рабочим областям для источников данных.

  2. Скопируйте из ответа API имя подключения, которое вам нужно отключить.

    Снимок экрана: сведения о подключении, которые вам нужно скопировать из выходных данных API списка по рабочим областям для источников данных.

  3. Примените API удаления для источников данных, чтобы прекратить сбор журналов действий для конкретного ресурса.

    Снимок экрана: настройка API удаления для источников данных.

Управление устаревшими профилями журналов — выход из эксплуатации

Примечание.

  • Профили журналов использовались для пересылки журналов действий в учетные записи хранения и Центры событий. Этот метод отменяется на 15 сентября 2026 года.
  • Если вы используете этот метод, перейдите к параметрам диагностики до 15 сентября 2025 года, когда мы перестанем создавать новые профили журналов.

Профили журнала — это устаревший метод отправки журнала действий в хранилище или концентраторы событий. Если вы используете этот метод, перейдите к параметрам диагностики, которые обеспечивают лучшую функциональность и согласованность с журналами ресурсов.

Если профиль журнала уже существует, сначала необходимо удалить существующий профиль журнала, а затем создать новый.

  1. Используйте Get-AzLogProfile, чтобы проверить, существует ли профиль журнала. Если профиль журнала существует, найдите свойство Name.

  2. Используйте Remove-AzLogProfile, чтобы удалить профиль журнала с помощью значения из свойства Name.

    # For example, if the log profile name is 'default'
    Remove-AzLogProfile -Name "default"
    
  3. Создайте профиль журнала с помощью Add-AzLogProfile:

    Add-AzLogProfile -Name my_log_profile -StorageAccountId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Storage/storageAccounts/my_storage -serviceBusRuleId /subscriptions/s1/resourceGroups/Default-ServiceBus-EastUS/providers/Microsoft.ServiceBus/namespaces/mytestSB/authorizationrules/RootManageSharedAccessKey -Location global,westus,eastus -RetentionInDays 90 -Category Write,Delete,Action
    
    Свойство Обязательное поле Description
    Полное имя Да Имя профиля журнала.
    StorageAccountId No Идентификатор ресурса для учетной записи хранения, где будет храниться журнал действий.
    serviceBusRuleId No Идентификатор правила служебной шины для пространства имен Служебной шины, где вы хотите создать концентраторы событий. Эта строка имеет формат {service bus resource ID}/authorizationrules/{key name}.
    Расположение Да Разделенный запятыми список регионов, для которых будут собираться события журнала действий.
    RetentionInDays Да Количество дней, в течение которых будут храниться события в учетной записи хранения составляет от 1 до 365. Нулевое значение означает, что журналы хранятся неограниченно долго.
    Категория No Разделенный запятыми список категорий событий, которые будут собираться. Возможные значения: Write, Delete и Action.

Пример скрипта

В этом примере скрипта PowerShell создается профиль журнала, который записывает журнал действий в учетную запись хранения и концентратор событий.

# Settings needed for the new log profile
$logProfileName = "default"
$locations = (Get-AzLocation).Location
$locations += "global"
$subscriptionId = "<your Azure subscription Id>"
$resourceGroupName = "<resource group name your Event Hub belongs to>"
$eventHubNamespace = "<Event Hub namespace>"

# Build the service bus rule Id from the settings above
$serviceBusRuleId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.EventHub/namespaces/$eventHubNamespace/authorizationrules/RootManageSharedAccessKey"

# Build the Storage Account Id from the settings above
$storageAccountId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Storage/storageAccounts/$storageAccountName"

Add-AzLogProfile -Name $logProfileName -Location $locations -StorageAccountId  $storageAccountId -ServiceBusRuleId $serviceBusRuleId

Изменения структуры данных

Экспорт журналов действий отправляет те же данные, что и устаревший метод, используемый для отправки журнала действий, с некоторыми изменениями в структуре таблицы AzureActivity.

Столбцы в следующей таблице устарели в обновленной схеме. Они по-прежнему существуют в AzureActivity, но не содержат данных. При замене этих столбцов новая информация не добавляется, поскольку они содержат те же данные, что и устаревший столбец. Они имеют другой формат, поэтому может потребоваться изменить запросы к журналу, в которых они используются.

JSON журнала действий Столбец имени Log Analytics
(устаревшая версия)
Имя нового столбца Log Analytics Примечания.
Категория Категория CategoryValue
статус

Значения: success, start, accept, failure
ActivityStatus

Значения, совпадающие с JSON
ActivityStatusValue

Значения, изменяющиеся на succeeded, started, accepted, failed
Допустимые значения изменяются, как показано.
subStatus ActivitySubstatus ActivitySubstatusValue
operationName OperationName OperationNameValue REST API локализует значение имени операции. В пользовательском интерфейсе Log Analytics всегда отображается английский язык.
resourceProviderName ResourceProvider ResourceProviderValue

Внимание

В некоторых случаях значения в этих столбцах могут быть заданы в верхнем регистре. Если запрос включает эти столбцы, используйте оператор =~ для сравнения без учета регистра.

В обновленную схему добавлены AzureActivity следующие столбцы:

  • Authorization_d
  • Claims_d
  • Properties_d

Следующие шаги

Дополнительные сведения: