架構#
簡單的畫了一下以及粗淺的理解
- flink 原生環境中已經存在了 Prometheus 的插件用於和 Prometheus 交互
- Prometheus 用於 metric 的採集
- node-exporter 會用到
- pushgateway 會用到
- Grafana 主要是 dashboard 的個性化 Prometheus 的頁面雖然能看但是不美觀
環境#
環境 / 組件 | 版本 |
---|---|
操作系統 | CentOS Linux release 7.9.2009 (Core) |
docker | Docker version 1.13.1 |
flink | 1.13.6 on docker |
部署#
Prometheus+Grafana 全部部署在 docker 上
- 准备工作
在 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
- 部署
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 隨便啟動一個作業用於測試
- 觀察
網關查看 prometheus 三件套啟動狀態(up 為啟動)
http://ip:9090/targets#pool-pushgateway
gateway 查看監控到的 flink 作業
http://ip:9091
實踐#
- Grafana 添加 Prometheus source
設置 添加 Prometheus
添加 url 點擊 save
- 添加 Grafana dashborad 模板
grafana dashborad 庫 搜索模板 複製 id
https://grafana.com/grafana/dashboards/
grafana 導入 添加 id 會自動下載
然後調一調就可以了
一些模板沒有數據不清楚怎麼回事
後續#
- flink process 中可配置監控指標 benchmark qps 數據量 延遲