記錄一次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集羣,在測試中成功的寫入日誌到文件中,目前對於其使用在了可視化圖標統計以及任務健康狀態的監控。
有興趣的可以實踐一番。

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