Flink应用接入Prometheus监控预警系统

Flink应用接入Prometheus监控预警系统

在现代数据处理和监控领域,Apache Flink 作为实时流处理框架,已经在众多企业和场景中得到广泛应用。为了更好地监控和管理 Flink 应用的性能与资源利用情况,将 Flink 集成至 Prometheus 和 Grafana 是一个非常有效的方法。本文详细介绍了如何搭建和配置这一监控系统,确保你可以实时跟踪和优化你的 Flink 应用。

环境准备

  • flink任务启动并运行
  • Prometheus搭建部署完毕,版本推荐v2.36.2
  • Grafan搭建部署完毕,版本推荐9.1.2

环境准备可参考我的博文:

# Docker 安装 Prometheus 和 Grafana

# 最详细且简单的Flink集群搭建教程

# 最详细且简单的Hadoop高可用集群搭建教程

安装pushgateway

  1. 首先进入到需要安装pushgateway的目录中

  2. 创建docker-compose.yaml文件,内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    version: "3.8"
    services:
    pushgateway:
    image: prom/pushgateway:v1.5.0
    container_name: pushgateway
    ports:
    - "9091:9091"
    restart: unless-stopped
  3. 执行命令启动pushgateway服务

    1
    docker-compose up -d

如果你的 flink 应用会部署到多个节点,请所有的节点都同样执行下面的步骤

  1. 编辑flink-conf.yaml文件,在文件最后追加以下内容:

    host、port 替换为自己pushgateway的对应信息

    1
    2
    3
    4
    5
    6
    7
    metrics.reporter.promgateway.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
    metrics.reporter.promgateway.host: 10.0.0.87
    metrics.reporter.promgateway.port: 9091
    metrics.reporter.promgateway.jobName: flink_pushgateway
    metrics.reporter.promgateway.randomJobNameSuffix: true
    metrics.reporter.promgateway.deleteOnShutdown: false
    metrics.reporter.promgateway.interval: 15 SECONDS
  2. 拷贝flink目录下的plugins/metrics-prometheusjar包到lib目录下面

    1
    2
    3
    4
    5
    # 进入 flink 目录
    cd /home/lbs/software/flink

    # 拷贝 jar 包
    cp plugins/metrics-prometheus/flink-metrics-prometheus-1.14.2.jar lib/
  3. 重启flink集群,或者yarn集群(取决于你 flink 任务运行的环境)

配置Prometheus

  1. 编辑prometheus.yaml配置文件,scrape_configs块下新增如下内容:

    注意:

    1. 缩进格式保持一致
    2. pushgateway下的targets里面的内容替换为自己pushgateway的IP端口
    1
    2
    3
    - job_name: "pushgateway"
    static_configs:
    - targets: ["10.0.0.87:9091"]

    image.png

  2. 重启prometheus服务

    也可以采用热加载配置文件的方式:curl -XPOST localhost:9090/-/reload

  3. 验证prometheus中是否可以查看到flink相关的信息

    image.png

配置Grafana

面板ID为: 14911

image.png

image.png

image.png

image.png

注意:想要看到图表及数据,需要至少运行一个 flink 任务

结语

通过本文的指南,你已经可以成功地将 Flink 任务与 Prometheus 和 Grafana 监控系统集成。这不仅提高了问题发现和解决的效率,也为系统的性能优化提供了数据支持。务必确保按照文中步骤准确配置,以便最大程度地发挥监控系统的功效。后续可以根据实际监控数据,继续调整和优化 Flink 配置,进一步提升系统的稳定性和处理能力。

Flink应用接入Prometheus监控预警系统

https://lbs.wiki/pages/9585b017/

作者

李博帅

发布于

2024-04-28

更新于

2025-06-05

许可协议