如何在Azure中仅获取虚拟机的创建日志?
单独查询虚拟机创建日志的实现方法
活动日志中默认的create_or_update(部分平台标记为write)操作会同时包含虚拟机首次创建和后续配置更新两类操作,默认筛选条件确实无法直接区分,你可以通过命令行或API传入自定义过滤规则实现单独查询创建日志:
命令行查询方案
- 适配Azure平台:
调用Azure CLI的活动日志查询命令,增加子状态过滤条件即可排除更新操作,命令示例:az monitor activity-log list --resource-type Microsoft.Compute/virtualMachines --query "[?operationName.value=='Microsoft.Compute/virtualMachines/write' && properties.subStatus.value=='Created']"
其中properties.subStatus.value=='Created'就是专门匹配首次创建操作的标记,不会命中后续的更新请求。 - 适配AWS/国内云平台:
这类平台的虚拟机创建操作本身有独立的事件名,直接过滤对应事件名即可,不需要区分更新操作:
AWS示例:aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=RunInstances
阿里云示例:aliyun actiontrail LookupEvents --EventName CreateInstance
腾讯云示例:tccli cloudaudit LookupEvents --EventName RunInstances
API查询方案
调用对应云平台的活动日志/审计日志查询API时,在请求的过滤参数中加入以下任意一类规则即可:
- 对于将创建更新合并为同一操作名的平台,增加「子状态等于Created」的过滤条件
- 对于有独立创建事件名的平台,直接过滤事件名等于对应虚拟机创建专属事件名即可
注意活动日志默认留存周期多为90天,超过留存期的日志需要提前导出到自定义存储中才能查询。
内容的提问来源于stack exchange,提问作者PratikRathi
相关产品推荐
相关产品推荐

