前言
在现代数据处理和监控领域,Apache Flink 作为实时流处理框架,已经在众多企业和场景中得到广泛应用。为了更好地监控和管理 Flink 应用的性能与资源利用情况,将 Flink 集成至 Prometheus 和 Grafana 是一个非常有效的方法。本文详细介绍了如何搭建和配置这一监控系统,确保你可以实时跟踪和优化你的 Flink 应用。
环境准备
flink任务启动并运行Prometheus搭建部署完毕,版本推荐v2.36.2Grafan搭建部署完毕,版本推荐9.1.2
环境准备可参考我的博文:
安装pushgateway
-
首先进入到需要安装
pushgateway的目录中 -
创建
docker-compose.yaml文件,内容如下:version: "3.8" services: pushgateway: image: prom/pushgateway:v1.5.0 container_name: pushgateway ports: - "9091:9091" restart: unless-stopped -
执行命令启动
pushgateway服务docker-compose up -d
配置flink
如果你的 flink 应用会部署到多个节点,请所有的节点都同样执行下面的步骤
-
编辑
flink-conf.yaml文件,在文件最后追加以下内容:host、port 替换为自己
pushgateway的对应信息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 -
拷贝
flink目录下的plugins/metrics-prometheusjar包到lib目录下面# 进入 flink 目录 cd /home/lbs/software/flink # 拷贝 jar 包 cp plugins/metrics-prometheus/flink-metrics-prometheus-1.14.2.jar lib/ -
重启
flink集群,或者yarn集群(取决于你 flink 任务运行的环境)
配置Prometheus
-
编辑
prometheus.yaml配置文件,scrape_configs块下新增如下内容:注意:
- 缩进格式保持一致
pushgateway下的targets里面的内容替换为自己pushgateway的IP端口
- job_name: "pushgateway" static_configs: - targets: ["10.0.0.87:9091"] -
重启
prometheus服务也可以采用热加载配置文件的方式:
curl -XPOST localhost:9090/-/reload -
验证
prometheus中是否可以查看到flink相关的信息
配置Grafana
面板ID为:
14911
注意:想要看到图表及数据,需要至少运行一个 flink 任务
结语
通过本文的指南,你已经可以成功地将 Flink 任务与 Prometheus 和 Grafana 监控系统集成。这不仅提高了问题发现和解决的效率,也为系统的性能优化提供了数据支持。务必确保按照文中步骤准确配置,以便最大程度地发挥监控系统的功效。后续可以根据实际监控数据,继续调整和优化 Flink 配置,进一步提升系统的稳定性和处理能力。