先上一个架构图

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. win32gui.EnumWindows

    python2 import win32gui, win32con, win32api import time, math, random def _MyCallback( hwnd, extra ) ...

  2. [GCP] Goolge compute Engine

    Which of the following is a PAAS option for hosting web apps on GCP? App Engine standard or flexible ...

  3. Golang 内存管理

  4. RookeyFrame 字典 新增和绑定

    原文:https://www.cnblogs.com/rookey/p/10856657.html 注意: 数据字典 -> 新增 把“是否生效”勾上 是否生效都要勾上哦 !!! 应该自动勾上才对 ...

  5. 二扩域(GF(2^m))中的逆矩阵

    通常的逆矩阵可以用高斯消去法计算.十分有效.还可以使用LU分解,QR分解等. 二扩域中的逆矩阵则不同.看似简单,其实有别:它的所有元素定义在GF(2^m)中.从理论来看,似乎也可以用高斯消去法,只是计 ...

  6. css自定义属性和简单效果

    简介 CSS Variables,一个并不是那么新的东西,但对css来说绝对是一场革命. 之前使用变量的时候,需要借助sass.less等预处理工具来实现,现在我们可以直接使用css来声明变量. 兼容 ...

  7. fluent懒人篇之journal的用法【转载】

    转载地址:http://blog.sina.cn/dpool/blog/s/blog_63a80e870100oblp.html?type=-1 当你在用fluent计算大量类似算例,重复着相同操作的 ...

  8. python实用技巧之任务切分

    Python 大任务切分小任务 今天来说说,Python中的任务切分.以爬虫为例,从一个存 url 的 txt 文件中,读取其内容,我们会获取一个 url 列表.我们把这一个 url 列表称为大任务. ...

  9. [Windows] 输入字符间距变宽

    今天在输入时,不会到误触到哪里,输入的字符间距变得很宽,如下图: 最后找到原因是不小心同时按下了 Shift+Space(空格),进入全角模式,就会导致输入的字符间距变宽 想要恢复,再按一次 shif ...

  10. 范仁义web前端介绍课程---1、课程意义

    范仁义web前端介绍课程---1.课程意义 一.总结 一句话总结: 提供的这一整套学习方法和资源,配合艾宾浩斯遗忘曲线等各种复习.学习算法和后续会有的娱乐化学习方式,能否真正做到让学过的东西不再忘记. ...