ELKF日志学习(十一)Logstash实现钉钉告警(莫当真)

前言

本来不想写这篇文章的,奈何有人崇尚这个,顺带介绍一下,扩展一下思路。

代码仓库

talk-lucky/elkf-study

弊端

比如:当 499(HTTP 状态码) 在半小时内出现了 50 次,需要实现告警。

这种情况就不能自定义了,只能说,出现 499 就告警,这个很傻。

麻烦一点的解决方案

就是统计后,写入某一个日志文件,然后再根据来源来分辨是否发送告警。

好像有点傻…

毕竟,都已经统计了,直接告警就行,还要写日志,再通过 Logstash 发送告警,有点冗余。

至于怎么统计,好像有个 KSQL,是 Kibana 的。

实现

这里主要用到了两块内容,一个是 Logstashoutput.http,一个是 钉钉机器人

关于如何创建机器人,还是直接查看官方文档吧,这里就不多做描述了。

Logstash官方文档

钉钉机器人官方文档

废话有点多,直接看实现吧。

output {
    http {
        url => "https://oapi.dingtalk.com/robot/send?access_token=你的token"
        http_method => "post"
        format => "message"
        content_type => "application/json; charset=utf-8"
        message => "{'msgtype':'text','text': {'content': '你的标识 需要告警的错误信息'}}"
    }
}

TIPS: 你的标识 一定要和配置的一致,不然发送会失败。

最后

可以玩玩,官方出 output.http 不是用来做这个的,但可以帮助我们学习使用方法。