这里我们举一个Flink和InfluxDB、Grafana集成进行Flink集群任务监控的案例。在这个监控系统中,InfluxDB扮演了Flink中监控数据存储者的角色,Grafana则扮演了数据展示者的角色。

InfluxDB的安装

InfluxDB是一个由InfluxData开发的开源时序型数据,由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。

Grafana的安装

安装可以直接点击这里参考官网说明,Grafana的默认账号和密码分别是admin/admin,可以通过3000端口进行访问。

Flink Metric配置

修改flink-conf.yaml新增以下配置:

  1. metrics.reporter.influxdb.class: org.apache.flink.metrics.influxdb.InfluxdbReporter
  2. metrics.reporter.influxdb.host: 192.168.0.99
  3. metrics.reporter.influxdb.port: 8086
  4. metrics.reporter.influxdb.db: flink

同时,将flink-metrics-influxdb-1.10.0.jar复制到flink的/lib目录下,然后启动Flink。我们就可以在Grafana中看到Metrics信息了。
事实上,常用的Flink实时监控大盘包括但不限于:Prometheus+Grafana、Flink日志接入ELK等可以供用户选择。结合易用性、稳定性和接入成本,综合考虑,我们推荐实际监控中可以采用Prometheus/InfluxDB+Grafana相配合的方式。