Back to Flink Learning

README

flink-learning-project/flink-learning-project-log/README.md

latest1.8 KB
Original Source

本模块实现了一个完整的实时日志处理与分析系统,从 Kafka 消费应用日志,进行实时分析和告警。

核心功能

1. LogAnalysisJob - 日志分析作业

  • 日志分流:使用 Side Output 将 ERROR/FATAL 日志分离到独立流中处理
  • 窗口聚合统计:按服务名称和日志级别,每分钟统计日志数量
  • 增量聚合:AggregateFunction + ProcessWindowFunction 组合使用

2. ErrorLogAlertJob - 错误日志告警作业

  • 错误检测:实时监控每个服务的 ERROR 日志数量
  • 定时器告警:使用 KeyedProcessFunction + Timer 实现时间窗口内的计数告警
  • 即时告警:ERROR 数量达到阈值时立即触发告警
知识点说明所在类
Side Output侧输出流,将数据分流到不同通道LogAnalysisJob
AggregateFunction增量聚合函数,内存高效LogAnalysisJob
ProcessWindowFunction获取窗口元信息的全量窗口函数LogAnalysisJob
KeyedProcessFunction有状态的键控处理函数ErrorLogAlertJob
Timer事件时间/处理时间定时器ErrorLogAlertJob
ValueState键控状态,存储单个值ErrorLogAlertJob
WatermarkStrategy水位线策略处理乱序数据全部

数据流向

Kafka (log-topic)
    │
    ├── LogAnalysisJob
    │   ├── 主流 → 按 serviceName+level 窗口统计 → 输出 LogStatistics
    │   └── 侧输出 → ERROR/FATAL 日志 → 单独处理
    │
    └── ErrorLogAlertJob
        └── ERROR 日志 → 按 serviceName 分组 → 定时器计数 → 超阈值告警 → AlertEvent