prometheus监控flink

背景

  很久没写博客了,今天也算完成了一个小测试。由于flink没有监控的平台,只是自己写了python脚本去监控发报警。flink 自己的ui界面其实已经有很多的指标可以看了,但是就得自己一个一个的去找到,所以基于这个我想找个监控的平台去监控一下flink,google,官网,博客以后发现大多数用的都是prometheus + grahana去监控展示的。于是开始了我的链路打通。

 

Promethesu 

  什么是prometheus ?https://prometheus.io/docs/introduction/overview/ 看官网就可以了。我也是没有接触过,只是听说过,带着学习的态度去了解吧。看了基本的介绍,然后把prometheus的结构了解一下。

  

 

 

  对架构图简单的说明一下,给我的理解就是这么几部分。

  采集部分,pushgateway 和 exporters ,为啥是两个呢?就是涉及到了固定机器和动态机器的问题。就像我们flink on yarn,一个job作业会分发到几个机器上,我们不能每次都要去重新配置prometheus的上报地方吧?所以通过gateway的方式让flink自动上报到gateway,然后prometheus去gateway同步数据就可以了。exporters就是我们有5台机器的监控,那么就是配置好这个5台机器就可以了。然后把exporter安装到五台机器让他们上报到prometheus就可以了。

  中间的部分是服务动态发现,prometheus服务。数据是存在TSDB一种时序数据库在我们的磁盘上,然后通过http对外保留接口。

  最后一部分就是报警和展示。报警我本次没做,展示也没做。

 

过程

 

  好了,基本的架构了解了。我们要做的就是prometheus 配置启动,然后gateway连通prometheus,之后配置flink,开发一个flink任务,最后到prometheus上能看到指标就到此为止了,后面的展示应该也就简单了!总体来说都不难。

   prometheus pushgateway 安装配置

  我在机器上安装了docker,直接进行docker的拉取最新版本安装的prometheus,因为我也是一个docker小白,所以也想尝试尝试!

  

  sudo docker run \ -p 9090:9090 \ -v /path/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
  这里需要我们自己去配置一下yml文件,具体如图:
  

 

   其实应该先把gateway先启动起来的,不过无妨。9090默认prometheus的端口,9091 pushgateway的端口。这里注意的是每个配置的上下级的缩进,因为缩进我这里弄了半天感觉没啥错误,结果就是因为没注意缩进导致卡了一下。

  这样prometheus就完成了,我们也启动起来了。通过9090端口访问,可以看到prometheus服务和pushgateway服务都是正常运行,我因为刚才也说到了应该先启动gateway的,如果你先启动prometheus,可能pushgateway现在不是绿色的状态。

  

 

 

  安装pushgateway很简单,就是docker一个命令搞定。
  
  sudo docker pull prom/pushgateway
  sudo docker run -d -p 9091:9091 --name pushgateway prom/pushgateway
  
  然后通过9191访问界面。至此我们就完成了安装,然后就是去配置flink。
 

  flink 配置

 
  打开flink flink-conf.yaml,安装官网配合我们的上报地址:
  

 

    上报完毕以后,因为prometheus是一个插件,所以没有直接在flink的lib中,但是plugins中已经提供了对应jar,找到以后放到lib中。

  cp plugins/metrics-prometheus/flink-metrics-prometheus-1.12.5.jar lib/

  这样我们启动的时候flink run的时候会去加载我们的jar包,这样简单的链路就通了。我们自己flink任务是通过streamx进行管理提交的采用的是application模式。作业提交完毕以后,我们再从9090端口查看,如果有flink开头的指标,这样整条链路就通了。

  

 

  总结

    不管是prometheus还是docker,这些都是自己第一次尝试用于正式环境,以及第一次用。所以想记录一下这个过程,过程很简单,但是还是要操作一下,关键点就是想明白prometheus那个架构图。有哪里说的不对的地方,还希望大家帮忙指出来,一起每天进步一点点!!!底端英语翻译来自今天听的《樊登读书》介绍翻译家许渊冲老先生,借此纪念一下许老!

 

    From hill to hill no bird in flight; From path to path no man in sight.
    A lonely fisherman afloat , Is fishing snow in lonely boat.                          -- 《江雪》柳宗元 许渊冲译

 

 

 

posted @ 2022-09-02 15:44  xiaoyon  阅读(2228)  评论(0编辑  收藏  举报