左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家,骨灰级程序员
立即订阅
40357 人已学习
课程目录
已完结 108 讲
0/6登录后,你可以任选6讲全文学习。
开篇词 | 洞悉技术的本质,享受科技的乐趣
免费
01 | 程序员如何用技术变现(上)
02 | 程序员如何用技术变现(下)
03 | Equifax信息泄露始末
04 | 从Equifax信息泄露看数据安全
05 | 何为技术领导力?
06 | 如何才能拥有技术领导力?
07 | 推荐阅读:每个程序员都该知道的知识
08 | Go语言,Docker和新技术
09 | 答疑解惑:渴望、热情和选择
10 | 如何成为一个大家愿意追随的Leader?
11 | 程序中的错误处理:错误返回码和异常捕捉
12 | 程序中的错误处理:异步编程以及我的最佳实践
13 | 魔数 0x5f3759df
14 | 推荐阅读:机器学习101
15 | 时间管理:同扭曲时间的事儿抗争
16 | 时间管理:如何利用好自己的时间?
17 | 故障处理最佳实践:应对故障
18 | 故障处理最佳实践:故障改进
19 | 答疑解惑:我们应该能够识别的表象和本质
20 | Git协同工作流,你该怎么选?
21 | 分布式系统架构的冰与火
22 | 从亚马逊的实践,谈分布式系统的难点
23 | 分布式系统的技术栈
24 | 分布式系统关键技术:全栈监控
25 | 分布式系统关键技术:服务调度
26 | 分布式系统关键技术:流量与数据调度
27 | 洞悉PaaS平台的本质
28 | 推荐阅读:分布式系统架构经典资料
29 | 推荐阅读:分布式数据调度相关论文
30 | 编程范式游记(1)- 起源
31 | 编程范式游记(2)- 泛型编程
32 | 编程范式游记(3) - 类型系统和泛型的本质
33 | 编程范式游记(4)- 函数式编程
34 | 编程范式游记(5)- 修饰器模式
35 | 编程范式游记(6)- 面向对象编程
36 | 编程范式游记(7)- 基于原型的编程范式
37 | 编程范式游记(8)- Go 语言的委托模式
38 | 编程范式游记(9)- 编程的本质
39 | 编程范式游记(10)- 逻辑编程范式
40 | 编程范式游记(11)- 程序世界里的编程范式
41 | 弹力设计篇之“认识故障和弹力设计”
42 | 弹力设计篇之“隔离设计”
43 | 弹力设计篇之“异步通讯设计”
44 | 弹力设计篇之“幂等性设计”
45 | 弹力设计篇之“服务的状态”
46 | 弹力设计篇之“补偿事务”
47 | 弹力设计篇之“重试设计”
48 | 弹力设计篇之“熔断设计”
49 | 弹力设计篇之“限流设计”
50 | 弹力设计篇之“降级设计”
51 | 弹力设计篇之“弹力设计总结”
52 | 管理设计篇之“分布式锁”
53 | 管理设计篇之“配置中心”
54 | 管理设计篇之“边车模式”
55 | 管理设计篇之“服务网格”
56 | 管理设计篇之“网关模式”
57 | 管理设计篇之“部署升级策略”
58 | 性能设计篇之“缓存”
59 | 性能设计篇之“异步处理”
60 | 性能设计篇之“数据库扩展”
61 | 性能设计篇之“秒杀”
62 | 性能设计篇之“边缘计算”
63 | 区块链技术的本质
64 | 区块链技术细节:哈希算法
65 | 区块链技术细节:加密和挖矿
66 | 区块链技术细节:去中心化的共识机制
67 | 区块链技术细节:智能合约
68 | 区块链技术 - 传统金融和虚拟货币
69 | 程序员练级攻略:开篇词
70 | 程序员练级攻略:零基础启蒙
71 | 程序员练级攻略:正式入门
72 | 程序员练级攻略:程序员修养
73 | 程序员练级攻略:编程语言
74 | 程序员练级攻略:理论学科
75 | 程序员练级攻略:系统知识
76 | 程序员练级攻略:软件设计
77 | 程序员练级攻略:Linux系统、内存和网络
78 | 程序员练级攻略:异步I/O模型和Lock-Free编程
79 | 程序员练级攻略:Java底层知识
80 | 程序员练级攻略:数据库
81 | 程序员练级攻略:分布式架构入门
82 | 程序员练级攻略:分布式架构经典图书和论文
83 | 程序员练级攻略:分布式架构工程设计
84 | 程序员练级攻略:微服务
85 | 程序员练级攻略:容器化和自动化运维
86 | 程序员练级攻略:机器学习和人工智能
87 | 程序员练级攻略:前端基础和底层原理
88 | 程序员练级攻略:前端性能优化和框架
89 | 程序员练级攻略:UI/UX设计
90 | 程序员练级攻略:技术资源集散地
91 | 程序员面试攻略:面试前的准备
92 | 程序员面试攻略:面试中的技巧
93 | 程序员面试攻略:面试风格
94 | 程序员面试攻略:实力才是王中王
95 | 高效学习:端正学习态度
96 | 高效学习:源头、原理和知识地图
97 | 高效学习:深度,归纳和坚持实践
98 | 高效学习:如何学习和阅读代码
99 | 高效学习:面对枯燥和量大的知识
左耳听风
登录|注册

24 | 分布式系统关键技术:全栈监控

