从 0 开始学微服务
胡忠想
微博技术专家
64643 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 43 讲
开篇词 (1讲)
结束语 (1讲)
从 0 开始学微服务
15
15
1.0x
00:00/00:00
登录|注册

15 | 如何搭建一个可靠的监控系统?

支持PromQL查询语言
采用拉数据方式
时间序列数据库InfluxDB功能强大
提供强大的聚合函数和API
基于时间序列数据库
成熟、应用广泛
Prometheus web UI
Alertmanager
Pushgateway
Jobs/exporters
Prometheus Server
Kapacitor:数据告警
Chronograf:数据展示
InfluxDB:数据存储
Telegraf:数据收集
Graphite-Web:数据展示
Whisper:时序数据库
Carbon:数据收集
引入Beats作为数据收集器
部署Logstash消耗资源
Kibana:数据展示
Elasticsearch:数据处理
Logstash:数据收集和传输
数据展示
数据处理
数据传输
数据收集
存储和性能上的不同之处
Graphite、TICK、Prometheus存储监控数据都采用时间序列数据库
Prometheus适合云原生应用
TICK建议使用Grafana替换Chronograf
推荐使用Grafana做数据展示
Graphite需搭配数据采集系统
建议采用Graphite、TICK或Prometheus
建议选择时间序列数据库解决方案
实时性、灵活性考虑
Prometheus
TICK
Graphite
ELK
数据展示
数据处理
数据传输
数据收集
数据格式要求
工作流程
组成
数据格式要求
功能
组成:Telegraf、InfluxDB、Chronograf、Kapacitor
支持丰富的函数
查询方式
数据格式要求
功能
组成:Carbon、Whisper、Graphite-Web
架构
功能
组成:Elasticsearch、Logstash、Kibana
监控系统的组成主要涉及四个环节
思考题
总结
选型对比
Prometheus
TICK
Graphite
ELK
如何搭建一个可靠的监控系统?

该思维导图由 AI 生成,仅供参考

专栏第 7 期我给你讲解了监控系统的实现原理,先来简单回顾一下,一个监控系统的组成主要涉及四个环节:数据收集、数据传输、数据处理和数据展示。不同的监控系统实现方案,在这四个环节所使用的技术方案不同,适合的业务场景也不一样。
目前,比较流行的开源监控系统实现方案主要有两种:以ELK为代表的集中式日志解决方案,以及GraphiteTICKPrometheus等为代表的时序数据库解决方案。接下来我就以这几个常见的监控系统实现方案,谈谈它们的实现原理,分别适用于什么场景,以及具体该如何做技术选型。

ELK

ELK 是 Elasticsearch、Logstash、Kibana 三个开源软件产品首字母的缩写,它们三个通常配合使用,所以被称为 ELK Stack,它的架构可以用下面的图片来描述。
这三个软件的功能也各不相同。
Logstash 负责数据收集和传输,它支持动态地从各种数据源收集数据,并对数据进行过滤、分析、格式化等,然后存储到指定的位置。
Elasticsearch 负责数据处理,它是一个开源分布式搜索和分析引擎,具有可伸缩、高可靠和易管理等特点,基于 Apache Lucene 构建,能对大容量的数据进行接近实时的存储、搜索和分析操作,通常被用作基础搜索引擎。
Kibana 负责数据展示,也是一个开源和免费的工具,通常和 Elasticsearch 搭配使用,对其中的数据进行搜索、分析并且以图表的方式展示。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

