主要包括日志监控,调用链监控,Metrics 监控,健康检查和告警通知等产品。
ELK 目前可以认为是日志监控的标配,功能完善开箱即用,ElasticSearch[附录 12.10] 目前在 GitHub 上有超过 28.4k 星。Elastalert[附录 12.11] (GitHub 4k stars) 是 Yelp 开源的针对 ELK 的告警通知模块。
调用链监控目前社区主流是点评 CAT[附录 12.12](GitHub 4.3k stars),Twitter 之前开源现在由 OpenZipkin 社区维护的 Zipkin[附录 12.13](GitHub 7.5k stars)和 Naver 开源的 Pinpoint[附录 12.14](GitHub 5.3k stars)。个人比较推荐点评开源的 CAT,在点评和国内多家互联网公司有落地案例,生产级特性和治理能力较完善,另外 CAT 自带告警模块。下面是我之前对三款产品的评估表,供参考。

Metrics 监控主要依赖于时间序列 (TSDB),目前较成熟的产品是 StumbleUpon 公司开源的基于 HBase 的 OpenTSDB[附录 12.15](基于 Cassandra 的 KariosDB[附录 12.16] 也是一个选择,GitHub 1.1k stars,它基本上是 OpenTSDB 针对 Cassandra 的一个改造版),OpenTSDB 具有分布式能力可以横向扩展,但是相对较重,适用于中企业,OpenTSDB 目前在 GitHub 上有近 2.9k 星。
OpenTSDB 本身不提供告警模块,Argus[附录 12.17](GitHub 0.29k 星)是 Salesforce 开源的基于 OpenTSDB 的统一监控告警平台,支持丰富的告警函数和灵活的告警配置,可以作为 OpenTSDB 的告警补充。近年也出现一些轻量级的 TSDB,如 InfluxDB[附录 12.18](GitHub 12.4k stars)和 Prometheus[附录 12.19](GitHub 14.3k stars),这些产品函数报表能力丰富,自带告警模块,但是分布式能力不足,适用于中小规模企业。Grafana[附录 12.20](GitHub 19.9k stars)是 Metrics 报表展示的社区标配。
社区还有一些通用的健康检查和告警产品,例如 Sensu[附录 12.21](GitHub 2.7k stars),能够对各种服务(例如 Spring Boot 暴露的健康检查端点,时间序列中的 metrics,ELK 中的错误日志等)定制灵活的健康检查 (check),然后用户可以针对 check 结果设置灵活的告警通知策略。Sensu 在 Yelp 等公司有落地案例。其它类似产品还有 Esty 开源的 411[附录 12.22](GitHub 0.74k 星)和 Zalando 的 ZMon[附录 12.23] (GitHub 0.15k 星),它们是分别在 Esty 和 Zalando 落地的产品,但是定制 check 和告警配置的使用门槛比较高,社区不热,建议有定制自研能力的团队试用。ZMon 后台采用 KairosDB 存储,如果企业已经采用 KariosDB 作为时间序列,则可以考虑 ZMon 作为告警通知模块。
针对 Java 技术栈,Netflix 的 Hystrix[附录 12.24](github 12.4k stars)把熔断、隔离、限流和降级等能力封装成组件,任何依赖调用(,服务,缓存)都可以封装在 Hystrix Command 之内,封装后自动具备容错能力。Hystrix 起源于 Netflix 的弹性工程项目,经过 Netflix 生产验证,目前是容错组件的社区标准,GitHub 上有超 12k 星。其它语言栈也有类似 Hystrix 的简化版本组件。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-75342-3.html
果断刷机了
如果不理睬