Logback异常日志监控告警

Posted Java与大数据学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Logback异常日志监控告警相关的知识,希望对你有一定的参考价值。

项目源码:https://github.com/sixj0/logback-warning

功能介绍:

配合logback日志使用,通过扩展Appender组件,实现在打印error日志时告警的功能,目前告警是使用钉钉通知的方式,默认情况是所有error日志都会告警,可以实现LogWaringRule接口,自定义一个匹配规则,根据error日志信息决定是否需要告警。

使用方式:

  1. 引入依赖

    <dependency>
     <groupId>com.sixj</groupId>
     <artifactId>logback-warning-platform</artifactId>
     <version>1.0.0-SNAPSHOT</version>
    </dependency>
  2. 添加配置

    #配置钉钉群机器人生成的webHook
    dingDing.logback.webHook=https://oapi.dingtalk.com/robot/send?access_token

    #告警时需要@的用户手机号,多个手机号之间使用英文逗号隔开
    dingDing.logback.phones=155*******
  3. logback-spring.xml文件中添加Appender

    <appender name="SendErrorMsgAppender"
             class="com.sixj.appender.SendErrorMsgAppender">

    </appender>

    <logger name="root" level="info" additivity="false">
     <appender-ref ref="SendErrorMsgAppender"/>
    </logger>
  4. 默认所有error日志都会告警,如果需要指定某一些error日志内容才告警的话,需要实现LogWaringRule接口的verdict方法,自定义一个匹配规则,当日志信息符合规则时才会触发告警,比如:

    @Component
    public class MyLogWaringRule implements LogWaringRule {

       @Override
       public boolean verdict(String errorMessage) {
           // error日志信息中包含'url'时触发告警
           return errorMessage.contains("url");
       }
    }


关于如何创建钉钉机器人可以参考之前的文章:

以上是关于Logback异常日志监控告警的主要内容,如果未能解决你的问题,请参考以下文章

运维道中道之“Shell脚本日志关键字监控+告警”

架构设计之日志监控与告警

用Django+Oracle编写的告警监控和日志查询系统

Logback日志输出踩坑记

监控Linux磁盘情况,进行邮件告警

监控Linux磁盘情况,进行邮件告警