Журнал действий Azure Monitor

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

Для расширения функциональности создайте диагностический параметр для отправки журнала действий в одно или несколько из этих расположений:

  • в журналы Azure Monitor для более сложных запросов, предупреждений и более длительного хранения (до двух лет);
  • в Центры событий Azure для пересылки за пределы Azure;
  • в службу хранилища Azure для более экономичной долгосрочной архивации.

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

Примечание

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

Срок хранения

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

Просмотр журнала действий

Доступ к журналу действий можно получить из большинства меню на портале Azure. Ото того, из какого меню он открыт, зависит его первоначальный фильтр. Если открыть его из меню Монитор, будет установлен фильтр только по подписке. Если открыть его из меню ресурса, будет установлен фильтр по этому ресурсу. В любой момент можно изменить фильтр, чтобы просмотреть все остальные записи. Нажмите Добавить фильтр, чтобы расширить свойства фильтра.

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

Описание категорий журналов действий см. в разделе Схема событий журнала действий Azure.

Скачивание журнала действий

Нажмите Загрузить как CSV-файл, чтобы загрузить события в текущем представлении.

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

Просмотр журнала изменений

Для некоторых событий можно просмотреть журнал изменений, в котором указывается, какие изменения произошли в течение времени этого события. Выберите в журнале действий событие, которое вам нужно изучить более подробно. Выберите вкладку Журнал изменений (предварительная версия) , чтобы просмотреть все изменения, связанные с этим событием.

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

Если с событием связаны какие-либо изменения, вы увидите список изменений, которые можно выбрать. При выборе изменения откроется страница Журнал изменений (предварительная версия). На этой странице отображаются изменения ресурса. В следующем примере видно, что размер виртуальной машины изменен. На странице отображается размер виртуальной машины до и после изменения. Дополнительные сведения о журнале изменений см. в статье Получение данных об изменении ресурса.

Снимок экрана: страница журнала изменений с отображением различий.

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

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

Отправка в рабочую область 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"

Отправка в Центры событий 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-logs-networksecuritygrouprulecounter/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"}}}

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

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

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

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

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

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

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

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

Управление устаревшими профилями журналов

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

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

  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
    
    Свойство Обязательно Описание
    Имя Да Имя профиля журнала.
    StorageAccountId Нет Идентификатор ресурса для учетной записи хранения, где будет храниться журнал действий.
    serviceBusRuleId Нет Идентификатор правила служебной шины для пространства имен Служебной шины, где вы хотите создать концентраторы событий. Эта строка имеет формат {service bus resource ID}/authorizationrules/{key name}.
    Расположение Да Разделенный запятыми список регионов, для которых будут собираться события журнала действий.
    RetentionInDays Да Количество дней, в течение которых будут храниться события в учетной записи хранения составляет от 1 до 365. Нулевое значение означает, что журналы хранятся неограниченно долго.
    Категория Нет Разделенный запятыми список категорий событий, которые будут собираться. Возможные значения: 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
status

Значения: 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

Дальнейшие действия

См. также: