只有Kubernetes和Docker 那你的DevOps还缺一味监控工具

DevOps圈鼎鼎大名的Kubernetes和Docker光环之下,对于容器的监控易被忽略。但确保服务处于最佳运行状态,仅通过Kubernetes管理并运行数千个容器是不够的,谷歌将监控容器的这一过程称为网站可靠性工程(Site Reliability Engineering)。实现网站可靠性工程需要专门用于容器化服务监控和分析的工具,那就来盘点一波最热门的开源工具吧。

只有Kubernetes和Docker 那你的DevOps还缺一味监控工具

Prometheus

只有Kubernetes和Docker 那你的DevOps还缺一味监控工具

当讨论开源监控解决方案时,首先想到的就是Prometheus。它在开发社区中非常流行,是CNCF的毕业项目。Prometheus最初由SoundCloud创建并开放源代码。Prometheus简化了提取数值指标的过程,直接从一个基于时间序列的监控端点中提取。适用于监视高度动态变化的容器环境。

Prometheus由三个部分组成:Prometheus server、Alertmanager和exporters。exporters以独立进程或容器的方式运行在目标机器上,生成各种指标数据,通过API的方式发送给

Prometheus server。Prometheus server负责服务发现,也可以从exporters直接拉取指标数据,然后将数据存储在Prometheus的数据库中,用于可视化或告警服务。Alertmanager用于设置告警规则,分析Prometheus数据库中的数据,当触发某个规则时,向接收者发送警报。在这里可以找到大量的exporters,它们都得到了Prometheus的官方支持和社区的维护。

Grafana

只有Kubernetes和Docker 那你的DevOps还缺一味监控工具

Grafana是一款开源的指标分析和可视化套件。它允许你使用来自多个数据源(如Prometheus、Elasticsearch、MySQL、Postgres和Redis)的数据创建自定义仪表板。此外,Grafana有自己的告警系统和基于角色的访问控制(RBAC)系统。Grafana作为一种数据可视化工具,在Prometheus的用户中非常出名,它可以有效地可视化存储在Prometheus中的指标数据。Grafana为来自各种数据源的数据提供了大量官方和社区构建的定制化仪表板,允许用户轻松地设置仪表板并监控数据。Grafana提供另一种相关产品Loki,它将Kubernetes中的日志聚集起来,并与Grafana UI很好地集成在一起。

Elastic Stack

只有Kubernetes和Docker 那你的DevOps还缺一味监控工具

Elastic Stack是一组来自Elastic的开源产品,旨在帮助用户实时搜索、分析和可视化来自任何类型的数据源的任何格式的数据。Elastic Stack利用Elasticsearch提供监测和日志解决方案。

为了聚合日志,人们倾向于使用Elasticsearch进行存储,使用Logstash或Fluentd发送日志,使用Kibana进行可视化。Fluentd不是Elastic Stack的一部分,但它广泛地应用于Kubernetes环境中,用以代替Logstash。类似地,Metricbeat用于获取指标数据并在Kibana上进行可视化。Elastic Stack企业版附带了X-Pack,X-Pack是一组支持报表、警报和基于角色的访问控制(RBAC)等功能的附加工具。默认情况下,Elastic Stack GUI(Kibana)不支持RBAC。你必须使用Elastic Stack企业版本来启用RBAC。

Sensu Go

只有Kubernetes和Docker 那你的DevOps还缺一味监控工具

Sensu Go是一款用于多云监控的遥测和服务健康检测解决方案。帮助你查看服务器、容器、服务、应用程序、功能和跨任何公有或私有云的连接设备。若Sensu可以和Prometheus一起运行,以获得两种解决方案的最佳效果。将应用程序级别的指标数据导出到Prometheus需要将Prometheus SDK加载到应用程序的代码库中,并暴露一个端口。然后,该端口负责收集数据并存储在Prometheus server中。而Sensu通过使用sidecar的方式来避免这种复杂性。在应用程序旁部署了一个Sensu代理。Sensu代理不断地收集数据并发送给Prometheus server,这样就不需要更改应用程序代码了

当然,Sensu也可以脱离Prometheus工作,独自在Kubernetes中运行,在Kubernetes中,Sensu有自己的服务器来存储和可视化由Sensu代理收集的数据。

Sysdig Inspect

只有Kubernetes和Docker 那你的DevOps还缺一味监控工具

Sysdig Inspect用于监视和捕获系统中运行的容器进程,并允许深入这些进程以进行事后取证。帮助分析应用程序性能、排查错误并监视任何可能出现错误的处理器。此外,如果你的系统遭到了破坏,Sysdig帮助你了解破坏是如何发生的,以及在这个过程中丢失了哪些数据。Sysdig Inspect是一个非常强大的工具,它关注于系统的性能调优和安全性调查。

Jaeger

只有Kubernetes和Docker 那你的DevOps还缺一味监控工具

Jaeger是一种端到端的分布式跟踪解决方案,由Uber Engineering开源。帮助你在复杂的分布式系统中监视和排查事务故障。

Jaeger目前在CNCF下孵化,Jaeger使用跟踪技术来寻找出错原因、性能和延迟优化,以及分布式事务监控。Jaeger可以与Istio一起使用,Istio是由谷歌开源的一款流行的服务网格实现。盘点下来,这些工具在科技行业中被广泛使用,它们都有各自的特点。为了便于比较,下面的图表概述了本文讨论的每种工具提供的特性。

只有Kubernetes和Docker 那你的DevOps还缺一味监控工具

编译来源:分布式实验室

展开阅读全文

页面更新:2024-05-17

标签:仪表板   工具   数据源   分布式   警报   容器   应用程序   进程   性能   指标   解决方案   方式   数据   系统   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top