为 monitor.omniverseai.net 配置了基于路径的路由,实现单一域名访问所有监控服务。 ## 主要变更 ### 新增 Ingress 配置 - monitoring-ingress-final.yaml: Grafana、Prometheus、Alertmanager 路径重写配置 - monitoring-ingress-root.yaml: 根路径重定向到 Grafana - monitoring-ingress-catchall.yaml: catch-all 规则处理其他路径 ### 路由配置 - / → 自动重定向到 /grafana - /grafana → Grafana 监控仪表板 - /prometheus → Prometheus 查询界面 - /alertmanager → Alertmanager 告警管理 - /login, /api/* 等 → 通过 catch-all 路由到 Grafana ### Helm 配置更新 - 更新 kube-prometheus-stack-values-optimized.yaml - 配置 Grafana 子路径支持 (serve_from_sub_path) - 配置 Prometheus 和 Alertmanager 的 externalUrl ### 测试和文档 - 新增测试脚本: scripts/test-monitoring-routes.sh - 新增详细文档: docs/monitoring-ingress-setup.md - 更新 README.md 添加统一访问入口说明 ## 技术实现 - 使用 nginx-ingress rewrite-target 实现路径重写 - 配置 Grafana grafana.ini 支持子路径访问 - 使用多个 Ingress 资源处理不同路径优先级 - SSL 证书通过 cert-manager 自动管理 ## 测试验证 所有路径均已测试通过: ✅ 根路径重定向 ✅ Grafana 完整功能(包括 /login) ✅ Prometheus 查询界面 ✅ Alertmanager 告警管理 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
65 lines
1.7 KiB
YAML
65 lines
1.7 KiB
YAML
---
|
||
# 统一的监控服务 Ingress 配置
|
||
# 支持基于路径的路由到不同的监控服务
|
||
apiVersion: networking.k8s.io/v1
|
||
kind: Ingress
|
||
metadata:
|
||
name: monitoring-unified
|
||
namespace: observability
|
||
annotations:
|
||
# SSL 配置
|
||
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||
|
||
# SSL 重定向
|
||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
||
|
||
# 超时设置(监控查询可能需要较长时间)
|
||
nginx.ingress.kubernetes.io/proxy-connect-timeout: "300"
|
||
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
|
||
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
|
||
|
||
# 最大请求体大小
|
||
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
|
||
|
||
# 使用 app-root 重定向根路径到 Grafana
|
||
nginx.ingress.kubernetes.io/app-root: /grafana
|
||
|
||
spec:
|
||
ingressClassName: nginx
|
||
|
||
tls:
|
||
- hosts:
|
||
- monitor.omniverseai.net
|
||
secretName: monitor-tls
|
||
|
||
rules:
|
||
- host: monitor.omniverseai.net
|
||
http:
|
||
paths:
|
||
# Grafana 服务(不重写路径,因为配置了 serve_from_sub_path)
|
||
- path: /grafana
|
||
pathType: Prefix
|
||
backend:
|
||
service:
|
||
name: monitoring-grafana
|
||
port:
|
||
number: 80
|
||
|
||
# Prometheus 服务(不重写路径,externalUrl 已配置)
|
||
- path: /prometheus
|
||
pathType: Prefix
|
||
backend:
|
||
service:
|
||
name: monitoring-kube-prometheus-prometheus
|
||
port:
|
||
number: 9090
|
||
|
||
# Alertmanager 服务(不重写路径,externalUrl 已配置)
|
||
- path: /alertmanager
|
||
pathType: Prefix
|
||
backend:
|
||
service:
|
||
name: monitoring-kube-prometheus-alertmanager
|
||
port:
|
||
number: 9093
|