已配置告警消息级别为ERROR,为何告警显示为warning?
告警级别配置为ERROR却显示Warning的问题排查
问题描述
配置告警消息级别为ERROR,但实际触发的告警显示为warning,配置未生效。相关日志信息如下:
{ "textPayload": "2024-06-06T12:29:09.060682Z\twarning\tenvoy config external/envoy/source/common/config/grpc_stream.h:175\tStreamAggregatedResources gRPC config stream to xds-grpc closed: 8, request rate limit exceeded: rate: Wait(n=1) would exceed context deadline (previously 14, error reading from server: EOF since 0s ago)\tthread=28", "insertId": "$ID", "resource": { "type": "k8s_container", "labels": { } }, "timestamp": "2024-06-06T12:29:09.060770007Z", "severity": "ERROR", "labels": { // 省略剩余内容 } }
问题分析
- 日志的
severity字段明确标记为"ERROR",但textPayload文本中包含warning字符串,这是告警规则误判的核心诱因 - 告警配置大概率未正确读取
severity字段作为级别判定依据,而是通过匹配日志文本中的关键词(比如"warning")来标记告警级别 - 也可能存在多条告警规则,其中匹配
textPayload里"warning"的规则优先级更高,导致触发了低级别的告警
解决建议
- 检查告警规则过滤逻辑:确认规则是基于
severity: ERROR字段触发告警,而非从日志文本中提取级别关键词 - 验证正则提取规则:如果告警级别通过正则从日志中提取,确保正则精准匹配
severity字段的值,避免误抓textPayload中的内容 - 测试单条日志匹配:用当前这条日志测试告警规则,确认规则能正确识别
severity为ERROR的日志并触发对应级别告警 - 排查规则优先级:检查是否有其他告警规则覆盖当前配置,比如匹配"warning"的规则优先级更高,导致低级告警被触发
内容的提问来源于stack exchange,提问作者Bryan Ramirez Lopez
相关产品推荐
相关产品推荐

