今天我们要谈的是在IT中的Prometheus,就好像你在电影中所看到的一样酷,Prometheus非常酷。如今,容器技术流行度,不言而喻,你不懂点容器技术,都不太好意思说自己是干IT的,我相信你可以找到这片文章,说明你对容器技术有了一些基础,那么我们就直奔主题,如何用Prometheus来实现docker的monitor呢?
github: https://github.com/docker-monitor
首先我们看一张overview的monitor结构图:
overview.pic.jpg
在上面这张图中包含的component有如下:
componments.pic_hd.jpg
到此如果你仍然一头雾水,那么请继续往下看,
-
Prometheus Server: 万物之源,我们所有要monitor的metrics都来自这里,它帮助我们收集并分析metrics。
-
Consul: Consul 既可以作为KV store,同时也可以用作服务发现,而且它的服务发现机制很不错,有兴趣的同学可以自行学习其官方文档(推介etcd做KV store),但是consul提供的CURD不太完美(个人认为),所有后面我自己写了一个api server来操作consul,那么在此,我们主要用consul作为服务发现,我们会把所有需要monitor的metrics保存到consul。
-
AlertManager: Prometheus 官方提供的套件,用来做触发alert,它虽然比较灵活,但是门槛比较高,我想后面有专题来分享关于Alert部分的知识,你现在只需知道他是我们用作触发并发送警报。
-
Grafana: Gafana 是一个非常酷的dashboard,我相信当你第一眼看到它你会爱上它的,题提供了大量的dashboard和各种插件,可以非常灵活的配置不同的数据源,就我们的monitor就是其中一种数据源prometheus。这部分不会很难,但是需要一定的耐心,你可以去其官网了解一些基础。后面在如何作出一个dashboard部分,会介绍一些相关的知识。
-
Exporter: Exporter这部分没什么可以讲的,但是最重要的一部分,prometheus中的所有metrics真正的来源,你可以在prometheus的官网中找到很多类型的exporter,当然如果你实力足够,你也可以提供exporter给大家用,这里主要想提的一点是,exporter会以http的形式把metrics提供出来,我会把exporter 作为一个services 注册到我们上面提到的consul中,这样我们的prometheus就不用很辛苦的等待exporter,它只需到consul中捞取现有的数据即可,剩下什么时候注册到consul,如何注册到consul中,交给下面的伙伴,不然它们就成了无所事事的伙伴了。
-
Consulgw: 这是一个我用golang写的一个关于操作consul的api server,为了配合起来更加完美,我就写了这部分,方便我们操作consul里面存储的services。
-
Consului: 这部分是consulge部分的一个dashboard(vue实现),这样我们可以通过UI去查看,添加,删除你关心的数据,这部分目前功能比较简单,还在开发中,有兴趣的同学可以加入,期待你的贡献!
-
Node-agent: 此部分是整个项目中最简单的一份,此部分主要是实现自动注册我们的exporter services到我们的consul,这就需要前面我们的exporter与consulgw要ready。
如果你现在还是一头雾水,那么请耐心等待,我希望用一些视频来讲解并且不断的更新文档,当然你也可以发email或者微信联系我,希望可以帮到你!
联系方式:
email:david.guo18@yahoo.com
weichat:
最后提醒下,在文首的github链接里面会有详细的setup文档,有任何问题都可以发给我。
网友评论