cyrus

cyrus

梦想是做一名可以“养活”自己的自由职业者 --自由不是你想做什么就做什么 而是不想做什么就不做什么.
github
twitter
bilibili

Prometheus+Grafana プロメテウス+グラファナは、フリンクメトリクスの監視には有名なツールだと聞きました。

アーキテクチャ#

簡単に描いて浅く理解しました。

  • Flink のネイティブ環境には、Prometheus との連携に使用するプラグインが既に存在しています。
  • Prometheus はメトリクスの収集に使用されます。
    • node-exporter が使用されます。
    • pushgateway が使用されます。
  • Grafana は、ダッシュボードのカスタマイズに主に使用されます。Prometheus のページは表示できますが、見た目は美しくありません。

image

環境#

環境 / コンポーネントバージョン
オペレーティングシステムCentOS Linux release 7.9.2009 (Core)
DockerDocker version 1.13.1
Flink1.13.6 on docker

デプロイ#

Prometheus+Grafana はすべて Docker 上にデプロイします。

  1. 準備作業

Linux で次のコマンドを実行します:

mkdir /opt/grafana-storage  # grafanaのデータストレージディレクトリ
chmod -R 777 /opt/grafana-storage
vim /opt/prometheus/prometheus.yml   # 作成して編集します

prometheus.yml(IP を変更するのを忘れないでください)

global:
  scrape_interval:     60s
  evaluation_interval: 60s
 
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus
 
  - job_name: linux
    static_configs:
      - targets: ['ip:9100']
        labels:
          instance: localhost
  - job_name: 'pushgateway'
    static_configs:
      - targets: ['ip:9091']
        labels:
          instance: 'pushgateway'

Flink の設定ファイルに追加します:

metrics.reporter.promgateway.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
metrics.reporter.promgateway.host: ip
metrics.reporter.promgateway.port: 9091
metrics.reporter.promgateway.jobName: flink
metrics.reporter.promgateway.randomJobNameSuffix: true
metrics.reporter.promgateway.deleteOnShutdown: true

  1. デプロイ
mkdir /opt/grafana-storage
chmod -R 777 /opt/grafana-storage

docker run -d -p 3000:3000  --name=grafana   -v /opt/grafana-storage:/var/lib/grafana   grafana/grafana


docker run -d -p 9100:9100  -v "/proc:/host/proc:ro"  -v "/sys:/host/sys:ro"  -v "/:/rootfs:ro"  --net="host"  prom/node-exporter


docker run -d -p 9090:9090  -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  prom/prometheus

docker run -d -p 9091:9091 prom/pushgateway

Flink でテスト用のジョブを適当に起動します。

  1. 観察

ゲートウェイで Prometheus の 3 つのコンポーネントの起動状態を確認します(up が起動中を意味します)。
http://ip:9090/targets#pool-pushgateway

ゲートウェイで監視されている Flink ジョブを確認します。
http://ip:9091

実践#

  • Grafana に Prometheus ソースを追加

設定で Prometheus を追加します。
image
URL を追加し、保存をクリックします。

  • Grafana ダッシュボードテンプレートを追加

Grafana のダッシュボードライブラリでテンプレートを検索し、ID をコピーします。
https://grafana.com/grafana/dashboards/

Grafana にインポートし、ID を追加すると自動的にダウンロードされます。
image

あとは調整するだけです。

image

image

一部のテンプレートにはデータがなく、原因がわかりません。

image

追加#

  • Flink プロセスでは、ベンチマーク、QPS、データ量、遅延などの監視指標を設定できます。
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。