Loki_alert

简直太开心了,终于找到了解决这么多天未解之谜的方法了,开心到飞起。

https://community.grafana.com/t/including-full-log-error-message-in-alert-notification-using-loki/87113

sum by(message) (count_over_time({filename="/var/log/latest.log"} |= `error` | pattern `<message>` [11s]))

这篇文章真的帮了我的大忙,通过最近一段时间的研究,我发现grafana的告警配置只能针对metrics去做配置,那么如何针对log去做告警呢?

我下面的问题就是,如何监控我需要监控的日志关键字,并将关键字内容告警高出来。

这里对告警的配置要求就很高,我们只能通过metrics去配置告警规则,所以对日志的告警配置要配置count,但是这就会隐藏掉告警日志的本身内容,按照itoa给我启示,我们可以在告警邮件通知中将触发告警日志的关键字给发送出来

但是,但是,grafana中没有这样的功能,它所有能够带出来的信息都是通过label去获取的,所以我们需要将告警日志的关键字作为label去配置,这样就可以获取到告警日志的内容了。

这个有个关键的trick就是将告警日志的message作为label去配置,这样就可以获取到告警日志的内容了。但是呢,日志的message并不在label中,这里我们用到了pattern去做日志内容的解析,这样就完美解决了我们的问题。

模板语言

rule语言

通知模板语言

如何实现在告警日志中打印prometheus的查询结果?

思路你想要打印的东西放到label中