搭建可靠的监控系统是关键的技术挑战之一。本文介绍了ELK、Graphite、TICK和Prometheus四种监控系统的实现方案。ELK采用Elasticsearch、Logstash、Kibana三个开源软件产品,Graphite由Carbon、Whisper、Graphite-Web组成,TICK由Telegraf、InfluxDB、Chronograf、Kapacitor组成,而Prometheus则包含多个组件实现数据拉取、存储、报警和展示。文章通过对比这四种方案,提供了选型建议。 在数据收集方面,ELK使用Beats代理,Graphite需要配合使用开源收据采集组件,TICK使用Telegraf,而Prometheus通过jobs/exporters组件获取数据。数据传输方面,ELK、Graphite和TICK采用“推数据”方式,而Prometheus采取拉数据的方式,对服务端的侵入最小。在数据处理和展示方面,各系统有不同的特点和功能,如ELK适合多维度的数据查询,Graphite提供强大的聚合函数,TICK的InfluxDB支持类似SQL语言的复杂操作,而Prometheus采用独特的PromQL查询语言。 总结来看,ELK技术栈成熟且应用广泛,Graphite提供强大的聚合函数和API接入,TICK的InfluxDB功能强大,而Prometheus采用拉数据方式对业务影响较小。从实时性和灵活性角度考虑,时间序列数据库的监控处理功能都要比ELK更加丰富,使用更灵活也更现代化。因此,建议搭建新的监控系统时可以考虑采用Graphite、TICK或者Prometheus其中之一,根据具体需求选择合适的方案。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学微服务》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(16)

  • 最新
  • 精选
  • xuanyuan
    elk更多是日志吧。大家买课程很多希望看到外面看不到的经验,而不是网上文章的拼凑,毫无营养,说实话。

    作者回复: elk用作监控的有很多地方,另外专栏面向的读者层次不同,有的读者没有基础知识,照顾下他们,科普还是有必要的,更深的使用经验在考虑单独篇幅里写。

    2018-10-01
    2
    79
  • 金hb.Ryan 冷空氣駕到
    很欣慰,我司的监控技术栈是influxdb+grafana,配合程序/collectd 来推送,不过即使influxdb很强大还是建议适当merge一下,不然...都是泪

    作者回复: 哈哈,开源组件在生产环境中用肯定是要优化的

    2018-09-28
    3
  • 天若有情天亦老
    elk+xpack 可以做到小规模的业务监控。 就是watcher比较难用 目前用的方案是 elk stack+zabbix ,求更优方案

    作者回复: 能cover住需求就行

    2018-09-25
  • herome
    墙裂推荐 美团的CAT !!!!
    2018-09-28
    18
  • 公号-技术夜未眠
    关于不同类型监控的技术选型建议: 日志监控推荐用ELK Metrics参数监控推荐用promethus+gafana 调用链监控推荐用skywalking 业务监控推荐用业务开发+gafana
    2020-07-08
    1
    9
  • 开开眼界,用时自行研究,这里就是常规介绍
    2019-06-15
    1
    6
  • 玉剑冰锋
    个人认为ELK更适合进行故障排查定位、数据分析、深度挖掘方向,不知道老师是否认可?另外请教老师一个问题,Prometheus这种拉取方式在小规模可以体现出优势,大规模的情况拉取是不是就不如推送更优了?
    2018-09-27
    2
    4
  • 俯瞰风景.
    监控系统的组成主要涉及四个环节:数据收集、数据传输、数据处理和数据展示。 每个环节都有相应的开源组件可以使用。 成熟的方案有: **1、Beats + Logstash + Elasticsearch + Kibana(Grafana)** **2、StatsD + Carbon + Whisper + Graphite-Web(Grafana)** **3、Telegraf + InfluxDB + Chronograf****(Grafana)**** + Kapacitor ** **4、Prometheus + Grafana** 对于时序数据的处理,后三种方案性能更高,因为有专门的时序数据库来存储数据;对于多维度数据的处理,第一种方案更加合适。
    2021-10-07
    3
  • cqc
    从官方文档来看,Prometheus的指标存储,很高效,但是问题在于没有成熟的高可用,历史数据归档,海量历史数据查询支持。在调研监控系统的过程中,还发现了小米的open falcon,感觉设计得很复杂,它和Prometheus都属于现代的面向微服务设计的指标监控系统,老师能否有机会深度比较一下?另外,想让老师指正一下我对于监控系统的理解:根据我目前的理解,监控系统可以划分为不同的维度:指标监控(如Prometheus,Zabbix),日志监控(NLK/NFK),调用链监控(zipkin),不知道对不对?
    2018-11-15
    1
    3
  • 旭东(Frank)
    国产的有好的监控组件吗?如CAT
    2018-09-27
    1
收起评论
显示
设置
留言
16
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部