Flink使用logback记录日志并告警
任务运行中的日志记录下来是相当有必要的,而当我们想要查看输入的日志并不是一件简单的事情,尽管可以在flink ui上看logs和stdout,一旦日志量变大,这样查看会异常的恶心。
flink conf中提供了log4j和logback配置文件,默认情况下使用的是log4j,因为log4j不支持公司邮箱的认证方式,所以在这里选用优秀的logback。
在lib文件夹下是没有logback依赖jar包的,所以需要增加
logback-access-1.2.3.jar
logback-classic-1.2.3.jar
logback-core-1.2.3.jar
mail-1.4.7.jar
然后修改conf下logback-console.xml logback.xml logback-yarn.xml 三个文件
主要是增加 发邮件的appender
这样flink配置就完成了。
另外需要去掉conf目录下log4j.properties文件,不然slf4j可能绑定到log4j
在开发应用的时候,如果想要记录日志信息,需要添加slf4j和logback依赖并排除log4j的依赖(切记),那么记录的error信息,就直接会发到配置的邮箱
正常来说,偶尔几个错误发出来完成没有问题,但是一旦出现比较严重的错误,比如某个组件出现了故障,那么在实时任务中需要发出来的邮件可能就有数十万,很有可能将公司邮箱打爆。
基于这种情况,将buffersize调大能起到一定作用,但是解决不了根本,可以参考我的另一篇文章 根本性的解决这个问题。