You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure审计日志功能咨询及完整活动日志导出方法求助

Azure审计日志配置与完整导出方案

关于Azure审计日志功能

Azure自带的**活动日志(Activity Log)**就是你需要的审计日志工具:

  • 默认自动启用,无需额外配置,会记录订阅内所有资源的配置变更操作(如创建、修改、删除资源,角色分配变更等)。
  • 支持在Azure门户直接查看,也可通过CLI、PowerShell或API导出为JSON、CSV等格式。

解决CLI导出日志的两个问题

1. 获取完整字段

默认az monitor activity-log list仅返回精简字段,要获取所有日志属性,需通过--query参数指定返回全部内容:

# 返回所有字段并输出为JSON
az monitor activity-log list --output json --query "*"

如果需要自定义关键字段,可按需指定:

az monitor activity-log list --output json --query "[].{时间:eventTimestamp, 操作:operationName, 资源ID:resourceId, 执行者:caller, 状态:status, 详情:properties}"

2. 导出过去3个月的完整数据

Azure活动日志默认保留90天(刚好3个月),但CLI默认时间范围较短,需手动指定--start-time和--end-time:

手动指定时间(示例)

# 替换为实际的3个月前起始时间和当前结束时间
az monitor activity-log list --start-time 2024-02-20T00:00:00Z --end-time 2024-05-20T23:59:59Z --output json --query "*" > full-activity-logs.json

动态生成时间(Linux/macOS)

无需手动计算时间,用date命令自动生成3个月前的起始时间:

start_time=$(date -d "-3 months" +"%Y-%m-%dT00:00:00Z")
end_time=$(date +"%Y-%m-%dT23:59:59Z")
az monitor activity-log list --start-time $start_time --end-time $end_time --output json --query "*" > full-activity-logs.json

3. 仅筛选变更类操作

如果只需要资源变更相关日志,可通过--filter参数过滤操作类型,比如筛选所有写入、删除类操作:

az monitor activity-log list --start-time $start_time --end-time $end_time --filter "category eq 'Administrative' and (operationName contains 'write' or operationName contains 'delete' or operationName contains 'action')" --output json --query "*" > change-only-logs.json

4. 处理大日志量的分页问题

如果3个月日志量过大,CLI单次请求会触发分页,需用--max-items和--next-token遍历所有结果:

# 第一页,max-items可根据实际调整
az monitor activity-log list --start-time $start_time --end-time $end_time --output json --query "*" --max-items 1000 --next-token "" > activity-logs-part1.json

执行后会返回一个nextToken值,将其替换到下一次命令的--next-token参数中,重复执行直到没有更多数据。

内容的提问来源于stack exchange,提问作者Melissa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 06:23:25