跳到主要内容

监控架构

概述

运维平台基于 Prometheus v3 + Grafana v12 构建指标/可视化能力,并集成 Loki v3(日志聚合)和 Tempo v2(分布式链路追踪),通过 Grafana Alloy v1(统一可观测性采集代理)将指标、日志、链路数据汇聚到 Grafana 统一界面查询。

架构图

架构介绍

数据采集

指标采集 - Prometheus Exporter

通过 Prometheus Exporter 机制,对关键基础设施及应用主动拉取监控指标:

监控对象Exporter 组件维护组织
主机系统Node ExporterPrometheus
消息队列Kafka Exporterdanielqsj
搜索引擎Elasticsearch ExporterPrometheus Community
缓存服务Redis ExporterOliver006
关系数据库MySQL ExporterPrometheus
文档数据库MongoDB ExporterPercona

主机系统的 Node Exporter 由 ops-nodeagent 容器内置,其余 Exporter 由 ops-agent 容器统一打包。

日志采集 - Alloy + serilog

  • 容器 stdout 日志ops-alloy 通过 loki.source.docker 组件对接宿主机 /var/run/docker.sock,自动发现并采集所有容器的 stdout/stderr,写入 Loki,stream label 包含 container / service_name / log_source=docker
  • HAP 微服务结构化日志:HAP 容器内部 .NET 微服务通过 serilog.sinks.grafana.loki 直接 push 到 Loki HTTP API,stream label 包含 service_name / hostname / action / extras / stack / detected_level 等业务字段。

两类日志在 Grafana 中通过两个独立面板查看:「容器控制台」和「服务日志」。

链路追踪采集 - OTLP

应用通过 OpenTelemetry 协议(OTLP gRPC :4317 / HTTP :4318)将分布式调用链 spans 推送给 ops-alloy,由 alloy 转发到 Tempo 存储。

数据存储与可视化

数据类型存储查询
指标 (Metrics)Prometheus TSDBPromQL
日志 (Logs)LokiLogQL
链路 (Traces)TempoTraceQL

Grafana 提供统一可视化和跨数据源关联(如从日志的 traceID 跳转到 Tempo 链路)。

告警与通知

告警

  • 统一管理:通过 Grafana 配置告警规则,实现对异常情况的实时监控和自动告警。
  • 基于 PromQL/LogQL:告警规则可基于 Prometheus 指标或 Loki 日志关键字,构建灵活的判定条件。
    • PromQL / LogQL:分别是 Prometheus 和 Loki 的查询语言。

通知

  • 多渠道支持:系统支持邮件、钉钉、企业微信、Webhook 等多种告警通知方式,确保运维人员能够第一时间获取异常信息并及时响应。