当前位置:   article > 正文

使用Flink Metric Reporter 对flink任务指标进行监控_flink监控指标

flink监控指标

从flink1.8版本开始,reporter支持了将指标数据写入influxdb,用户可以自研可视化系统读取influxdb中的数据进行可视化。

但是对中小型公司来讲,可能因为成本原因,大多并不会选择自研可视化,我们选择grafana进行flink metrics的可视化。

本文主要重点讲述influxdb、prometheus为Reporter,将flink的metrics数据写入外部系统,并使用grafana进行可视化。

安装配置方式手把手教学,如下:

1. influxdb

1.1 启动

docker run -p 8086:8086 \
    -v /data/docker_volume/influxdb:/var/lib/influxdb \
    influxdb
  • 1
  • 2
  • 3

1.2 连接influxdb

docker exec -it e9b352ee20d4 influx
  • 1

1.3 建库

create database flink
  • 1

1.4 建用户

create user "flink" with password 'pwd_123' with all privileges;
  • 1

2. Prometheus

2.1 下载prometheus和pushgateway

https://prometheus.io/download/

2.2 安装

分别解压prometheus和pushgateway

2.3 配置

vim prometheus.yml 
在末尾新增:

  # pushgateway
  - job_name: 'pushgateway'
    scrape_interval: 10s
    honor_labels: true #加上此配置exporter节点上传数据中的⼀些标签将不会被pushgateway节点的相同标签覆盖 
    static_configs:
     - targets: ['localhost:9091']
       labels:
         instance: pushgateway
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2.4 启动

./prometheus  > /dev/null 2>&1 &

./pushgateway --web.enable-admin-api > /dev/null 2>&1 &
参数 --web.enable-admin-api,表示启用通过webapi方式管理数据,可以在webUI中删除metrics或通过命令curl -X PUT http://localhost:9091/api/v1/admin/wipe删除所有metrics
  • 1
  • 2
  • 3
  • 4

2.5 验证

# prometheus:
打开 http://1.2.3.4:9090/targets
  • 1
  • 2

可以在targets中看到pushgateway,如下图:
在这里插入图片描述

# pushgateway:
打开http://1.2.3.4:9091/
  • 1
  • 2

可以看到flink写入的监控指标数据(需要flink任务重启)
在这里插入图片描述

3. flink配置

3.1 修改flink配置文件

vim flink-1.10.0/conf/flink-conf.yaml 

# 配置influxdb
metrics.reporter.influxdb.class: org.apache.flink.metrics.influxdb.InfluxdbReporter
metrics.reporter.influxdb.host: 1.2.3.4
metrics.reporter.influxdb.port: 8086
# db,username,password需要跟配置influxdb一致
metrics.reporter.influxdb.db: flink
metrics.reporter.influxdb.username: flink
metrics.reporter.influxdb.password: pwd_123
#metrics.reporter.influxdb.retentionPolicy: one_hour
#metrics.reporter.influxdb.consistency: ANY 
#metrics.reporter.influxdb.connectTimeout: 60000
#metrics.reporter.influxdb.writeTimeout: 60000

# 配置prometheus
metrics.reporter.promgateway.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
metrics.reporter.promgateway.host: 1.2.3.4
metrics.reporter.promgateway.port: 9091 
# jobName直接指定,不需要事先在prometheus中配置
metrics.reporter.promgateway.jobName: tdflink_prom
metrics.reporter.promgateway.randomJobNameSuffix: true
# flink任务关闭后是否删除prometheus中存储的metrics,默认false,但设置为true时,仍然无法有效删除,详见https://issues.apache.org/jira/browse/FLINK-11457,可通过pushgateway的webUI或api删除
metrics.reporter.promgateway.deleteOnShutdown: true

# 收集操作系统指标
# Flag indicating whether Flink should report system resource metrics such as machine's CPU, memory or network usage.
metrics.system-resource: true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

3.2 拷贝jar包

从flink-1.10.0/opt中拷贝influxdb和prometheus相应jar包到lib目录

cp opt/flink-metrics-influxdb-1.10.0.jar ./lib
cp opt/flink-metrics-prometheus-1.10.0.jar ./lib
  • 1
  • 2

metric repoter 上报操作系统指标,下载jar包上传到lib目录下

jna-4.2.2.jar
jna-platform-4.2.2.jar
oshi-core-3.4.0.jar
  • 1
  • 2
  • 3

3.3 启动flink任务

# yarn-single-job
/home/admin/flink-1.10.0/bin/flink run -m yarn-cluster -p 100 -yjm 4g -ys 10 -ytm 16g -yqu root.flink -ynm etl_test  \
/home/admin/tiangx/applog_etl/jar_test/applog_etl-1.0-SNAPSHOT-jar-with-dependencies.jar \
--input-topic applog_raw \
--output-topic applog_test \
--bootstrap.servers 10.19.171.177:9092 \
--zookeeper.connect 10.19.171.177:2181 \
--group.id flink_applog_etl_test \
--redis 10.10.152.217 > /dev/null 2>&1 &
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3.4 清除prometheus中历史metrics

flink任务重启,无法自动清除prometheus中历史metrics,影响监控使用体验(会看到已经停止的任务),建议手动清除,有如下两种方式:

3.4.1 通过pushgateway的webUI删除所有metrics:

在这里插入图片描述

3.4.2 通过pushgateway的api删除metrics:

curl -X PUT http://localhost:9091/api/v1/admin/wipe
  • 1

4. Grafana

4.1 安装并启动grafana

下载:
docker pull grafana/grafana

启动:
docker run -d --name=grafana -p 3000:3000 grafana/grafana

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

首次打开grafana,http://localhost:3000/,
点击skip跳过密码验证,第二次打开grafana需要密码验证,默认用户admin,密码admin,登录后会提示修改密码。

4.2 配置数据源

如下图:
在这里插入图片描述

配置influxdb:
在这里插入图片描述

配置prometheus:
在这里插入图片描述

4.3 下载grafana模板

https://grafana.com/grafana/dashboards
搜索flink metrics模板并下载

4.3 将模板导入到grafana

在这里插入图片描述

点击“import”,将下载的模板导入,完成后打开dashboard:

在这里插入图片描述

下载的grafana dashboard可能需要再次加以调整才能正确显示。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/200387
推荐阅读
相关标签
  

闽ICP备14008679号