本文可能不会详细记录每一步实现的过程,但必定程度上能够引领小伙伴走向更开阔的视野,串联每一个环节,呈现予你不同的效果。html
随着分布式微服务容器技术的发展,传统监控系统面临许多问题:mysql
这些都是传统监控所要面临的棘手问题,那么如何解决当前遇到的问题,GPE横空出世,后面会重点分析。程序员
随着分布式微服务的盛行,功能模块的拆分细化,不管对于开发仍是运维,日志的重要性都是不言而喻的,可是如何存储分析定位查看日志,一百个公司可能会有两百种作法。有的不多记录日志,有的日志等级都不分,有的写入文本而后就无论不问了,有的向MySql数据库一扔也没有了下文,等到用户投诉或者被发现问题,才会翻一翻。web
那么如何正确优雅的记录日志呢?相信你们对于ELK并不陌生,可能很多小伙伴都接触过,对于中小型互联网创业公司来讲,使用ELK搭建日志分析系统的确是一个不错的选择。sql
ELK由Elasticsearch、Logstash和Kibana三剑客组成,固然了以上是最基本的组件,为了使的架构流程更加丰满,咱们加入了Redis作缓冲队列,配置了sendmail作异常日志告警。数据库
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。它的特色有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口等。api
Logstash数据分析工具,它能够对系统生成的的日志进行采集、分析,存储。2013 年,Logstash 被 Elasticsearch 公司收购,ELK Stack 正式成为官方用语。服务器
Kibana是一个开源的分析与可视化平台,用来搜索、查看存储在Elasticsearch索引中的数据。restful
ELK主要收集分析预警的是咱们平台系统中各个服务的业务日志,通常经过日志组件(log4j 、log4j2 、logback)来收集并写入文本。可是对于系统自己以及一些应用软件的监控预警,这套方案显然是不合适的,这里推荐一下GPE三剑客,固然了GPE是我本身意淫出来的组合。网络
Grafana、Prometheus、Exporter(一系列插件),自定义的三剑客,固然了为了使得整合监控程序更加流畅完整,咱们加入了注册中心Consul作服务发现,实现动态添加服务,使用邮件、钉钉以及webhook实现异常告警。
GPE组件只是其中的一种实现方式罢了,Grafana配合InfluxData提供Telegraf也能够收集不少Metrics,实现更为丰富的大屏监控预警。
Grafana 是一个开箱即用的可视化工具,具备功能齐全的度量仪表盘和图形编辑器,有灵活丰富的图形化选项,能够混合多种风格,支持多个数据源特色。
Prometheus是一个开源的服务监控系统,它经过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上。
如架构图所示,Prometheus经过安装在远程机器上的exporter来收集监控数据。
Consul有多个组件,可是总体来看,它是你基础设施中用于发现和配置服务的一个工具。它提供以下几个关键功能:
Consul被设计为对DevOps群体和应用开发者友好,他很是适合现代的、可伸缩的基础设施。
如文章开头所述,本文并无一步步详细记录安装使用教程,这些教程网上都有,即便有坑,相信做为程序员的你也可以解决。不才,在这里只是抛砖引玉,但愿各位小伙伴能够学到更多知识。
还记得许多年前的春天,那时网站还都是静态页面,没有图片也没有绚丽的效果,没有24小时服务的客服,可当初程序员是那么快乐,虽然只有网页三剑客,在网上、在指尖、在BBS中,挥洒着本身的青春热血,若是有一天 我老无所依,请把我留在 在那互联网浪潮里。
现现在,随着云计算、分布式、微服务的盛行,程序员的你是否已经疲倦与本身的CURD,是否已经不屑于与产品汪扯皮,来来来,返回顶部小伙伴们再看看一遍,谁说程序员所有的时间都要敲代码,是时候须要去需找本身的另外一片天空了。
声明:部分文字介绍来源于网络。