Monitoring Module Architecture

目录
Overall Architecture Explanation
监控系统由以下核心功能模块组成:
- Monitoring System
- 数据采集与存储:采集并持久化来自多个来源的监控指标
- 数据查询与可视化:提供灵活的监控数据查询和可视化能力
- Alerting System
- 告警规则管理:配置和管理告警策略
- 告警触发与通知:评估告警规则并发送通知
- 实时告警状态:提供系统当前告警状态的实时视图
- Notification System
- 通知配置:管理通知模板、联系人组和策略
- 通知服务器:管理各种通知渠道的配置
Monitoring System
Data Collection and Storage
- Prometheus/VictoriaMetrics Operator 职责:
- 加载并校验监控采集配置
- 加载并校验告警规则配置
- 同步配置到 Prometheus/VictoriaMetrics 实例
- 监控数据来源:
- Nevermore:生成日志相关指标
- Warlock:生成事件相关指标
- Prometheus/VictoriaMetrics:通过 ServiceMonitor 发现并采集各类 exporter 指标
Data Query and Visualization
-
监控数据查询流程:
- 浏览器发起查询请求(路径:
/platform/monitoring.alauda.io/v1beta1)
- ALB 转发请求至 Courier 组件
- Courier API 处理查询:
- 内置指标:通过指标接口获取 PromQL 并查询
- 自定义指标:直接转发 PromQL 到监控组件
- 监控面板获取数据并展示
-
监控面板管理流程:
- 用户访问
global 集群 ALB(路径:/kubernetes/cluster_name/apis/ait.alauda.io/v1alpha2/MonitorDashboard)
- ALB 转发请求至 Erebus 组件
- Erebus 路由请求至目标监控集群
- Warlock 组件负责:
- 校验监控面板配置的合法性
- 管理 MonitorDashboard CR 资源
Alerting System
Alert Rule Management
告警规则配置流程:
- 用户访问
global 集群 ALB(路径:/kubernetes/cluster_name/apis/monitoring.coreos.com/v1/prometheusrules)
- 请求经过 ALB -> Erebus -> 目标集群 kube-apiserver
- 各组件职责:
- Prometheus/VictoriaMetrics Operator:
- 校验告警规则合法性
- 管理 PrometheusRule CR
- Nevermore:监听并处理日志告警指标
- Warlock:监听并处理事件告警指标
Alert Processing Workflow
- 告警评估:
- PrometheusRule/VMRule 定义告警规则
- Prometheus/VictoriaMetrics 定期评估规则
- 告警通知:
- 告警触发后发送至 Alertmanager
- Alertmanager -> ALB -> Courier API
- Courier API 负责派发通知
- 告警存储:
- 告警历史存储于 ElasticSearch/ClickHouse
Real-time Alert Status
- 状态采集:
global 集群 Courier 生成指标:
- cpaas_active_alerts:当前活跃告警
- cpaas_active_silences:当前静默配置
- 全局 Prometheus 每 15 秒采集一次
- 状态展示:
- 前端通过 Courier API 查询并展示实时状态
Notification System
Notification Configuration Management
通知模板、通知联系人组和通知策略的管理流程如下:
- 用户通过浏览器访问
global 集群的标准 API
- 访问路径:
/apis/ait.alauda.io/v1beta1/namespaces/cpaas-system
- 管理相关资源:
- Notification Template:apiVersion: "ait.alauda.io/v1beta1", kind: "NotificationTemplate"
- Notification Contact Group:apiVersion: "ait.alauda.io/v1beta1", kind: "NotificationGroup"
- Notification Policy:apiVersion: "ait.alauda.io/v1beta1", kind: "Notification"
- Courier 负责:
- 校验通知模板合法性
- 校验通知联系人组合法性
- 校验通知策略合法性
Notification Server Management
- 用户通过浏览器访问
global 集群的 ALB
- 访问路径:
/kubernetes/global/api/v1/namespaces/cpaas-system/secrets
- 管理并提交通知服务器配置
- 资源名称:platform-email-server
- Courier 负责: