这些技术轮子让监控落地成为现实

32次阅读

共计 2385 个字符,预计需要花费 6 分钟才能阅读完成。

场景一:页面提示超时了,到底是哪个服务响应慢了呢?

场景二:系统当前的处理能力如何,TPS、QPS 指标是多少呢?

场景三:线上服务部署在多台机器上,你挨个登录机器去查日志,感觉烦不烦?

面对诸如上面的场景,如果你正在纠结,那今天罗列推荐的这些轮子,多少都能解你所惑。

0. 监控天下三分

先帝创业未半而中道崩殂,今监控天下三分。如下图所示,监控的天下被划分为基于 Tracing(调用链)监控、基于 Metrics(指标)监控、基于 Logging(日志)的监控。

1. 基于 Tracing 的监控

基于 Tracing 的监控,背后对应的是追踪系统,也有人叫调用链系统,做应用性能监控(APM)这块是必不可少的。

如果你想知道一次服务调用,中间经过了哪些环节?如果你想了解一次服务调用过程中各个环节的耗时?如果 … … 那不妨了解了解下面的这些轮子。

Skywalking,国产的优秀 APM 组件。是一个对 Java 分布式应用的业务运行情况进行追踪、告警和分析的系统。

 开源地址:https://github.com/apache/skywalking

Zipkin,是由 Twitter 公司开源的分布式的跟踪系统。主要包括:数据的收集、存储、查找和展现。

 开源地址:https://github.com/openzipkin/zipkin

Pinpoint,由韩国人开源的分布式跟踪组件,是一款对 Java 编写的大规模分布式系统的 APM 工具。

 开源地址:https://github.com/naver/pinpoint

贴一下效果图,不知能否勾起你心中的火热。

2. 基于 Metrics 的监控

基于 Metrics 的监控,背后对应的是度量(指标监控)系统。

如果你想知道机器在某段时间内的 CPU 使用率、系统负载;如果你想知道应用在某段时间内的 HTTP 请求访问量;如果你想知道 MySQL 的连接数、QPS;如果 … … 那不妨尽情的了解了解下面的这些轮子。

Prometheus + Grafana,普罗米修斯邂逅格拉法纳就成了监控界的 PGOne,宣称使用领先的开源监控解决方案去增强指标监控功能,不过敲摸试了一下,效果也确实强大。

 学习地址:https://github.com/prometheus

Influxdata,定位也是一个强大的实时监控系统。大体流程是:telegraf 收集监控的指标;然后交给 InfluxDB 进行存储;chronograf 负责从 InfluxDB 查询数据展示;kapacitor 负责监控报警。

 学习地址:https://github.com/influxdata

Grafana,格拉法纳专业负责展示,提供漂亮的 UI。不过她可以跟上面的普罗米修斯 Prometheus、InfluxDB 任性组合搭配,这倒是给我们提供一种扩展的可能性,我们只需要把要监控的指标放进 InfluxDB,再搭上 Grafana,那效果堪称完美!

 学习地址:https://github.com/grafana

Skywalking,在上面基于 Tracing 监控的部分已经提到了,看来是能者多劳了,既能做调用链监控,又能基于指标进行监控。

 学习地址:https://github.com/apache/skywalking

Elastic,估计很多人都听说过它旗下的 ELK,也就是 ElasticSearch + Logstash + Kibana 的组合。由于后来推出了一系列的专门用于采集数据的 Beats,造就了无限的可能性,当然完成 Metrics 指标采集监控也不在话下。

 学习地址:https://www.elastic.co/cn/products/infrastructure-monitoring

肆意贴一张 Grafana 的效果图,看看你是否钟爱这一款?

3. 基于 Logging 的监控

基于 Logging 的监控,说白了也就是日志监控。

我们都知道,在微服务盛行的今天,服务散落部署在各个节点,导致排查定位问题需要连续切换 N 台机器,操作相当繁琐,不知道你有没有同感。如果你也有此同感,不妨了解了解下面的技术轮子。

日志监控的整体设计思路大多为: 日志采集、日志存储、日志分析及报警,如果日志量再大点,那就来一个对列(kafka、redis、RabbitMQ 等)作为缓冲

Elastic,在上面基于指标监控的部分已经提到了它,其实由于采集数据的 Beats 下有一款 FileBeat 专门采集日志文件,然后把采集的日志存储到 ElasticSearch,接下来用 Kibana 进行分析展示,这样一套轮子组合让你查询日志不再难(小声的说一下,貌似它也支持 APM 应用性能监控,三分天下而它是交汇的覆盖区域)。

 入门地址:https://www.elastic.co/cn/products/log-monitoring

Graylog,一个集日志归集、分析、展现和预警工具,而且是基于 Java 开发,你心不心动?有没有想跃跃欲试?

 入门地址:https://www.graylog.org

Rsyslog,一款用于 Linux 系统以通过 TCP/UDP 协议转发或接收日志消息的开源工具。

 入门地址:https://www.rsyslog.com

Flume,一款用 Java 开发的采集 agent,让 Java 猿二次包装开发不是问题。

 入门地址:http://flume.apache.org/

4. 多说两句

说了这么多,轮子千万款,感觉总有一款适合你,或许有了轮子的助力,会让你事半功倍,腾出更多时间冲咖啡!

不过话又说回来,纸上得来终觉浅,绝知此事要躬行;纵然轮子千万款,唯有实践才是硬道理!

另外本次谈及的部分技术轮子的用法,在之前的系列文章中都曾提及,感兴趣的可以看看往期的文章。

好了,这篇分享都到这儿吧,希望你们能够喜欢,如果感觉有点意思,无需赞赏,芸芸众生,相遇相识便是缘,不妨动动手指转发分享一下吧。

正文完
 0