跳到主要内容

监控架构

概述

运维平台基于 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 链路)。

告警与通知(1.4.0 起内置告警子系统)

告警

  • 原生告警引擎:1.4.0 起平台内置自研告警子系统,在「告警管理」页面以原生界面配置规则,覆盖基础资源、端口连通性、SSL 证书、Kafka 堆积 / 重平衡、MongoDB、MySQL 七类监控场景,替代原 Grafana 告警界面。
  • 基于 PromQL 与直连探测:基础资源类规则基于 Prometheus 指标(内置指标列表,亦支持自定义 PromQL 并预览);端口 / SSL / Kafka / MongoDB / MySQL 类规则由告警引擎直连目标探测。
  • 内置降噪:预警(Pending)→ 告警(Firing)→ 恢复(Recovered)状态机,仅状态变化时推送通知。
  • 独立存储:告警规则 / 状态 / 历史存放在平台自有 ops-mongo 容器,与被监控业务数据库解耦。

通知

  • 多渠道支持:支持飞书、钉钉、企业微信群机器人、邮件、自定义 Webhook 五种通知渠道,在「告警管理 → 通知渠道」页面配置,确保运维人员第一时间获取异常信息并及时响应。