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%