Grafana+Prometheus监控Flink on YARN系统搭建

1.简介
Flink支持多种监控指标的汇报reporter,例如jmx、slf4j、Prometheus、InfluxDB等。
Grafana+Prometheus是当前比较流行的监控可视化解决方案。如下图为Prometheus及相关组件组成的生态系统。
Grafana+Prometheus监控Flink on YARN系统搭建_第1张图片
2.安装配置
Prometheus是采用拉模式的方式,从exporter拉取监控的数据。但Prometheus自动发现Flink on YARN作业的提交、结束以及自动拉取数据是比较困难的。PushGateway作为一个中转组件,通过配置Flink on YARN作业将监控指标推到PushGateway,Prometheus再从PushGateway拉取数据。
(1)首先拷贝监控用的jar包Flink的lib目录下
将flink的opt目录下面的flink-metrics-prometheus-1.7.2.jar包拷贝到flink的lib下:

cd /opt/flink-1.7.2
cp opt/flink-metrics-prometheus-1.7.2.jar lib

(2)Prometheus和PushGateway组件下载地址为:

https://github.com/prometheus/prometheus/releases/download/v2.12.0/prometheus-2.12.0.linux-amd64.tar.gz
https://github.com/prometheus/pushgateway/releases/download/v0.9.1/pushgateway-0.9.1.linux-amd64.tar.gz

(3)解压文件,并修改
Prometheus的配置文件prometheus.yml添加配置如下图;
Prometheus的默认端口是9090,PushGateway的默认端口是9091。

  - job_name: 'flink'
    file_sd_configs:
     - files:
       - configs/flink.json

configs/flink.json的配置如下图:

[
 {
  "targets": ["172.30.11.15:9091"]
 }
]

(4)启动PushGateway和Prometheus。

nohup ./pushgateway --web.listen-address :9091 > /var/log/pushgateway.log 2>&1 &
nohup ./prometheus --config.file=prometheus.yml > /var/log/prometheus.log 2>&1 &

若Prometheus为生产环境热启动,只需要在服务器上执行如下命令即可:

curl -X POST http://172.30.11.15:9090/-/reload

(5)编辑flink-conf.yaml,添加Flink与PushGateway集成的参数

metrics.reporter.promgateway.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
# 这里写PushGateway的主机名与端口号
metrics.reporter.promgateway.host: 172.30.11.15
metrics.reporter.promgateway.port: 9091
# Flink metric在前端展示的标签(前缀)与随机后缀
metrics.reporter.promgateway.jobName: flink-metrics-ppg
metrics.reporter.promgateway.randomJobNameSuffix: true
metrics.reporter.promgateway.deleteOnShutdown: false

(6)配置grafana
Grafana默认端口:3000,点击Create your first data source添加Prometheus数据源。如下图所示:
Grafana+Prometheus监控Flink on YARN系统搭建_第2张图片
(7)启动flink
(8)添加监控图表
点击New Dashboard->Add Query按钮,即可看到Flink下的监控指标。
Grafana+Prometheus监控Flink on YARN系统搭建_第3张图片
选好监控指标,就可以从图表中看到监控数据的折线了。

你可能感兴趣的:(大数据运维)