- 实现基于时间指标收集及其图形可视化的可观测性生态系统。
- 针对 GNU/Linux 和 Windows 环境部署特定的导出代理,以捕获系统数据。
- 使用 Thanos 和 VictoriaMetrics 实现海量数据存储的高级可扩展策略。
如今,密切关注技术基础设施的运行状况不再是锦上添花,而是绝对必要。持续的系统监控使我们能够在最终用户察觉任何异常之前就预见到问题,从而防止小错误演变成令人彻夜难眠的全面服务中断。
为了实现这一目标,我们采用了一种行之有效的组合:Prometheus 和 Grafana 的结合。前者负责收集和存储时间序列数据库中的指标数据,而后者则提供强大的可视化界面,将这些数据转化为易于理解的图表。
端到端监控的基础知识

主动监控指的是不等服务器崩溃才采取行动。应用性能管理 (APM) 监控方法能够让您观察请求的整个路径,实时检测瓶颈或性能错误。这一点至关重要,因为从上世纪 80 年代手动检查物理指标,到如今使用自动化工具,我们已经能够全面了解基础设施,而这在历史上是没有发生的。
实施此类监控不仅可以减少停机时间,还能优化运营成本。此外,为了确保一切顺利运行,高效的 API 管理至关重要,它能保证应用程序之间的通信具有可扩展性和安全性,从而完善监控策略。
构建技术栈:Linux 上的 Prometheus 和 Grafana

要在 Linux 环境中实现此系统,我们需要三个关键组件。首先是prometheus-node-exporter,它负责在 9100 端口发布系统指标。需要注意的是,在某些发行版(例如 Ubuntu)中,systemd 垃圾回收器可能会生成过多的数据(高基数),因此有时建议使用 Ansible禁用某些垃圾回收器,以避免系统过载,具体操作可参考全面的 Linux 服务器优化指南。
下一步是Prometheus服务器,我们需要在其中配置文件。 prometheus.yml在这里,我们会详细地告诉你。 应该监测哪些设备 定义 scrape_configs 以及目标(IP 地址和端口)。一旦 Prometheus 开始每隔几秒收集一次数据,Grafana 就会发挥作用。该工具通常使用 .deb 软件包安装,它允许我们…… 将 Prometheus 连接为数据源 然后导入预先设计好的仪表盘,这样我们就省去了从头开始创建每个图表的麻烦。
使用 Docker Compose 的快速替代方案

如果您不想手动安装,可以使用容器来搭建整个环境。通过docker-compose.yml文件,我们可以将 Prometheus 镜像、Grafana 镜像和 Node Exporter 部署在同一个虚拟网络上。为了防止容器重启时数据丢失,必须在主机的文件系统上配置持久卷。
在这种架构下,配置过程大大简化。我们可以使用 YAML 文件自动配置 Grafana 的数据源,无需访问 Web 界面来配置 Prometheus URL。此外,对于高级用户,配置 JSON 中还提供了将查询方法更改为 POST 或直接从 Grafana管理告警的选项。
将监控扩展到 Windows 环境

并非所有企业都使用 Linux;Windows 仍然是许多数据中心的主力系统。为了集成这些专用的 Windows 服务器,我们使用windows_exporter,它会在 9182 端口上公开指标。流程类似:我们在 Windows 机器上安装代理,在 Prometheus 中添加相应的作业,然后找到一个Windows 专用的仪表盘(例如 Grafana 图库中的 ID 14694)来可视化 CPU、内存和磁盘的状态。
大容量存储和可扩展性解决方案
随着公司发展壮大,需要管理数百万个指标,Prometheus 的性能可能会开始下降。为了解决这个问题,出现了像Thanos这样的工具,它可以将数据迁移到 AWS S3 或 Google Cloud Storage 等云存储,从而实现高可用性和长期数据保留。Thanos 使用一个与 Prometheus 集成的 sidecar 组件和一个用于联合查询的 Query 组件。
另一个非常有效的替代方案是 维多利亚计量公司该方案在 CPU 和内存利用方面效率极高。在复杂的架构中,它可以发挥作用。 Kubernetes 上的 Prometheus-Operator 该系统用于管理本地数据采集,并将所有指标随后发送到 VictoriaMetrics 集群。该系统由多个组件构成,例如: vmstorage 为了保存数据, vminsert 写下它们 vmselect 为进行咨询,允许管理 数十亿个数据点 而不会使系统变慢。
这些工具的选择通常取决于数据量。Prometheus 非常适合短期使用,但对于需要集中管理来自数十个集群的信息,并确保数据流量始终使用安全代理进行加密和身份验证的多云环境而言,将其与VictoriaMetrics 或 Thanos结合使用才是更稳妥的选择。
基于 Prometheus 和 Grafana 构建的生态系统,辅以 Linux 和 Windows 代理,并借助 VictoriaMetrics 或 Thanos 进行扩展,可将 IT 管理转变为可预测且高效的流程。通过集中管理指标和自动化告警,企业可以全面了解其基础设施,优化性能,并在面对任何不可预见的技术问题时确保业务连续性。
