使用Flink Metric Reporter 對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 連接influxdb

docker exec -it e9b352ee20d4 influx

1.3 建庫

create database flink

1.4 建用戶

create user "flink" with password 'flink#123centos' with all privileges;

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

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

2.5 驗證

# prometheus:
打開 http://10.42.63.116:9090/targets

可以在targets中看到pushgateway,如下圖:
在這裏插入圖片描述

# pushgateway:
打開http://10.42.63.116:9091/

可以看到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: 10.42.63.116
metrics.reporter.influxdb.port: 8086
# db,username,password需要跟配置influxdb一致
metrics.reporter.influxdb.db: flink
metrics.reporter.influxdb.username: flink
metrics.reporter.influxdb.password: flink#123centos
#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: 10.42.63.116
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

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

metric repoter 上報操作系統指標,下載jar包上傳到lib目錄下

jna-4.2.2.jar
jna-platform-4.2.2.jar
oshi-core-3.4.0.jar

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 &

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

4. Grafana

4.1 安裝並啓動grafana

下載:
docker pull grafana/grafana

啓動:
docker run -d --name=grafana -p 3000:3000 grafana/grafana

首次打開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可能需要再次加以調整才能正確顯示。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章