基于grafana+prometheus构建Flink监控

先上一个架构图:

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        2 weeks ago         138MB
grafana/grafana      latest              a6e14b4109af        2 weeks ago         253MB
prom/pushgateway     latest              20e6dcae675f        4 weeks ago         19.2MB
prom/node-exporter   latest              e5a616e4b9cf        2 months ago        22.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 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

查看docker进程

$ docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                    NAMES
4a689cf48e10        prom/pushgateway     "/bin/pushgateway"       5 days ago          Up 5 days           0.0.0.0:9091->9091/tcp   infallible_goldstine
fcc40433bf75        grafana/grafana      "/run.sh"                5 days ago          Up 5 days           0.0.0.0:3000->3000/tcp   grafana
8ba942d0cf35        prom/prometheus      "/bin/prometheus --c…"   5 days ago          Up 5 days           0.0.0.0:9090->9090/tcp   quizzical_colden
b84b0f4be2b2        prom/node-exporter   "/bin/node_exporter"     5 days ago          Up 5 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        0      0 172.17.0.1:39028        172.17.0.4:9091         ESTABLISHED -
tcp6       0      0 :::9100                 :::*                    LISTEN      -
tcp6       0      0 :::3000                 :::*                    LISTEN      -
tcp6       0      0 :::9090                 :::*                    LISTEN      -
tcp6       0      0 :::9091                 :::*                    LISTEN      -
tcp6       0      0 192.168.229.129:45864   192.168.229.128:9091    TIME_WAIT   -
tcp6       0      0 192.168.229.129:45856   192.168.229.128:9091    TIME_WAIT   -
tcp6       0      0 192.168.229.129:45824   192.168.229.128:9091    TIME_WAIT   -
tcp6       0      0 192.168.229.129:45874   192.168.229.128:9091    TIME_WAIT   -
tcp6       0      0 192.168.229.129:45854   192.168.229.128:9091    TIME_WAIT   -
tcp6       0      0 192.168.229.129:45836   192.168.229.128:9091    TIME_WAIT   -
tcp6       0      0 192.168.229.129:45814   192.168.229.128:9091    TIME_WAIT   -
tcp6       0      0 192.168.229.128:9100    192.168.229.1:13405     ESTABLISHED -
tcp6       0      0 192.168.229.129:45826   192.168.229.128:9091    TIME_WAIT   -
tcp6       0      0 192.168.229.129:45844   192.168.229.128:9091    TIME_WAIT   -
tcp6       0      0 192.168.229.128:9091    172.17.0.2:53930        ESTABLISHED -
tcp6       0      0 192.168.229.129:45846   192.168.229.128:9091    TIME_WAIT   -
tcp6       0      0 192.168.229.128:9100    172.17.0.2:54776        ESTABLISHED -
tcp6       0      0 192.168.229.129:45816   192.168.229.128:9091    TIME_WAIT   -
tcp6       0      0 192.168.229.129:45876   192.168.229.128:9091    ESTABLISHED 40846/java
tcp6       0      0 192.168.229.129:45834   192.168.229.128:9091    TIME_WAIT   -
tcp6       0      0 192.168.229.129:45866   192.168.229.128:9091    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: 9091
metrics.reporter.promgateway.jobName: myJob
metrics.reporter.promgateway.randomJobNameSuffix: true
metrics.reporter.promgateway.deleteOnShutdown: false

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

flink run -m yarn-cluster -ynm LateDataProcess -yn 1 -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}}

对应显示如下:

原文地址:https://www.cnblogs.com/zhouyuekji/p/12411214.html

时间: 2024-07-30 18:01:04

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

Grafana+prometheus监控体系实践

一.前言 1.1.grafana介绍 Grafana是一个开源指标分析和可视化套件,常用于可视化基础设施的性能数据和应用程序分析的时间序列数据.也可以应用于其他领域,包括工业传感器,家庭自动化,天气和过程控制.但请注意,我们使用Grafana最关心的是如何把数据进行聚合后进行展示.Grafana支持多种不同的时序数据库数据源,Grafana对每种数据源提供不同的查询方法,而且能很好的支持每种数据源的特性.它支持下面几种数据源:Graphite.Elasticsearch.CloudWatch.I