陈皓 2017-12-21
首先,我们需要一个全栈系统监控的东西。它就像是我们的眼睛,没有它,我们就不知道系统到底发生了什么,我们将无法管理或是运维整个分布式系统。所以,这个系统是非常非常关键的。
而在分布式或 Cloud Native 的情况下,系统分成多层,服务各种关联,需要监控的东西特别多。没有一个好的监控系统,我们将无法进行自动化运维和资源调度。
这个监控系统需要完成的功能为:
全栈监控;
关联分析;
跨系统调用的串联;
实时报警和自动处置;
系统性能分析。

多层体系的监控

所谓全栈监控,其实就是三层监控。
基础层:监控主机和底层资源。比如:CPU、内存、网络吞吐、硬盘 I/O、硬盘使用等。
中间层:就是中间件层的监控。比如:Nginx、Redis、ActiveMQ、Kafka、MySQL、Tomcat 等。
应用层:监控应用层的使用。比如:HTTP 访问的吞吐量、响应时间、返回码,调用链路分析,性能瓶颈,还包括用户端的监控。
这还需要一些监控的标准化。
日志数据结构化;
监控数据格式标准化;
统一的监控平台;
统一的日志分析。

什么才是好的监控系统

这里还要多说一句,现在我们的很多监控系统都做得很不好,它们主要有两个很大的问题。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《左耳听风》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(25)

  • 怪盗キッド
    我使用asm写了一个java接口性能监控和统计的工具MyPerf4J:https://github.com/ThinkpadNC5/MyPerf4J
    2018-04-30
    19
  • 曹林华
    Zipkin 更适合做全链路跟踪,主要有下面两个好处
    1. 接入sdk来实现,比较灵活,管理起来方便
    2. Pingpoint 通过依赖编织,接入一个 jar 包在jvm 启动命令中,接入简单,但是管理麻烦,不透明
    2018-01-06
    11
  • whhbbq
    陈老师,请问zipkin和pinpoint哪个更好用点

    作者回复: Zipkin

    2017-12-21
    8
  • 毛洪博
    对于业务,中间件,基础监控,三者相互关联,非常认同,想问下,这块如何实现?一个监控系统,如何正确的显示三个层次的信息?
    2018-04-07
    6
  • _CountingStars
    请问老师的架构图 示意图 是用什么软件画的
    2018-01-18
    6
  • shniu
    请问浩哥,有哪些好用的开源监控平台吗

    作者回复: ELK

    2018-04-06
    5
  • it-spurs
    对比过各个开源分布式调用链系统,其中skywalking各方面都更优秀,代码无侵入,性能好,界面强大,监控指标多,有监控告警,提供非常多的插件,可以监控市面上大部分主要的开源框架和中间件,比如rabbitmq,dubbo,springcloud,mysql,是一款国内的优秀开源软件,已经在Apache孵化器,生态也在扩展。
    2019-04-21
    3
  • enrique
    本文中提到的开源全栈监控系统zipkin适合以go语言为主的开发团队吗?如果不适合,go语言该如何做到同样的效果?
    2018-01-24
    3
  • Lincoln
    皓哥,我们公司也有做数据监控,包括业务层,中间层和底层,但是三者之间没有什么关联,平时定位问题只能通过时间点来分析三者的关系,但是感觉很麻烦。今天看了这篇文章,刚好提到了关联的重要性,但我还是不知道用什么好的技术手段去进行监控的关联?
    2019-04-14
    2
  • V
    实用
    2017-12-20
    2
  • Wander
    陈老师,我在一家硅谷startup工作,感觉我们的工程师都没有重视全栈监控的意识(比如到处200加err code)。想请问您有没有推荐的英文资料能解释清楚全栈监控重要性的?谢谢!
    2019-02-20
    1
  • MarksGui
    安卓什么时候才有倍速播放啊?这个功能真的太需要了!
    2018-06-15
    1
  • 对酒当歌
    陈老师,zinkin在线上实时监控消耗性能吗,我是用在线上好还只是性能压力测试。
    2018-06-04
    1
  • 约书亚
    皓哥,我们团队基于微服务的架构,做了大量的监控,比如elk针对错误日志的告警,promethues针对系统容器和应用的监控,数据库使用阿里云本身的监控,全部整合到一套仪表盘中
    但即使如此,我还作为负责人还是感到很“虚”,体现在几处:1.没法预防,这个感觉很难 2.很难把握监控的粒度,粗了,定位问题太模糊,细了,工作量大,又怕影响性能(就当我耍流氓吧)。皓哥说的字节码技术应该就是动态AOP吧,基于现在spring系,做aop简单但是很容易出错
    2018-04-22
    1
  • 张祥
    学习了一些zipkin的东西,几点疑问?就拿java服务举例,服务增加这种侵入式监控,并发延迟受影响的程度如何衡量?collector如何承受高并发去扩容?集群模式确定单个实例故障延迟容易吗?😁
    2018-03-01
    1
  • whhbbq
    陈老师,这些好的监控系统的特性zipkin都能实现吗?
    2018-02-02
    1
  • 永靖
    关于监控组件,有没有开源的可以参考
    2017-12-20
    1
  • 郎哲
    没有做监控的可以参考做一下啦,基础监控一般像阿里云和AWS提供商都做了
    2017-12-19
    1
  • edisonhuang
    建立全站的系统监控,是我们做分布式系统性能分析的眼睛。
    有了全站的系统监控,就可以做分布式系统的容量管理和性能管理。从而可以做到问题快速定位和系统性能分析。
    在做全站监控的过程中需要注意全站日志结构化和统一,对关联指标做聚合,对性能指标可以做topn排序,从而能再发生问题时候快速定位故障点,帮助开发人员识别性能瓶颈,合作改进,提升系统性能和稳定性。
    2019-06-06
  • YSS
    皓叔,APM是基于zipkin开发的?
    2019-03-21
收起评论
25
返回
顶部