将 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) → 基于身份的私有网络访问

所有通信均安全——没有暴露端口,没有未加密的流量。

挑战

  1. Grafana 能显示日志但看不到指标
  2. Prometheus 的 TLS 验证问题
  3. 跨服务路由

配置要点

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 自动化可观测性配置的部署

关键收获

可观测性不是附加功能——它是基础设施的神经系统。
当你的服务器开始“说话”,你就会以不同的方式“倾听”。

0 浏览
Back to Blog

相关文章

阅读更多 »