记录一次Flink+ELK实践,实时监控flink任务

话不多说,先上图。
在这里插入图片描述
通过上图的流程elk与flink的联系在于日志文件,flink程序将日志写入文件,filebeat读取文件。
实时流任务意外的挂掉,没有数据是程序问题还是程序出问题,写入redis数据到底有没有写入,写入有没有异常,这些问题在开发中一直伴随着这个问题,为了更好的解决这个问题,考虑到一个方案,那就是elk日志系统的特点,优美的可视化图标,超时相关的饼图,数量频次统计的折线图,与我们的需求不谋而合,最后完美的切合了报警处理,让我们能更好及时的发现问题所在。
在引入的过程中,出现了种种问题,在官方文档了解到,为了程序员更好的控制日志,提供了logback日志,我像往常springboot中的一样在flink中加入了logback的配置,测试起来我们的程序,发现日志文件并没有打印进去日志,经历过种种,发现了logback的配置在集群中,自身提供了三种logback配置文件,去flink的包目录下看到,就会一目了然

<!-- INFO级别日志 appender -->
    <appender name="INFO_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileName>${log.home_dir}/${log.app_name}.log</fileName>
            <fileNamePattern>${log.home_dir}/${log.app_name}%d{yyyy-MM-dd}%i.log</fileNamePattern>
            <maxHistory>${log.maxHistory}</maxHistory>
            <MaxFileSize>${log.maxSize}</MaxFileSize>
        </rollingPolicy>
        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>

上面就是简单的一部分对于日志写入的配置,重启flink集群,在测试中成功的写入日志到文件中,目前对于其使用在了可视化图标统计以及任务健康状态的监控。
有兴趣的可以实践一番。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章