Azure Monitor регистрирует операции управления для ваших ресурсов Azure с помощью функции журнала действий. Журнал действий записывает такие операции, как создание виртуальной машины, изменение политики доступа к хранилищу ключей или ошибки развертывания Resource Manager. Эти операции управления также называются операциями плоскости управления . Используйте журнал действий, чтобы просмотреть или провести аудит этих сведений, или создайте оповещение, чтобы получать уведомления заранее при возникновении события.
В отличие от журнала действий, журналы ресурсов Azure фиксируют операции уровня данных, выполняемые в ресурсе. Например, эти операции включают получение секрета из хранилища ключей или запрос к базе данных. Журналы ресурсов по умолчанию не собираются и требуют настройки с помощью диагностического параметра.
Записи журнала действий
Azure Monitor собирает записи журнала действий по умолчанию без требуемой конфигурации. Система создает эти записи, и их нельзя изменить или удалить. Записи обычно возникают в результате изменений (операций создания, обновления и удаления) или инициирования действия. Журнал действий обычно не записывает операции чтения.
Записи журнала действий обычно доступны для анализа и оповещения в течение 3–20 минут после возникновения события. Описание категорий журналов действий см. в разделе Azure схема событий журнала действий.
Период хранения
Azure сохраняет события журнала действий в течение 90 дней , а затем удаляет их. Плата за записи в течение этого времени не взимается, независимо от их количества. Для получения дополнительных функций, таких как более длительное хранение, создайте параметр диагностики и соберите записи в другом расположении в зависимости от ваших потребностей. Одной из наиболее распространенных причин продления срока хранения является сохранение сведений о создателе ресурсов, доступных только в журнале действий.
Просмотр и получение журнала действий
Просмотр событий журнала действий для подписки, группы ресурсов или отдельного ресурса. Используйте портал Azure или программным способом запрашивайте их с помощью REST API Activity Log REST API.
Портал Azure предоставляет вкладку Activity log из большинства меню служб. Каждая из этих областей также поддерживает программный доступ с помощью REST или с помощью определенных Azure CLI и Azure PowerShell команд.
Укажите интервал времени получения событий. Чтобы получить события с помощью REST API, необходимо включить $filter параметр вместе с по крайней мере начальным значением eventTimestamp . По умолчанию журнал действий сохраняет события в течение 90 дней. Убедитесь, что время начала и окончания диапазона времени входят в это 90-дневное окно.
Сценарии доступа к журналам действий
В следующих разделах представлены распространенные сценарии, показывающие различные способы доступа к событиям журнала действий и получения их на портале Azure, программно с помощью Azure CLI и Azure PowerShell или с вызовами REST:
Примеры портала Azure предоставляют дополнительный контекст о том, какие события следует ожидать в этом интерфейсе.
В примерах Azure CLI выделены определенные команды, доступные с помощью команды az monitor activity-log list.
Azure PowerShell примеры демонстрируют конкретные командлеты, доступные через командлет Get-AzActivityLog.
Примеры REST API показывают, как извлекать события, используя необходимый параметр $filter с помощью REST API журнала действий.
Пример Вывод списка событий журнала действий для группы ресурсов также демонстрирует, как явно задать тайм-аут клиента, чтобы он соответствовал максимальному тайм-ауту REST API журнала действий — 75 секунд, с помощью заголовка Prefer.
Поддерживаемые $filter шаблоны |
Сведения |
| подписка по умолчанию с диапазоном времени |
$filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' |
| группа ресурсов |
$filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and resourceGroupName eq '{resourceGroupName}' |
| конкретный ресурс |
$filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and resourceUri eq '{resourceURI}' |
| поставщик ресурсов |
$filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and resourceProvider eq '{resourceProviderName}' |
| Идентификатор корреляции |
$filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and correlationId eq '{correlationID}' |
Список событий журнала активности для подписки
События уровня подписки фиксируют события, созданные непосредственно поставщиками ресурсов и являются областью по умолчанию для перечисления событий журнала действий. События уровня арендатора и уровня группы управления регистрируют только события Azure Resource Manager в этих иерархиях. Эти области более высокого уровня не включают события, созданные непосредственно поставщиками ресурсов за пределами Azure Resource Manager операций.
В следующем примере извлекает события из журнала активности для подписки за определённый период времени.
В открывающемся меню журнал действий определяется его начальный фильтр. Если открыть его из меню "Монитор ", единственным фильтром, выбранным по умолчанию, является подписка. Это то же самое, что и при открытии из подписок>, выберите > подписки.
Используйте команду az monitor-log list Azure CLI для получения событий журнала действий для подписки в течение указанного диапазона времени. По умолчанию эта команда извлекает события для подписки, установленной в контексте Azure CLI. Чтобы явно указать подписку, используйте --subscription параметр, как показано в приведенных ниже примерах.
Явный диапазон времени:
Azure CLI поддерживает тот же явный диапазон времени, что и REST, используя --start-time и --end-time:
subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
startTime="2026-04-01T00:00:00Z"
endTime="2026-04-14T23:59:59Z"
az monitor activity-log list \
--subscription "$subscriptionId" \
--start-time "$startTime" \
--end-time "$endTime"
Относительный диапазон времени:
Azure CLI также поддерживает относительные диапазоны времени с помощью --offset. Например, --offset 14d возвращает события за последние 14 дней:
subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
offset="14d"
az monitor activity-log list \
--subscription "$subscriptionId" \
--offset "$offset"
Замечание
команды Azure CLI используют конечную точку Azure Resource Manager из текущего контекста CLI, поэтому management.azure.com не требуется указывать в синтаксисе команды.
Azure PowerShell предоставляет командлет Get-AzActivityLog для получения событий журнала активности для подписки в течение указанного диапазона времени.
Явный диапазон времени:
Azure PowerShell поддерживает указание точного диапазона времени с помощью StartTime и EndTime, аналогично REST:
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$startTime = [datetime]"2026-04-01T00:00:00Z"
$endTime = [datetime]"2026-04-14T23:59:59Z"
Set-AzContext -Subscription $subscriptionId
$getAzActivityLogParams = @{
StartTime = $startTime
EndTime = $endTime
}
Get-AzActivityLog @getAzActivityLogParams
Относительный диапазон времени:
Azure PowerShell также поддерживает запросы относительного диапазона времени с помощью выражений Get-Date для StartTime и EndTime. В следующем примере возвращаются события за последние 14 дней, заканчивающиеся во время выполнения команды:
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$lookbackDays = 14
Set-AzContext -Subscription $subscriptionId
$getAzActivityLogParams = @{
StartTime = (Get-Date).AddDays(-$lookbackDays)
EndTime = Get-Date
}
Get-AzActivityLog @getAzActivityLogParams
Замечание
командлеты Azure PowerShell используют конечную точку Azure Resource Manager из текущего контекста Az, поэтому management.azure.com не требуется указывать в синтаксисе командлета.
Чтобы получить список событий журнала действий, используйте этот GET запрос для REST API журнала действий.
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Insights/eventtypes/management/values?api-version={apiVersion}&$filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}'
Просмотр событий журнала активности для группы ресурсов
Добавьте resourceGroupName в $filter, чтобы ограничить результаты журнала активности Azure Monitor до конкретной группы ресурсов.
В открывающемся меню журнал действий определяется его начальный фильтр. Если открыть его из меню ресурса, фильтр устанавливается на этот ресурс. Нажмите Добавить фильтр, чтобы расширить свойства фильтра. Ниже приведены другие свойства, которые можно отфильтровать на портале:
-
Resource — элементы, которые являются частью решения Azure, например базы данных или виртуальной машины.
-
Тип ресурса — категория, к которой принадлежит ресурс, например виртуальные машины, веб-приложения или базы данных.
-
Operation — действие или команда, например создание, удаление и запись, которые влияют на ресурсы Azure Resource Manager.
-
Событие, инициированное — фильтрация событий по идентичности, инициировавшей событие.
-
Категория событий — фильтрация типов событий для определенных операций.
Замечание
Заголовок REST Prefer: wait=75 не имеет прямого эквивалента в команде Azure CLI для этой операции. Эта команда выдает запрос напрямую и возвращает соответствующие записи журнала действий.
Используйте команду az monitor activity-log list , чтобы получить события журнала действий, ограниченные группой ресурсов. Определенные команды Azure CLI снижают сложность эквивалентного вызова REST API.
subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
resourceGroupName="myResourceGroup"
offset="30d"
az monitor activity-log list \
--subscription "$subscriptionId" \
--resource-group "$resourceGroupName" \
--offset "$offset"
Замечание
команды Azure CLI используют конечную точку Azure Resource Manager из текущего контекста CLI, поэтому management.azure.com не требуется указывать в синтаксисе команды.
Замечание
Заголовок REST Prefer: wait=75 не имеет прямого эквивалента в командлете Azure PowerShell для этой операции. Эта команда выдает запрос напрямую и возвращает соответствующие записи журнала действий.
Azure PowerShell предоставляет командлет Get-AzActivityLog, который позволяет получать события журнала действий для группы ресурсов за относительный период времени.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$resourceGroupName = "myResourceGroup"
$lookbackDays = 30
Set-AzContext -Subscription $subscriptionId
$getAzActivityLogParams = @{
ResourceGroupName = $resourceGroupName
StartTime = (Get-Date).AddDays(-$lookbackDays)
EndTime = Get-Date
}
Get-AzActivityLog @getAzActivityLogParams
Замечание
командлеты Azure PowerShell используют конечную точку Azure Resource Manager из текущего контекста Az, поэтому management.azure.com не требуется указывать в синтаксисе командлета.
Чтобы получить список событий журнала действий, ограниченных группой ресурсов с помощью REST API Azure Resource Manager, используйте запрос GET с $filter, который включает диапазон времени и свойство resourceGroupName. При необходимости включите Prefer заголовок, чтобы указать определенное время ожидания для запроса (максимальное 75 время ожидания в секундах).
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Insights/eventtypes/management/values?api-version={apiVersion}&$filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and resourceGroupName eq '{resourceGroupName}'
Prefer: wait=75
Возврат свойств конкретного журнала действий
Используйте параметр, чтобы возвращать только указанные свойства, что уменьшает размер ответа. Дополнительные сведения см. в описаниях свойств схемы журнала действий.
Портал Azure не предоставляет способ ограничить свойства, возвращаемые непосредственно из событий журнала действий. Чтобы уменьшить объем просмотрированных данных, используйте параметр "Изменить столбцы " в колонке журнала действий , чтобы выбрать столбцы, отображаемые в представлении портала.
Используйте команду az monitor activity-log list с параметром --select , чтобы указать свойства, возвращаемые из событий журнала действий.
--max-events Используйте параметр, az monitor activity-log list чтобы ограничить количество возвращаемых записей.
subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
offset="30d"
maxEvents=100
selectFields=(
eventName
operationName
status
eventTimestamp
correlationId
submissionTimestamp
level
)
az monitor activity-log list \
--subscription "$subscriptionId" \
--offset "$offset" \
--max-events "$maxEvents" \
--select "${selectFields[@]}"
Ограничьте свойства, возвращаемые из событий журнала действий в Azure PowerShell, передав результаты Get-AzActivityLog в Select-Object и указав нужные свойства. Это не уменьшает размер ответа API, так как Select-Object фильтрует только свойства в выходных данных, отображаемых PowerShell.
-MaxRecord Используйте параметр, Get-AzActivityLog чтобы ограничить количество возвращаемых записей.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$lookbackDays = 30
$maxRecord = 100
$selectProperties = @(
"EventName"
"OperationName"
"Status"
"EventTimestamp"
"CorrelationId"
"SubmissionTimestamp"
"Level"
)
Set-AzContext -Subscription $subscriptionId
$activityLogParams = @{
StartTime = (Get-Date).AddDays(-$lookbackDays)
EndTime = Get-Date
MaxRecord = $maxRecord
}
Get-AzActivityLog @activityLogParams |
Select-Object -Property $selectProperties
Чтобы вывести список событий журнала действий только с определенными свойствами, возвращаемыми с помощью REST API Azure Resource Manager, добавьте параметр запроса $select в запрос GET с разделиемым запятыми списком возвращаемых свойств.
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Insights/eventtypes/management/values?api-version={apiVersion}&$filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}'&$select=eventName,operationName,status,eventTimestamp,correlationId,submissionTimestamp,level
Список событий журнала действий на уровне тенанта
События журнала действий на уровне клиента обычно имеют ограниченные записи, но могут включать важные события, такие как создание группы управления или подписки. Эти события отличаются от событий журнала действий на уровне подписки, но могут содержать повторяющиеся события управления ресурсами.
Запросы в этой области используют другой REST API, отличный от API событий журнала действий уровня подписки. Azure CLI и Azure PowerShell не предоставляют выделенные команды.
Перейдите к Monitor>Activity log на портале Azure. Измените раскрывающееся меню мероприятия и выберите Активность каталога.
Выделенная команда Azure CLI недоступна для событий журнала действий на уровне клиента. Следующий пример вызывает REST API напрямую с помощью az rest:
apiVersion="2015-04-01"
startTime="2026-04-01T00:00:00Z"
endTime="2026-04-30T23:59:59Z"
providers="Microsoft.Insights/eventtypes/management/values"
resourceId="/providers/$providers"
filter="eventTimestamp ge '$startTime' and eventTimestamp le '$endTime'"
az rest \
--method get \
--uri "$resourceId?api-version=$apiVersion&\$filter=$filter"
Выделенный командлет PowerShell недоступен для событий журнала действий на уровне клиента. Следующий пример вызывает REST API напрямую с помощью Invoke-AzRestMethod:
$apiVersion = "2015-04-01"
$startTime = "2026-04-01T00:00:00Z"
$endTime = "2026-04-30T23:59:59Z"
$providers = "Microsoft.Insights/eventtypes/management/values"
$resourceId = "/providers/$providers"
$filter = "eventTimestamp ge '$startTime' and eventTimestamp le '$endTime'"
$invokeAzRestMethodParams = @{
Path = "$resourceId?api-version=$apiVersion&`$filter=$filter"
Method = "GET"
}
Invoke-AzRestMethod @invokeAzRestMethodParams
Чтобы перечислить события журнала действий на уровне клиента, используйте этот GET запрос. Обратите внимание, что этот запрос предназначен для конечной точки журнала действий на уровне клиента, которая отличается от API журнала действий на уровне подписки.
GET https://management.azure.com/providers/Microsoft.Insights/eventtypes/management/values?api-version={apiVersion}&$filter=eventTimestamp ge '{starTime}' and eventTimestamp le '{endTime}'
Перечисление событий журнала действий на уровне группы управления ресурсами
События журнала действий на уровне группы управления фиксируют события, относящиеся к определенной группе управления, например назначения политик и изменения членства в группах управления.
Замечание
- В следующих примерах используется
2017-03-01-preview версия API, необходимая для запросов журнала действий на уровне группы управления.
Чтобы просмотреть события журнала действий на уровне группы управления на портале Azure, перейдите к группам Management group> выберите группу управления >Activity log.
Чтобы получить список событий журнала действий уровня группы управления, используйте команду az rest Azure CLI. Эта команда вызывает Azure Resource Manager REST API напрямую для получения событий журнала действий в указанной группе управления.
apiVersion="2017-03-01-preview"
managementGroupId="myManagementGroup"
startTime="2026-04-01T00:00:00Z"
endTime="2026-04-30T23:59:59Z"
providers="Microsoft.Insights/eventtypes/management/values"
resourceId="/providers/Microsoft.Management/managementGroups/$managementGroupId/providers/$providers"
filter="eventTimestamp ge '$startTime' and eventTimestamp le '$endTime'"
az rest \
--method get \
--url "$resourceId?api-version=$apiVersion&\$filter=$filter"
Для событий журнала операций на уровне группы управления нет выделенного командлета PowerShell. В следующем примере интерфейс REST API вызывается непосредственно с помощью Invoke-AzRestMethod.
$apiVersion = "2017-03-01-preview"
$managementGroupId = "myManagementGroup"
$startTime = "2026-04-01T00:00:00Z"
$endTime = "2026-04-30T23:59:59Z"
$providers = "Microsoft.Insights/eventtypes/management/values"
$resourceId = "/providers/Microsoft.Management/managementGroups/$managementGroupId/providers/$providers"
$filter = "eventTimestamp ge '$startTime' and eventTimestamp le '$endTime'"
$invokeAzRestMethodParams = @{
Method = "GET"
Path = "$resourceId?api-version=$apiVersion&`$filter=$filter"
}
Invoke-AzRestMethod @invokeAzRestMethodParams
Чтобы получить список событий журнала действий на уровне группы управления, используйте запрос GET к REST API Azure Resource Manager. Замените {managementGroupId} идентификатором группы управления, которую вы хотите запросить, и укажите диапазон времени в параметре $filter запроса.
GET https://management.azure.com/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Insights/eventtypes/management/values?api-version={apiVersion}&$filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}'
В следующей таблице описаны параметры, используемые в предыдущих примерах.
| Variable |
Пример значения |
Purpose |
| host |
management.azure.com |
Неявная конечная точка ARM |
| subscriptionId |
aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
Входные данные пользователя |
| resourceGroupName |
myResourceGroup |
Входные данные пользователя |
| идентификатор группы управления |
myManagementGroup |
Входные данные пользователя |
| apiVersion |
• 2015-04-01 • 2017-03-01-preview (на уровне группы управления) |
Ссылки |
Просмотр журнала изменений
Для некоторых событий можно просмотреть журнал изменений, в котором указывается, какие изменения произошли в течение времени этого события. Выберите событие из журнала действий, на которое вы хотите более глубоко взглянуть. Перейдите на вкладку "Журнал изменений ", чтобы просмотреть все изменения ресурса до 30 минут до и после операции.
Если какие-либо изменения связаны с событием, на портале отображается список изменений, доступный для выбора. При выборе изменения откроется страница журнала изменений. На этой странице отображаются изменения ресурса.
В следующем примере показано, что размер виртуальной машины изменен. На странице отображается размер виртуальной машины до изменения и после изменения. Дополнительные сведения о журнале изменений см. в статье Получение изменений ресурсов.
Инсайты журнала действий
Аналитика журнала действий — это книга Azure Monitor, которая предоставляет набор панелей мониторинга, отслеживающих изменения ресурсов и групп ресурсов в подписке. На панелях мониторинга также представлены данные о том, какие пользователи или службы выполняли действия в подписке и состоянии действий.
Чтобы включить анализ журнала действий, экспортируйте журнал действий в рабочую область Log Analytics, как описано в Export activity log. Этот процесс отправляет события в таблицу AzureActivity, которую использует аналитика журнала действий.
Вы можете открыть аналитические сведения журнала действий на уровне подписки или ресурса. Для подписки выберите "Аналитика журналов действий" из раздела "Рабочие книги" в меню "Монитор".
Для отдельного ресурса выберите «Аналитика журналов действий» из раздела Рабочие книги в меню ресурса.
Экспорт журнала действий
Создайте параметр диагностики для отправки записей журнала действий в другие места назначения для дополнительного времени хранения и функциональных возможностей.
На портале Azure выберите журнал Activity log в меню Azure Monitor и выберите Export Activity Logs. Дополнительные сведения и другие методы для создания параметров диагностики см. в разделе "Параметры диагностики" в Azure Monitor. Убедитесь, что вы отключите любую устаревшую конфигурацию для журнала действий.
В следующих разделах содержатся сведения о каждом настраиваемом пункте назначения для журналов ресурсов.
Отправьте журнал действий в рабочую область Log Analytics для следующих функций:
Плата за прием данных для журналов действий не взимается. Плата за хранение журналов действий применяется только к периоду, истекшему за период хранения по умолчанию 90 дней. Срок хранения можно увеличить до 12 лет.
Данные журнала действий в рабочей области Log Analytics хранятся в таблице с именем AzureActivity. Структура этой таблицы зависит от категории записи журнала.
Например, чтобы просмотреть количество записей журнала действий для каждой категории, используйте следующий запрос:
AzureActivity
| summarize count() by CategoryValue
Чтобы получить все записи в административной категории, используйте нижеуказанный запрос.
AzureActivity
| where CategoryValue == "Administrative"
Это важно
В некоторых сценариях значения в полях AzureActivity могут отличаться от эквивалентных значений. При запросе данных в AzureActivity, используйте регистронезависимые операторы для сравнения строк или примените скалярную функцию, чтобы привести поле к единому регистру перед любыми сравнениями. Например, используйте функцию tolower() в поле, чтобы принудить ее всегда быть строчным или оператором =~ при выполнении сравнения строк.
Отправьте журнал действий в Центры событий Azure для отправки записей за пределами Azure, например сторонним siEM или другим решениям анализа журналов. События журнала действий из Event Hubs обрабатываются в формате 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": "aaaa0000-bb11-2222-33cc-444444dddddd",
"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/aaaabbbb-0000-cccc-1111-dddd2222eeee/",
"iat": "1421876371",
"nbf": "1421876371",
"exp": "1421880271",
"ver": "1.0",
"http://schemas.microsoft.com/identity/claims/tenantid": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"http://schemas.microsoft.com/claims/authnmethodsreferences": "pwd",
"http://schemas.microsoft.com/identity/claims/objectidentifier": "aaaa0000-bb11-2222-33cc-444444dddddd",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn": "admin@contoso.com",
"puid": "1003BFFD8EC002D4",
"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": "bbbb1111-cc22-3333-44dd-555555eeeeee,aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb,cccc2222-dd33-4444-55ee-666666ffffff",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": " admin@contoso.com",
"appid": "00001111-aaaa-2222-bbbb-3333cccc4444",
"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": "bbbbbbbb-1111-2222-3333-cccccccccccc"
}
}
]
}
Отправьте журнал действий в учетную запись хранения Azure, если вы хотите сохранить данные журнала дольше 90 дней для аудита, статического анализа или резервного копирования. Если вам нужно сохранить события в течение 90 дней или меньше, вам не нужно настраивать архивацию в учетной записи хранения.
При отправке журнала действий в хранилище контейнер создается в учетной записи сразу после возникновения события. Объекты в контейнере используют следующую схему именования.
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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/MY-RESOURCE-GROUP/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINES/MV-VM-01", "correlationId": "bbbb1111-cc22-3333-44dd-555555eeeeee", "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 Monitor для этой группы управления в дополнение ко всем группам управления в иерархии. Если в иерархии несколько групп управления имеют параметры диагностики, вы получите повторяющиеся события. Для записи всех событий иерархии требуется только параметр диагностики в группе управления верхнего уровня.
Группа управления также собирает множество одинаковых событий, что и все подписки в ней. Если подписка и группа управления имеют параметры диагностики, вы получите повторяющиеся события. Azure Resource Manager включает свойство иерархии при написании событий, но это не обязательное поле. Поставщики ресурсов за пределами Azure Resource Manager не размещают данные в нем, поэтому их события не передаются по иерархии. Из-за этого получение повторяющихся событий лучше, чем отсутствующие события.
Например, если у вас есть MG1, который содержит MG2, содержащий Subscription1, параметр диагностики в MG1 записывает все события журнала действий для MG1, MG2 и многие из событий, собранных параметром диагностики на Subscription1. В этом случае на MG2 не нужна настройка диагностики, так как она будет просто собирать дублирующие события.
При наличии повторяющихся событий комбинируйте их с помощью запроса, использующего хэш всех полей для идентификации уникальных записей. В следующем примере запроса Kusto показан пример для журналов, собранных в рабочей области Log Analytics:
AzureActivity
| extend Hash = hash(dynamic_to_json(pack_all()))
| summarize arg_max(TimeGenerated, *) by Hash
Экспорт журнала действий в файл
Выберите "Скачать как CSV ", чтобы экспортировать журнал действий в CSV-файл на портале Azure.
Это важно
Экспорт большого количества записей журнала может занять много времени. Чтобы повысить производительность, уменьшите диапазон времени экспорта. На портале Azure задайте параметр Timespan .
Журнал действий можно экспортировать программным способом с помощью Azure CLI.
subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
startTime="2026-04-01T00:00:00Z"
endTime="2026-04-14T23:59:59Z"
maxItems=1000
outputFile="./activity-log.json"
az monitor activity-log list \
--subscription "$subscriptionId" \
--start-time "$startTime" \
--end-time "$endTime" \
--max-items "$maxItems" \
> "$outputFile"
Журнал действий можно экспортировать программным способом с помощью Azure PowerShell.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$startTime = "2026-04-01T00:00:00Z"
$endTime = "2026-04-14T23:59:59Z"
$outputFile = "./activity-log.csv"
Set-AzContext -SubscriptionId $subscriptionId
$getAzActivityLogParams = @{
StartTime = $startTime
EndTime = $endTime
}
Get-AzActivityLog @getAzActivityLogParams |
Export-Csv -Path $outputFile -NoTypeInformation
В следующем примере скрипт PowerShell экспортирует журнал действий в CSV-файлы через один час, каждый из которых сохраняется в отдельный файл.
# Parameters
$subscriptionId = "Subscription ID here" # Replace with your subscription ID
$startTime = [datetime]"2025-05-08T00:00:00" # Adjust as needed
$endTime = [datetime]"2025-05-08T12:00:00" # Adjust as needed
$outputFolder = "\Logs" # Change path as needed
# Ensure output folder exists
if (-not (Test-Path $outputFolder)) {
New-Item -Path $outputFolder -ItemType Directory
}
# Set subscription context
Set-AzContext -SubscriptionId $subscriptionId
# Loop through 1-hour intervals
$currentStart = $startTime
while ($currentStart -lt $endTime) {
$currentEnd = $currentStart.AddHours(1)
$timestamp = $currentStart.ToString("yyyyMMdd-HHmm")
$csvFile = Join-Path $outputFolder "ActivityLog_$timestamp.csv"
Write-Host "Fetching logs from $currentStart to $currentEnd..."
Get-AzActivityLog -StartTime $currentStart -EndTime $currentEnd |
Export-Csv -Path $csvFile -NoTypeInformation
$currentStart = $currentEnd
}
Write-Host "Export completed. Files saved to $outputFolder."
Определение создания ресурсов
Используйте журнал действий, чтобы узнать, когда система создала ресурс и кто его создал. Журнал действий — это единственное место, где сохраняется информация о создателе ресурса. Так как журнал действий сохраняет данные только в течение 90 дней по умолчанию, необходимо экспортировать журналы в расположение, которое позволяет продлить срок хранения, например рабочую область Log Analytics. Затем найдите создателя ресурса, запрашивая таблицу AzureActivity . Данные хранятся в течение периода хранения, указанного в периоде хранения для этой таблицы.
Связанный контент