logo
0
0
WeChat Login

三套监控系统架构

本目录包含基于共享基础设施的三套独立监控系统,用于对比 Prometheus 和 VictoriaMetrics 的性能差异。

🏗️ 架构设计

采用三套独立服务共享基础设施的架构:

  1. 共享基础设施 - 提供通用组件和数据源
  2. Prometheus 监控栈 - 基于 Prometheus 的监控方案
  3. VictoriaMetrics 监控栈 - 基于 VictoriaMetrics 的监控方案

📁 目录结构

metrics-host/ ├── shared-infrastructure/ # 共享基础设施 │ ├── docker-compose.yml │ ├── alertmanager/ │ │ └── alertmanager.yml # 统一告警管理 │ ├── grafana/ │ │ └── datasources/ # 预配置数据源 │ └── exporters/ # 各种 Exporter 配置 ├── prometheus-stack/ # Prometheus 监控栈 │ ├── docker-compose.yml │ └── prometheus/ │ ├── prometheus.yml │ └── rules/alerts.yml ├── victoriametrics-stack/ # VictoriaMetrics 监控栈 │ ├── docker-compose.yml │ ├── vmagent/ │ │ └── prometheus.yml │ └── vmalert/ │ └── alerts.yml ├── prometheus-manage.sh # Prometheus 系统管理脚本 └── victoriametrics-manage.sh # VictoriaMetrics 系统管理脚本

🚀 快速启动

Prometheus 监控系统

# 启动完整 Prometheus 系统 ./prometheus-manage.sh start # 其他命令 ./prometheus-manage.sh status ./prometheus-manage.sh info ./prometheus-manage.sh stop

VictoriaMetrics 监控系统

# 启动完整 VictoriaMetrics 系统 ./victoriametrics-manage.sh start # 其他命令 ./victoriametrics-manage.sh status ./victoriametrics-manage.sh info ./victoriametrics-manage.sh stop

独立组件管理

# 单独管理共享基础设施 ./prometheus-manage.sh shared start ./victoriametrics-manage.sh shared start # 单独管理监控栈 ./prometheus-manage.sh prometheus start ./victoriametrics-manage.sh vm start # 查看日志 ./prometheus-manage.sh logs shared alertmanager ./victoriametrics-manage.sh logs vm vmagent

📝 管理方式

独立系统管理(推荐)

  • prometheus-manage.sh - 管理 Prometheus + 共享基础设施
  • victoriametrics-manage.sh - 管理 VictoriaMetrics + 共享基础设施
  • 优势: 清晰独立、避免冲突、适合对比测试

Docker Compose 直接管理

  • 进入对应目录使用 docker-compose 命令
  • 适合调试和开发场景

📊 系统对比

特性PrometheusVictoriaMetrics
存储效率基准7-10x 更高压缩
查询性能标准更快
内存使用较高更低
兼容性原生完全兼容 PromQL
集群支持需要联邦原生支持

🌐 访问地址

共享基础设施

Prometheus 监控栈

VictoriaMetrics 监控栈

🔧 架构亮点

共享基础设施

  • 统一 AlertManager: 两套监控系统共享,基于来源标签路由
  • 通用 Exporters: Node、cAdvisor、Redis、PostgreSQL 等
  • 集中化 Grafana: 预配置两套数据源,便于对比
  • 独立网络: 使用 metrics-shared 网络连接所有服务

Prometheus v3.4.2 特性

  • WAL 压缩优化
  • 查询并发控制
  • 块持续时间优化
  • 外部标签管理 (source=prometheus)

VictoriaMetrics 优化

  • 高性能数据压缩
  • 优化的查询引擎
  • vmagent 独立数据采集
  • vmalert 告警规则评估
  • 外部标签管理 (source=victoriametrics)

📈 监控内容

共享监控指标

  • 系统资源: CPU、内存、磁盘、网络 (Node Exporter)
  • 容器监控: Docker 容器资源使用 (cAdvisor)
  • Redis 监控: 连接数、内存使用、命令统计
  • PostgreSQL 监控: 连接、查询性能、锁统计
  • 服务健康: AlertManager、Grafana 状态

监控系统自身指标

  • Prometheus: TSDB 性能、查询延迟、规则评估
  • VictoriaMetrics: 存储压缩比、查询性能、写入吞吐
  • vmagent: 采集性能、远程写入状态
  • vmalert: 规则评估、告警发送状态

⚠️ 告警管理

统一 AlertManager 配置

  • 基于 source 标签区分告警来源
  • Prometheus 告警: source=prometheus
  • VictoriaMetrics 告警: source=victoriametrics
  • 支持不同严重级别的路由策略
  • 统一的通知渠道配置

🔗 数据源配置

Grafana 中预配置两个数据源:

# Prometheus 数据源 url: http://prometheus-server:9090 type: prometheus # VictoriaMetrics 数据源 url: http://victoriametrics:8428 type: prometheus # 兼容 Prometheus API

🚀 网络架构

所有服务使用 metrics-shared 外部网络连接:

# 创建共享网络 docker network create metrics-shared # 各服务通过服务名访问 # 例如:shared-alertmanager:9093 # shared-node-exporter:9100 # prometheus-server:9090 # victoriametrics:8428

About

No description, topics, or website provided.
Language
Markdown67%
Shell33%