使用Prometheus+Grafana监控Flink on YARN作业

2021-09-10 10:58:17 浏览数 (1)

实时作业要保证7 x 24运行,除了要在业务逻辑和编码上下功夫之外,好的监控系统也是必不可少的。Flink支持多种汇报监控指标(metrics)的reporter,如JMX、SLF4J、InfluxDB、Prometheus等。

这里我们选择Prometheus grafana,下面我们线给出一个架构图

下面讲述一下配置过程

1.pushGateway的安装

从上图可知,Prometheus是从pushgateway拉取数据的,但是flink on yarn作业的每一个任务对应的集群不一样,地址不一样,那么对于Prometheus这样一个主动拉取的角色,就必须借助一个固定地址的数据中转站来进行数据的获取,pushgateway就具有类似的功能

首先我们根据flink版本,获取对应的flink-metrics包

wget https://repo1.maven.org/maven2/org/apache/flink/flink-metrics-prometheus_2.11/1.13.1/flink-metrics-prometheus_2.11-1.13.1.jar mv flink-metrics-prometheus_2.11-1.13.1.jar flink-1.13.1/lib

下载pushGateway的安装包

代码语言:javascript复制
wget https://github.com/prometheus/pushgateway/releases/download/v1.4.1/pushgateway-1.4.1.darwin-amd64.tar.gz

pushgateway启动

代码语言:javascript复制
nohup ./pushgateway --web.listen-address :9091 &

2.Promethus的安装

Promethus安装包下载

代码语言:javascript复制
wget https://github.com/prometheus/prometheus/releases/download/v2.29.0-rc.2/prometheus-2.29.0-rc.2.darwin-amd64.tar.gz

Promethus配置

代码语言:javascript复制
- job_name :'prometheus'

     # metrics_path defaults to '/metrics'
     # scheme defaults to 'http'.

     static_configs:
     -   targets :  [ 'localhost:9090' ]
       labels:
         instance:   prometheus
- job_name :   'pushgateway'
   static_configs:
   -   targets :  [ 'localhost:9091' ]
     labels:
        instance:   pushgateway

启动:

nohup ./prometheus --config.file=prometheus.yml &

3.grafana的安装配置

代码语言:javascript复制
wget https://dl.grafana.com/oss/release/grafana-8.1.0.darwin-amd64.tar.gz

启动

nohup ./bin/grafana-server web &

4.启动flink

前提是准备好mysql/hadoop/hive metastore的环境

flink配置

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

启动yarn-session

bin/yarn-session.sh -d

bin/sql-client.sh -i init.sql

insert into flink_test select *,DATE_FORMAT(birthday, 'yyyyMMdd') from mysql_users

查看flink的web页面

查看grafana的页面

0 人点赞