Loki无法向Alertmanager发送告警问题排查求助
Loki 无法向 Alertmanager 发送告警的排查方向
检查Loki告警规则的语法与结构
- 确认规则中
alert名称、expr查询语句准确性:比如针对severity=debug的场景,expr需类似count_over_time({severity="debug"}[1m]) >= 1,要保证时间范围、阈值符合预期 - 排查
for字段:若设置了该字段,需满足持续时长才会触发告警,测试阶段可临时移除快速验证 - 检查
labels和annotations格式:确保引号闭合、无语法错误
- 确认规则中
验证Loki规则加载状态
- 进入Loki容器执行
curl http://localhost:3100/loki/api/v1/rules,确认目标告警规则已加载且状态正常 - 查看Loki容器日志,搜索
rule关键词,排查是否存在规则加载失败的报错(如语法错误、路径配置错误)
- 进入Loki容器执行
检查Loki的Alertmanager配置
- 确认Loki配置文件
alerting块中alertmanagers的地址正确:Docker环境下需使用Alertmanager的容器名或服务地址(如http://alertmanager:9093),端口匹配默认9093 - 排查
timeout或tls参数:若开启TLS但未正确配置证书,会导致请求发送失败 - 在Loki容器内执行
curl -X POST http://<alertmanager-address>/api/v2/alerts发送测试告警,验证API响应是否正常
- 确认Loki配置文件
检查Loki的告警评估周期
- 确认Loki配置
ruler块的evaluation_interval设置,默认1分钟,若需更频繁评估可调整后重启Loki - 查看Loki日志中
evaluating rule相关条目,确认规则是否按周期评估,以及评估结果是否匹配预期(是否有命中的日志条目)
- 确认Loki配置
确认Alertmanager的接收配置
- 检查Alertmanager配置文件,确认存在针对Loki告警的路由规则,避免被错误路由或丢弃
- 查看Alertmanager日志,搜索目标告警名称或
loki关键词,排查是否存在接收请求但被过滤的情况
核对日志标签与规则匹配度
- 再次确认Grafana中查询到的日志标签与规则
expr完全匹配:比如severity=debug的大小写、格式是否一致 - 检查规则中的标签选择器,避免多写不必要的条件导致匹配失败
- 再次确认Grafana中查询到的日志标签与规则
内容的提问来源于stack exchange,提问作者NIGHTSCROLLER
相关产品推荐
相关产品推荐

