实时作业要保证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的页面