GPE监控预警系统(Grafana+Prometheus+Exporter)

GPE监控预警系统(Grafana+Prometheus+Exporter) GPE监控预警系统结构图 一: Grafana 1:简介 大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具.目前已经支持绝大部分常用的时序数据库. Grafana支持许多不同的数据源.每个数据源都有一个特定的查询编辑器,该编辑器定制的特性和功能是公开的特定数据来源. 官方支持以下数据源:Graphite,Elasticsearch,InfluxDB,Prometheus,Cloudwatch,

基于InfluxDB+Grafana打造大数据监控利器--转

这是一个大数据爆发的时代.面对信息的激流.多元化数据的涌现,我们在获取.存储.传输.理解.分析.应用.维护大数据时,无疑需要一种便捷的信息交流通道,以便快速.有效.准确地理解和驾驭这个过程.本文将通过时序数据库(InfluxDB)+Grafana的实践,来介绍如何将数据便捷地展现出来. 一.InfluxDB 开源的分布式时序.时间和指标数据库,使用Go语言编写,无需外部依赖.其中,时间序列数据库是数据格式里包含Timestamp字段的数据,比如某一时间用户上网流量.通话详单等.但是,有什么数据不

Grafana+Prometheus系统监控之webhook

概述 Webhook是一个API概念,并且变得越来越流行.我们能用事件描述的事物越多,webhook的作用范围也就越大.Webhook作为一个轻量的事件处理应用,正变得越来越有用. 准确的说webhoo是一种web回调或者http的push API,是向APP或者其他应用提供实时信息的一种方式.Webhook在数据产生时立即发送数据,也就是你能实时收到数据.这一种不同于典型的API,需要用了实时性需要足够快的轮询.这无论是对生产还是对消费者都是高效的,唯一的缺点是初始建立困难. Webhook有

prometheus+grafana+consul+supervisor搭建监控系统(一)之supervisor搭建

随着公司业务增大,zabbix+脚本监控已经不能满足需求,经过一段时间的研究发现prometheus+grafana+consul+supervisor非常不错,supervisor托管非daemod进程,动态注册到consul中,prometheus通过targets发现consul中的服务,Grafan中data Source配置:Prometheus(http://xxx.xxx.xxx.xxx:9090)获取源数据展示出来(非常漂亮,美观) 把搭建的过程分享给大家  PS:有些还在研究中

Prometheus 运维监控

Prometheus 运维监控 1.Prometheus 介绍详解 2.Prometheus 安装部署 3.Prometheus 配置文件详解 4.Prometheus PromSQL 常用资源 5.Prometheus 配置采集目标 6.Prometheus 重新标签 7.Prometheus 标签使用示例整合 8.Prometheus 基于文件的服务发现 9.Prometheus 监控linux服务器 10.Prometheus PromSQL 获取系统服务运行状态 11.Prometheu

基于Dubbo框架构建分布式服务 (二)

Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配置就能够实现分布式服务调用,也就是说服务提供方(Provider)发布的服务可以天然就是集群服务,比如,在实时性要求很高的应用场景下,可能希望来自消费方(Consumer)的调用响应时间最短,只需要选择Dubbo的Forking Cluster模式配置,就可以对一个调用请求并行发送到多台对等的提供方

[转载] 基于Dubbo框架构建分布式服务

转载自http://shiyanjun.cn/archives/1075.html Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配置就能够实现分布式服务调用,也就是说服务提供方(Provider)发布的服务可以天然就是集群服务,比如,在实时性要求很高的应用场景下,可能希望来自消费方(Consumer)的调用响应时间最短,只需要选择Dubbo的F

基于Dubbo框架构建分布式服务 【转】

Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配置就能够实现分布式服务调用,也就是说服务提供方(Provider)发布的服务可以天然就是集群服务,比如,在实时性要求很高的应用场景下,可能希望来自消费方(Consumer)的调用响应时间最短,只需要选择Dubbo的Forking Cluster模式配置,就可以对一个调用请求并行发送到多台对等的提供方