大数据集群监控配置操作指导(三)Flink监控开启jmx

芒果1年前技术文章1233


官网的关于 flnk+prometheus的文章
https://flink.apache.org/features/2019/03/11/prometheus-monitoring.html
prometheus 和 pushgateway 都是同一个网站下载:
https://prometheus.io/download/
利用 PrometheusReporter 获取监控数据
导包
要使用该 reporter 的话,需要将 opt 目录下的 flink-metrics-prometheus-1.9.0.jar 依赖放到 lib 目录下
cp opt/flink-metrics-prometheus_2.12-1.13.6.jar lib/
可以配置的参数有:
port:该参数为可选项,Prometheus 监听的端口,默认是 9249,和上面使用 JMXReporter 一样,如果是在一台服务器上既运行了 JobManager,又运行了 TaskManager,则使用端口范围,比如 9249-9259。
filterLabelValueCharacters:该参数为可选项,表示指定是否过滤标签值字符,如果开启,则删除所有不匹配 [a-zA-Z0-9:_] 的字符,否则不会删除任何字符。
除了上面两个可选参数,另外一个参数是必须要在 flink-conf.yaml 中配置的,那就是 metrics reporter class。比如像下面这样配置:
metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter
利用 PrometheusPushGatewayReporter 获取监控数据
PushGateway 是 Prometheus 生态中一个重要工具,使用它的原因主要是:
Prometheus 采用 pull 模式,可能由于 Prometheus 和其他 target 对象不在一个子网或者防火墙原因,导致 Prometheus 无法直接拉取各个 target 数据。
在监控业务数据的时候,需要将不同数据汇总, 由 Prometheus 统一收集。
那么使用 PrometheusPushGatewayReporter 的话,该 reporter 会定时将 metrics 数据推送到 PushGateway,然后再由 Prometheus 去拉取这些 metrics 数据。如果使用 PrometheusPushGatewayReporter 收集数据的话,也是需要将 opt 目录下的 flink-metrics-prometheus-1.9.0.jar 依赖放到 lib 目录下的,可配置的参数有:
deleteOnShutdown:默认值是 true,表示是否在关闭时从 PushGateway 删除指标。
filterLabelValueCharacters:默认值是 true,表示是否过滤标签值字符,如果开启,则不符合 [a-zA-Z0-9:_] 的字符都将被删除。
host:无默认值,配置 PushGateway 服务所在的机器 IP。
jobName:无默认值,要上报 Metrics 的 Job 名称。
port:默认值是 -1,这里配置 PushGateway 服务的端口。
randomJobNameSuffix:默认值是 true,指定是否将随机后缀名附加到作业名。
配置 Reporter
在 flink-conf.yaml 中配置的样例如下:
metrics.reporter.promgateway.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
metrics.reporter.promgateway.host: 172.16.104.226
metrics.reporter.promgateway.port: 9091
metrics.reporter.promgateway.jobName: myJob
metrics.reporter.promgateway.randomJobNameSuffix: true
metrics.reporter.promgateway.deleteOnShutdown: false
metrics.reporter.promgateway.groupingKey: k1=v1;k2=v2
metrics.reporter.promgateway.interval: 60 SECONDS 

36ACFB0D-848A-494C-9C11-DB5B76DC3A33.png


部署 pushgateway
Pushgateway 是一个独立的服务,Pushgateway 位于应用程序发送指标和 Prometheus 服务器之间。 Pushgateway 接收指标,然后将其作为目标被 Prometheus 服务器拉取。可以将其看作代理服务,或者与 blackbox exporter 的行为相反,它接收度量,而不是探测它们。
解压 pushgateway
Tar -xvf pushgateway-1.5.1.linux-amd64.tar.gz
mv pushgateway-1.5.1.linux-amd64 pushgateway
启动 pushgateway
进入到 pushgateway 目录下
Cd pushgateway
./pushgateway & 

265F7602-7F0A-4A3E-A7AE-6D6F14394DE2.png


配置成服务pushgateway
vim /etc/systemd/system/pushgateway.service
[Unit]
Description=pushgateway
After=network.target
[Service]
Type=simple
User=root
ExecStart=/opt/dtstack/pushgateway/pushgateway
Restart=on-failure
[Install]
WantedBy=multi-user.target
启动pushgateway服务,并配置开机自启
systemctl daemon-reload
systemctl start pushgateway
systemctl status pushgateway
systemctl enable pushgateway 



查看是否在后台成功运行
ps aux | grep pushgateway 



登录 pushgateway webui
http://172.16.104.226:9091/ 



运行任务
./bin/flink run -m yarn-cluster -yjm 1024 -ytm 1024 examples/streaming/WindowJoin.jar 


8754F599-C512-4F98-9735-8D8A311DABDD.png

修改prometheus配置
vim /opt/dtstack/prometheus-2.33.3/prometheus.yml
scrape_configs:  
  - job_name: 'pushgateway'
    static_configs:
      - targets: ['localhost:9091']
        labels:
          instance: 'pushgateway'
重启prometheus
systemctl restart prometheus 











反压查看监控:
flink_taskmanager_job_task_isBackPressured
是否反压
flink_taskmanager_job_task_isBackPressured{jobUqId="aBcDf"}
发送端很高,说明是下游反压
flink_taskmanager_job_task_buffers_outPoolUsage{jobUqId="aBcDf",task_id="0dfd460ec7c42df129e084b4306beaa2"}
接收端很高, 说明接收端正在将反压传递给上游节点
flink_taskmanager_job_task_buffers_inPoolUsage{jobUqId="aBcDf",task_id="0dfd460ec7c42df129e084b4306beaa2"}
flink_taskmanager_job_task_buffers_inputFloatingBuffersUsage{jobUqId="aBcDf",task_id="0dfd460ec7c42df129e084b4306beaa2"}
flink_taskmanager_job_task_buffers_inputExclusiveBuffersUsage{jobUqId="aBcDf",task_id="0dfd460ec7c42df129e084b4306beaa2"}
———————————————— 


相关文章

shell编程基础(二)

1、条件表达式1.1 文件判断常用文件测试操作符:-d文件,d的全拼为directory 文件存在且为目录则为真,即测试表达式成立-f文件,f的全拼为file 文件存在且为普通文件则为真,即测试表达式...

开源大数据集群部署(二十)Trino部署

开源大数据集群部署(二十)Trino部署

2.9.1 解压trino的包到opt目录cd /root/bigdata tar -xzvf trino-server-389.tar.gz -C /opt/ ln -s /opt/trino-...

ntp服务配置

ntp服务配置

安装:yum -y install ntp服务命令systemctl enable ntpd 开机启动systemctl start ntpd 启动服务systemctl stop ntpd 停止服务...

Flink window详解

Flink window详解

一、窗口(window)一般真实的流都是无界的,如果是无界怎样处理无界的数据可以把无限的数据流进行切分,得到有限的数据集进行处理 —— 也 就是得到有界流 窗口(window)就是将无限流切割为有限流...

C++ 编程:数组的定义

1. 什么是数组?数组让能够按顺序将一系列相同类型的数据存储到内存中 C++ 中的数组可分为静态数组 与 动态数组 两种。2. 静态数组首先介绍声明一个 静态数组 的语法:/* ElementType...

rancher上kube-prometheus部署报错处理

rancher上kube-prometheus部署报错处理

问题描述rancher 上安装kube-prometheus,版本:8.3.9  ,Chart 仓库:bitnami 服务 pod: prometheus-kube-prometheus-promet...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。