强大的视角:MinIO 企业对象存储可观察性

可观察性革命推动了计算、安全、基础设施和可审计性的巨大进步。企业可观察性提供对云原生系统的全面和细粒度的可见性,以便更快地识别和解决问题。遥测数据 - 指标、日志、跟踪、健康检查 - 可以实时显示和关联 - 从高管到安全团队,为整个组织提供上下文。
市场上有一些非常棒的解决方案,但它们有一个潜在的弱点 - 它们在很大程度上是通用的。市场缺乏,而我们已经构建的,是专门为大规模对象存储部署设计的可观察性解决方案。MinIO 企业对象存储可观察性功能提供了一个全新且全面的故障排除工具,以确保您所有数据管道的功能和性能。这种视角简化和简化了 MinIO 操作和故障排除,它是一个为 MinIO 量身定制的完整监控解决方案,包括指标、日志、跟踪和全面的审计日志等等。它在商业层级的企业 Lite 和企业 Plus 产品中提供。
MinIO 一直拥有可观察性,依靠插件连接到所有行业标准的可观察性解决方案。我们通过行业标准的 API 支持所有领先的解决方案。例如,我们一直有一个 Prometheus API 端点来提供指标,以及各种 Grafana 仪表板来可视化它们。我们将继续支持这些工具,但我们可以为我们的客户做得更好。我们了解 MinIO 的工作原理,它生成的数据(如日志和指标),以及如何可视化它们。
几年前,当您有一个单体应用程序时,调试和诊断相当容易,因为可能只有一个服务,只有几个用户。如今,系统被分解成更小的微服务,这些微服务部署在容器中,位于 Kubernetes 之上,跨越多个集群,遍布不同的云环境。在这些类型的分布式环境中,需要观察所有内容,既要观察整体情况,必要时也要在更细粒度的层面上观察。
MinIO 的企业可观察性大致可以分为三个子类别:日志记录、指标和跟踪。在这篇博文中,我们将向您展示在您的新旧 MinIO 应用程序中设置这些组件有多么简单。
让我们浏览每个菜单项,并解释我们为什么要这样做以及为什么它很重要。
数据地图
数据地图指标允许我们深入了解任何一组驱动器,甚至深入到擦除码级别 - 分析驱动器利用率、容量和性能。下面的屏幕截图显示了已使用和可用的数据量。重要的是,它显示了处于离线状态或处于修复状态的驱动器数量,您可以轻松检查以确保集群在基础设施修复期间仍能提供请求。
审核
审计日志捕获所有系统调用和系统活动,以及所有用户活动。它还捕获其他使用情况,例如系统和用户的使用情况。了解对整个集群进行了哪些更改以及上传到网络的内容(以及其他活动)非常重要。审计日志是所有这些信息驻留的地方。
错误
错误日志显示内部进程的问题。失效的驱动器或即将离线的驱动器是两个示例。它还记录其他高级问题,例如与 lambda 通知或复制相关的問題。错误日志显示与无法连接的驱动器以及具有随机读取问题的驱动器有关的问题。这些问题相当罕见,但当它们发生时,我们可以以易于理解的方式捕获和呈现它们。
指标
有几个应用程序指标图表和仪表可用,以监控扫描器、修复和 ILM 的硬件组件级别的指标。一些可用的指标是
- 自启动以来完成的扫描桶数
- 自服务器启动以来开始扫描的桶数
- 当前自我修复运行中修复的对象数量
- 当前自我修复运行中已封存的对象数量
API
大部分流量将通过 S3 API 指标进行。因此,有必要监控访问 MinIO 集群时发出的请求数、拒绝的请求数以及总体流量。
API 是最重要的方面之一。它让您全面了解数据的访问方式以及对数据的总体访问。您每分钟获得多少读取和写入操作,即使在毫秒级内,请求是否滞后,这些都可以显示出来。API 指标甚至可以添加到辐射器类型的仪表板中,以便实时查看。
系统
MinIO 重度依赖两个主要的硬件相关组件,因此非常关注这两个组件:驱动器和网络。虽然考虑到数据存储在物理介质上,驱动器性能可能是更明显的问题,但必须承认网络在整体性能中发挥着重要作用,尤其是在分布式环境中。虽然默认复制的异步性质可能允许您设置并忘记,但您还需要了解集群是否在复制数据方面落后。监控这些系统,以及适当的 CPU 和健康的内存量非常重要。
修复
MinIO 会自动修复因静默位腐烂损坏、驱动器故障、驱动器更换或 PUT/GET 中的其他问题而损坏的对象。MinIO 还执行定期后台对象修复。在下面的图表中,您可以看到在自我修复运行期间扫描和修复的对象。修复会自动修复因驱动器损坏、驱动器故障和其他硬件故障而损坏的对象。您可以使用自我修复运行期间散布对象的图表来查看服务状态。
生命周期管理
生命周期管理数据可以使您了解模式并向您的企业发出警报。这有助于您进行进一步的分析。例如,如果您想检查今年的某些趋势,您可以通过绘制生命周期管理图表来获得报告。生命周期管理是关于转换数据或删除数据的规则。我们的建议是在那里创建一个单独的“从不删除”应用程序,并使用生命周期管理来实现这一点。因此,如果您希望能够监控系统中生命周期管理规则的运行情况,这里就是您的目的地。
复制
MinIO 包含几种复制数据的方法,因此您可以选择最适合您需求的方法。我们已经发布了关于 基于桶的活动-活动复制 的博客文章,用于在桶级别复制对象,以及 批量复制,用于复制桶中特定对象,这为您提供了更细粒度的控制。
无论是站点复制还是桶复制,都应该监控活动复制工作进程的数量及其队列,以确保没有堆积起来等待将数据传输到远程站点的对象积压。这有助于您跟踪并查看积压过大或复制速度变慢时的警报。
您将在这里看到复制积压。
扫描器
扫描器是 MinIO 特定的调试工具,用于监控和修复系统中的对象。扫描器提供集群报告系统管理的总数据量和对象数量所需的元数据信息。
调试
跟踪
跟踪是指记录和观察应用程序发出的请求,以及这些请求如何在系统中传播的活动。当系统以分布式方式设置时,我们称之为分布式跟踪,因为它涉及通过多个系统观察应用程序及其交互。例如,作为开发人员,您的代码可能包括多个 API 调用,但您更感兴趣的是 MinIO 函数执行需要多长时间以及这些函数在应用程序中使用时的相互依赖关系。跟踪将通过以下方式提供必要的见解:
- 识别性能和延迟瓶颈
- 在重大事件后查找根本原因分析
- 确定多服务体系结构中的依赖关系
- 监控应用程序内的交易
实时跟踪显示应用程序的行为。它们查看内部调用以确定分解和流程,每个调用花费了多少时间,传输了多少字节,确切的操作是什么,成功/失败。跟踪允许操作团队快速了解系统中是否存在问题,然后深入挖掘根本原因分析。例如,如果应用程序超时,可以快速确定罪魁祸首是缓慢的驱动器。还提供了一个实时跟踪工具用于实时测试。
总结
现在,即使 DevOps 团队对对象存储的运行机制一无所知,他们也可以成为存储专家。他们拥有所有必要的工具 - 一个单一的面板显示美国东部数据中心的某个驱动器出现故障。IT 团队在他们的通用硬件仪表盘中看到这一点,而 DevOps 团队则在 MinIO 中看到它。当您认真维护数据基础设施时,就会采取这一步骤。但请不要误会,这不是一个 IT 工具。这是一个数据基础设施工具,而不是一个低级存储工具。
对于任何基础设施,特别是像存储这样重要的基础设施,最重要的是系统必须在合理阈值内监控,并在出现问题时尽快发出警报。不仅要监控和报警,还要对数据进行趋势分析,以便进行长期分析。例如,假设您突然发现您的 MinIO 集群正在使用大量的空间,您是否希望知道这部分空间是在过去 6 小时、6 周还是 6 个月内使用的?根据此信息,您可以决定是否需要添加更多空间或修剪现有空间中使用效率低的空间。
我们在设计一切时都以简洁性和可扩展性为目标,我们致力于打造极简主义的专用软件工具。我们构建并支持 MinIO。您可以在 MinIO 企业可观测性中获得这些功能。可观测性非常简单,因为我们为您消除了复杂性。我们不收集大量多余数据,只收集重要数据 - 这是存储高效的存储监控。该系统轻量级且易于使用,因为我们只收集必要的数据,然后为您准确识别异常。您无需自定义,只需享受我们精心设计的界面。
____
另一种思考方式是,合规性团队需要多年来的少量详细信息,而运维团队需要几周内的海量详细信息。MinIO 的可观测性功能提供了后者,因为通用解决方案无法做到这一点,因为它们不了解数据基础设施。MinIO 的解决方案是为运维用例而构建的 - 具有极高的粒度。粒度和细节为运维团队节省了时间和资源,并减少了停机时间。
您可能想知道,“为什么我要使用可观测性这样的东西,而不是 Prometheus 和 Grafana?” 对于 Prometheus 和 Grafana,您需要多个组件,并且需要进行编排和配置才能使其正常工作。您必须先将指标/数据发送到 Prometheus,然后连接到 Grafana 以可视化数据。这只是一个例子 - Grafana 生态系统中肯定还有很多其他活动部件。使用企业可观测性,数据存储和可视化组件都捆绑在一起,就像 MinIO 一样。
那么,您还在等什么呢?如果您对 MinIO 企业对象存储可观测性有任何疑问,请通过 Slack 或 hello@min.io 与我们联系!