将 Django、Nextcloud、Grafana、Loki 与 Prometheus 通过 Tailnet 构建安全的可观测网格(指标与日志,仪表盘)
发布: (2026年2月8日 GMT+8 13:10)
2 分钟阅读
原文: Dev.to
Source: Dev.to
目标
架构
技术栈概览
- Prometheus → 从 Django 和 Nextcloud API 端点抓取指标
- Loki → 从两个服务摄取日志
- Grafana → 将指标和日志一起可视化
- Caddy → 为所有端点提供可信 TLS 的反向代理
- Tailnet (Tailscale) → 基于身份的私有网络访问
所有通信均安全——没有暴露端口,没有未加密的流量。
挑战
- Grafana 能显示日志但看不到指标
- Prometheus 的 TLS 验证问题
- 跨服务路由
配置要点
Prometheus 抓取配置 (YAML)
scrape_configs:
- job_name: "django"
metrics_path: /metrics
static_configs:
- targets: ["X.tail.ts.net:8000"]
- job_name: "nextcloud"
metrics_path: /metrics
static_configs:
- targets: ["X.tail.ts.net:8080"]
两个路由都位于 Caddy 后面,由 Caddy 使用可信的 Tailnet 证书进行 TLS 终止。
结果
- 按请求关联日志和指标
- 跟踪正常运行时间和性能趋势
- 可视化所有节点上的分布式系统行为
感觉就像在运营自己的小型控制平面——分布式、安全且可解释。
后续步骤
- 添加分布式追踪(OpenTelemetry)
- 为关键端点定义 Prometheus 警报规则
- 通过 CI/CD 自动化可观测性配置的部署
关键收获
可观测性不是附加功能——它是基础设施的神经系统。
当你的服务器开始“说话”,你就会以不同的方式“倾听”。