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

如何在CloudWatch Log Insights或Python中分组统计相似错误日志?

问题描述

我通过boto3查询CloudWatch Log Insights,获取了约10000条日志(因隐私无法提供真实日志)。当前使用的Log Insights查询语句为:

filter @message like /ERROR/

返回的日志格式如下:

timestamp:ERROR <some details>Apache error....<error details> 
timestamp:ERROR <some details>Connection error.... <error details> 
timestamp:ERROR <some details>Database error....<error details>

需要将包含相似子串的错误(如Apache error、Connection error、Database error等)进行分组,并统计每组的数量,期望输出如下:

Apache error      130
Database error    2253
Connection error  3120

请问能否通过正则或其他方式提取相似子串,在Log Insights或Python中实现分组统计?


方案一:直接在CloudWatch Log Insights中实现

可以利用Log Insights的parse命令结合正则提取错误类型,再通过stats命令分组统计。

查询语句示例

filter @message like /ERROR/
| parse @message /(\w+\s?\w+ error)/ as error_type
| stats count(*) as error_count by error_type
| sort error_count desc

说明

  • 正则/(\w+\s?\w+ error)/可匹配"Xxx error"或"Xxx Yyy error"这类格式的错误类型,可根据实际日志的错误子串格式调整正则规则(比如错误类型包含更多单词时,可修改为/([A-Za-z\s]+ error)/);
  • stats count(*) by error_type会按提取出的错误类型分组统计数量,最后按数量降序排序输出。

方案二:Python(结合boto3)处理

如果已经通过boto3获取到日志数据,可以用Python正则匹配+频次统计工具实现分组计数。

示例代码

import re
from collections import Counter

# 假设logs是通过boto3获取的日志列表,每个元素为日志的@message内容
logs = [
    "timestamp:ERROR <some details>Apache error....<error details>",
    "timestamp:ERROR <some details>Connection error.... <error details>",
    "timestamp:ERROR <some details>Database error....<error details>",
    # 更多日志数据...
]

# 定义匹配错误类型的正则,按需调整
pattern = re.compile(r'(\w+\s?\w+ error)')
error_types = []

for log in logs:
    match_result = pattern.search(log)
    if match_result:
        error_types.append(match_result.group(1).strip())

# 统计各错误类型的数量
error_stats = Counter(error_types)

# 格式化对齐输出
print(f"{'错误类型':<20} {'数量'}")
for error_type, count in sorted(error_stats.items(), key=lambda x: -x[1]):
    print(f"{error_type:<20} {count}")

说明

  • 正则规则可根据日志的实际格式灵活修改,比如错误子串前后有固定标识时,可针对性优化匹配逻辑;
  • collections.Counter能高效统计列表中元素的出现频次,最后按数量降序排序输出,保证结果和期望格式一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:02:02