zoukankan      html  css  js  c++  java
  • 这些技术轮子,让监控落地成为现实!

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

    场景二:系统当前的处理能力如何,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. 多说两句

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

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

     

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

     

    好了,这篇分享都到这儿吧,希望你们能够喜欢。

  • 相关阅读:
    malloc函数具体解释
    Linux pipe函数
    秒杀多线程第四篇 一个经典的多线程同步问题
    LayoutInflater
    D3DXMatrixMultiply 函数
    用qsort排序
    Memcahce(MC)系列(一)Memcache介绍、使用、存储、算法、优化
    ANDROID L——Material Design综合应用(Demo)
    图像切割之(五)活动轮廓模型之Snake模型简单介绍
    uva 10054 The Necklace(欧拉回路)
  • 原文地址:https://www.cnblogs.com/socoool/p/11957051.html
Copyright © 2011-2022 走看看