简直太开心了,终于找到了解决这么多天未解之谜的方法了,开心到飞起。
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中

