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

如何列出所有未被使用的AWS CloudWatch日志组?

列出未被使用的AWS CloudWatch日志组

这里的“未被使用”通常指最近一段时间(比如30天)无日志事件写入,或者从未生成过任何日志流,以下是几种可行的实现方法:

方法一:AWS CLI结合Shell脚本

通过CLI获取日志组列表,逐个检查日志流的最后活动时间,筛选符合条件的日志组:

# 设置阈值为30天,可根据需求调整
THRESHOLD_DAYS=30
# 转换为毫秒级时间戳(CloudWatch使用毫秒时间戳)
THRESHOLD_TIMESTAMP=$(( ($(date +%s) - $THRESHOLD_DAYS*86400) * 1000 ))

# 获取所有日志组名称
LOG_GROUPS=$(aws logs describe-log-groups --query 'logGroups[*].logGroupName' --output text)

for GROUP in $LOG_GROUPS; do
    # 获取该日志组最新的日志流最后写入时间
    LAST_EVENT=$(aws logs describe-log-streams --log-group-name "$GROUP" --order-by LastEventTime --descending --limit 1 --query 'logStreams[0].lastEventTimestamp' --output text)
    
    # 无日志流,或最后写入时间早于阈值则标记为未使用
    if [ -z "$LAST_EVENT" ] || [ "$LAST_EVENT" -lt "$THRESHOLD_TIMESTAMP" ]; then
        echo "未使用日志组: $GROUP"
    fi
done

方法二:Python(boto3)脚本

利用AWS SDK遍历日志组,通过日志流的最后事件时间判断是否未被使用:

import boto3
from datetime import datetime, timedelta

# 初始化CloudWatch Logs客户端
client = boto3.client('logs')
# 设置30天阈值,可自定义
threshold = datetime.now() - timedelta(days=30)
threshold_timestamp = int(threshold.timestamp() * 1000)

# 分页获取所有日志组
paginator = client.get_paginator('describe_log_groups')
for page in paginator.paginate():
    for log_group in page['logGroups']:
        group_name = log_group['logGroupName']
        
        # 获取该日志组最新的日志流
        streams = client.describe_log_streams(
            logGroupName=group_name,
            orderBy='LastEventTime',
            descending=True,
            limit=1
        )['logStreams']
        
        if not streams:
            print(f"未使用日志组(无日志流): {group_name}")
            continue
        
        last_event_time = streams[0].get('lastEventTimestamp', 0)
        if last_event_time < threshold_timestamp:
            print(f"未使用日志组(超过30天无写入): {group_name}")

方法三:CloudWatch控制台可视化筛选

通过CloudWatch指标直接筛选无日志流入的日志组:

  • 打开CloudWatch控制台,进入指标页面
  • 选择Logs命名空间,找到LogGroup维度下的IncomingLogEvents指标
  • 添加所有日志组的该指标,设置时间范围为目标周期(如30天),筛选出指标值始终为0的日志组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 19:10:35