· 更多精彩内容,请下载阅读全本《Elastic Stack实战手册》
创作人:亢伟楠
审稿人:曾红
在开发技术越来越成熟便捷的今天,我们可以很轻松写出来一个程序,用来进行各种各样的业务流程。你能想象如果我们运营一个银行系统,但是不知道每天转账的成功率、取现的效率吗?
和银行系统一样,我们日常中的软件系统,都需要尽量良好的观测和测量,才能保证系统的健康。
正如管理大师彼得德鲁克的名言,”If you can’t measure it, you can’t manage it.” 我们必须对我们的计算系统进行测量和观测,才能进一步管理它。
业界对可观测性的定义由Logging(日志),Metrics (指标)和 Tracing(跟踪)组成。其中大多数软件都仅在一个领域内发力,这导致了实施可观测性时的高昂成本。需要建设多个技术栈的软件,才能实现完整的可观测性。大多数企业基本都使用了 5个+ 的技术栈,有的甚至能达到10个技术栈。
那有没有什么低成本便捷的方案能帮助我们在企业中实施可观测性?
Elastic 可观测性 :一站式低成本解决方案
Elastic Stack 的可观测性 (Observability) 产品是一个让人满意的答案。相较于市面上其他的可观测性系统,Elastic Stack 能提供一站式全栈的可观测性解决方案,而其他系统基本只能提供一个方法的功能,实际落地中,需要搭配多套不同技术栈的系统实现,繁琐且复杂。
Elastic Stack 提供开源的可观测性能力,并且在云原生计算基金会(CNCF)的2020年9月的可观测性技术雷达评测中,获得了“采纳(ADOPT)”评级。
图1 可观测性技术雷达
Elastic Stack 的可观测性由 Logs 、APM(application performance monitor)、Uptime、Metrics 四个模块组成,他们分别由四个组件提供支持。
组件对应情况如下:
- Logs -- Filebeat
- APM -- APM Server & APM agent
- Uptime -- Heartbeat
- Metrics -- Metricbeat
Logs
Kibana 中的 Logs 应用实现任何数据源日志的中心化,搜索。Elastic Stack 是天然的日志处理的集大成者。最新的 Logs 模块更是能实现在 web 的实时 tail、搜索、分类和异常检测功能。我们可以通过 Filebeat 或者 Logstash 把日志导入到 Elasticsearch 中。
图2 Logs 页面
APM(Application Performance Monitor)
Kibana 中的 APM 应用可以实现分布式链路跟踪、事务监控、依赖分析和基于真实用户体验的监控。该功能通过 APM Server 和 APM Agent 组件提供支持。
图3 APM 页面
Uptime
为了帮助您在可用性问题,从而影响用户之前快速做出相应。Uptime 模块提供了对主机,网络设备以及第三方服务的整体可用性快照报告。根据其监控数据,可以查看出目前的总监控点和分别处于 up\down 状态的监控点。该功能通过 Heartbeat 组件提供支持。
图4 Uptime 页面
Metrics
Metricbeats 支持读取多大 50 种系统/数据源的 Metrics 采集,包括:数据库,消息队列,操作系统,文件系统和网关等系统。将 Metrics 数据采集完毕后,在 Metrics 应用中可实现一站式的统一查看、管理,甚至是基于机器学习的异常检测。
图5 Metrics 页面
以上四个模块均支持告警功能。
Fleet:更方便的数据收集
Fleet Agent 提供了更简单方便的统一的 Logs 数据、Metrics 数据和主机的其他数据。不在需要安装多个 Beat 来实现对数据的收集。
Fleet 目前处于 Beta 阶段。
参考链接:
- CNCF End User Technology Radar https://radar.cncf.io/2020-09-observability
创作人简介:
亢伟楠,目前就职于 58 同城信息安全部,任架构师。 在 Elastic 社区任日报编辑,曾
获得中文社区杰出贡献者奖项。平时对高并发、高可用等方向有较多关注,目前主要推
动可观测性落地。
博客: https://cyberdak.github.io/