ElastAlert2聚合告警邮件表格后重复文本问题求助
问题根源
你当前使用的frequency规则类型与top_count统计逻辑不匹配,导致ElastAlert会为每个匹配的statusCode事件生成重复输出;同时默认告警模板会附加每个事件的详情,最终出现冗余内容。
解决方案
方案一:更换为top_count专属规则类型(推荐)
top_count是ElastAlert2专门用于统计字段出现频次的规则类型,能从根源避免重复触发事件。修改后的完整配置如下:
name: RuleTopCount type: top_count # 替换原frequency类型 index: "accesslog*" max_instances: 2 top_count_keys: - statusCode top_count_number: 100 aggregation: minutes: 2 summary_table_fields: - statusCode filter: - range: "@timestamp": gte: "now-2m" timeframe: minutes: 2 include: [] # 禁止输出完整事件内容 exclude_fields: ["*"] # 额外确保不输出任何字段详情 alert: - "email" email: - "receiving@email.com" from_addr: "sending@email.com" email_reply_to: "noreply@autoeveramerica.com" alert_subject: "[Prod] ESB Accesslog statusCode Count (past 2 minutes)"
方案二:自定义Jinja2告警模板(适配原规则类型)
如果不想更换规则类型,可通过自定义模板仅渲染汇总表格,屏蔽冗余内容:
在原有配置中添加以下内容:
alert_text_type: alert_text_jinja alert_text: | {{ summary_table }}
同时保留include: []和attach_related: false配置,确保不加载额外事件详情。
内容的提问来源于stack exchange,提问作者Minimineral
相关产品推荐
相关产品推荐

