先上一个架构图

Flink App : 通过report 将数据发出去

Pushgateway :  Prometheus 生态中一个重要工具

Prometheus :  一套开源的系统监控报警框架 (Prometheus 入门与实践

Grafana: 一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知(可视化工具Grafana:简介及安装

Node_exporter : 跟Pushgateway一样是Prometheus 的组件,采集到主机的运行指标如CPU, 内存,磁盘等信息

以下安装,大部分参考博客: https://www.cnblogs.com/xiao987334176/p/9930517.html#autoid-0-0-0

1、docker  pull 镜像

docker pull prom/node-exporter
docker pull prom/pushgateway
docker pull prom/prometheus
docker pull grafana/grafana

查看下载的镜像

$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
prom/prometheus latest d5b9d7ed160a weeks ago 138MB
grafana/grafana latest a6e14b4109af weeks ago 253MB
prom/pushgateway latest 20e6dcae675f weeks ago .2MB
prom/node-exporter latest e5a616e4b9cf months ago .9MB

2、编辑prometheus.yml 、创建 Grafana 数据存储目录

$ mkdir /opt/grafana-storage  # grafana 数据存储目录

$ cat /opt/prometheus/prometheus.yml # prometheus 配置
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: ['venn:9100']
labels:
instance: localhost
- job_name: 'pushgateway'
static_configs:
- targets: ['venn:9091']
labels:
instance: 'pushgateway'

3、启动各个组件

docker run -d -p :   --name=grafana   -v /opt/grafana-storage:/var/lib/grafana   grafana/grafana
docker run -d -p : -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" --net="host" prom/node-exporter
docker run -d -p : -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
docker run -d -p : prom/pushgateway

查看docker进程

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4a689cf48e10 prom/pushgateway "/bin/pushgateway" days ago Up days 0.0.0.0:->/tcp infallible_goldstine
fcc40433bf75 grafana/grafana "/run.sh" days ago Up days 0.0.0.0:->/tcp grafana
8ba942d0cf35 prom/prometheus "/bin/prometheus --c…" days ago Up days 0.0.0.0:->/tcp quizzical_colden
b84b0f4be2b2 prom/node-exporter "/bin/node_exporter" days ago Up days fervent_poitras

查看端口

$ netstat -apn | grep -E '9091|3000|9090|9100'
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 172.17.0.1: 172.17.0.4: ESTABLISHED -
tcp6 ::: :::* LISTEN -
tcp6 ::: :::* LISTEN -
tcp6 ::: :::* LISTEN -
tcp6 ::: :::* LISTEN -
tcp6 192.168.229.129: 192.168.229.128: TIME_WAIT -
tcp6 192.168.229.129: 192.168.229.128: TIME_WAIT -
tcp6 192.168.229.129: 192.168.229.128: TIME_WAIT -
tcp6 192.168.229.129: 192.168.229.128: TIME_WAIT -
tcp6 192.168.229.129: 192.168.229.128: TIME_WAIT -
tcp6 192.168.229.129: 192.168.229.128: TIME_WAIT -
tcp6 192.168.229.129: 192.168.229.128: TIME_WAIT -
tcp6 192.168.229.128: 192.168.229.1: ESTABLISHED -
tcp6 192.168.229.129: 192.168.229.128: TIME_WAIT -
tcp6 192.168.229.129: 192.168.229.128: TIME_WAIT -
tcp6 192.168.229.128: 172.17.0.2: ESTABLISHED -
tcp6 192.168.229.129: 192.168.229.128: TIME_WAIT -
tcp6 192.168.229.128: 172.17.0.2: ESTABLISHED -
tcp6 192.168.229.129: 192.168.229.128: TIME_WAIT -
tcp6 192.168.229.129: 192.168.229.128: ESTABLISHED /java
tcp6 192.168.229.129: 192.168.229.128: TIME_WAIT -
tcp6 192.168.229.129: 192.168.229.128: TIME_WAIT -

4、查看组件页面

node_exporter:  ip:9100/metrics

查看 prometheus: ip:9090/targets

如果state 不是 UP 的,等一会就起来了 

查看Grafana: 

默认用户名密码 : amin/admin

此处不再赘述,配置数据源、创建系统负载监控参考博客:https://www.cnblogs.com/xiao987334176/p/9930517.html#autoid-0-0-0

5、配置Flink report :

在Flink 配置文件 flink-conf.yml 中添加如下内容:

##metrics
metrics.reporter.promgateway.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
metrics.reporter.promgateway.host: venn
metrics.reporter.promgateway.port:
metrics.reporter.promgateway.jobName: myJob
metrics.reporter.promgateway.randomJobNameSuffix: true
metrics.reporter.promgateway.deleteOnShutdown: false

启动一个任务(上一篇博客的案例迟到数据处理):

flink run -m yarn-cluster -ynm LateDataProcess -yn  -c com.venn.stream.api.sideoutput.lateDataProcess.LateDataProcess jar/flinkDemo-1.0.jar

查看任务webUI:

PS:任务已经跑了一段时间了

6、Grafana 中配置Flink监控

由于上面一句配置好Flink report、 pushgateway、prometheus,并且在Grafana中已经添加了prometheus 数据源,所以Grafana中会自动获取到 flink job的metrics 。

Grafana 首页,点击New dashboard,创建一个新的dashboard

选中之后,即会出现对应的监控指标

至此,Flink 的metrics 的指标展示在Grafana 中了

flink 指标对应的指标名比较长,可以在Legend 中配置显示内容,在{{key}} 将key换成对应需要展示的字段即可,如: {{job_name}},{{operator_name}}

对应显示如下:

保存,搞定

基于grafana+prometheus构建Flink监控的更多相关文章

  1. Grafana+Prometheus通过node_exporter监控Linux服务器信息

    Grafana+Prometheus通过node_exporter监控Linux服务器信息 一.Grafana+Prometheus通过node_exporter监控Linux服务器信息 1.1nod ...

  2. Docker系列——Grafana+Prometheus+Node-exporter服务器监控平台(一)

    在最近的博文中,都是介绍监控平台的搭建,其实并不难,主要是需要自己动手操作,实践一番就会了. 有天在想,云上的服务器,是不是也可以搭建一个监控平台,所以就捣鼓了一下,不过遗憾的是,使用阿里云开源的插件 ...

  3. Grafana+Prometheus实现Ceph监控和钉钉告警-转载(云栖社区)

    获取软件包 最新的软件包获取地址 https://prometheus.io/download/ Prometheus 1.下载Prometheus $ wget https://github.com ...

  4. Grafana+Prometheus打造springboot监控平台

    1. 环境 springboot 1.5.10.RELEASE Grafana 5.4.2 Prometheus 2.6.0 jdk 1.8 2.通过micrometer与springboot应用和p ...

  5. 基于grafana+telegraf的服务器监控方案

    准备工作:安装InfluxDb 1 Windows 1.1 下载agent      https://dl.influxdata.com/telegraf/releases/telegraf-1.10 ...

  6. Docker系列——Grafana+Prometheus+Node-exporter钉钉推送(四)

    近期搭建的服务器监控平台,来进行一个总结.主要分为监控平台的搭建.告警中心的配置以及消息的推送.推送的话,支持多种终端.具体详细可查看之前的博文,在这里罗列下,方便查看. Docker系列--Graf ...

  7. 基于Docker+Prometheus+Grafana监控SpringBoot健康信息

    在微服务体系当中,监控是必不可少的.当系统环境超过指定的阀值以后,需要提醒指定的运维人员或开发人员进行有效的防范,从而降低系统宕机的风险.在CNCF云计算平台中,Prometheus+Grafana是 ...

  8. 基于Prometheus网关的监控完整实现参考

    prometheus 是一个非常好的监控组件,尤其是其与grafana配合之后,更是如虎添翼.而prometheus的监控有两种实现方式.1. server端主动拉取应用监控数据:2. 主动推送监控数 ...

  9. 基于telegraf+influxdb+grafana进行postgresql数据库监控

    前言 随着公司postgresql数据库被广泛应用,尤其是最近多个项目在做性能测试的时候都是基于postgresql的数据库,为了确定性能瓶颈是否会出现在数据库中,数据库监控也被我推上了日程.在网上找 ...

随机推荐

  1. 织梦cmsf表单提交到邮箱 织梦表单发送到邮箱 织梦自定义表单发邮箱

    大家在做织梦做网站开发时会遇到一个问题:织梦的自定义表单是一个很鸡肋的功能,不仅在后台展示得奇丑,而且也没有提醒功能,使用起来很不方便.很多人用织梦自定义表单时,都想用户提交表单的时候可以发送到自己的 ...

  2. SIGAI机器学习第二十一集 AdaBoost算法2

    讲授Boosting算法的原理,AdaBoost算法的基本概念,训练算法,与随机森林的比较,训练误差分析,广义加法模型,指数损失函数,训练算法的推导,弱分类器的选择,样本权重削减,实际应用. 大纲: ...

  3. 002_基础电路_AD快捷键

    AD快捷键设置 陆小果哥哥制作 1.      F2----------------------------------------放置走线 a)        b)       需设置,点中走线按住 ...

  4. [matlab工具箱] 神经网络Neural Net

    //目的是学习在BP神经网络的基础上添加遗传算法,蚁群算法等优化算法来优化网络,这是后话. 先简单了解了MATLAB中的神经网络工具箱,工具箱功能还是非常强大的,已经可以拟合出非常多的曲线来分析了. ...

  5. JSON字符串 拼接与解析

    常用方式: json字符串拼接(目前使用过两种方式): 1.运用StringBuilder拼接 StringBuilder json = new StringBuilder(); json.appen ...

  6. 深入基础(二)练习题,REPL交互解析器

    NPM     关于npm命令其实不算很多很多,起码比dos命令少不少呢废话少说npm命令大全and各个命令用处持续更新中..来自园子内另外一位大神~:http://www.cnblogs.com/P ...

  7. linux线程操作

    初始化条件变量 int pthread_cond_init(pthread_cond_t *cv,pthread_cond_attr *cattr); 函数返回值:返回0表示成功,返回其他表示失败. ...

  8. sed、awk工具

    ed sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用非常普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出.s ...

  9. Python逆向(五)—— Python字节码解读

    一.前言 前些章节我们对python编译.反汇编的原理及相关模块已经做了解读.读者应该初步掌握了通过反汇编获取python程序可读字节码的能力.python逆向或者反汇编的目的就是在没有源码的基础上, ...

  10. UOJ#400. 【CTSC2018】暴力写挂 边分治 线段树合并

    原文链接 www.cnblogs.com/zhouzhendong/p/UOJ400.html 前言 老年选手没有码力. 题解 先对第一棵树进行边分治,然后,设点 x 到分治中心的距离为 $D[x]$ ...