Tailnet 위에 보안 관측 메쉬로 Django, Nextcloud, Grafana, Loki 및 Prometheus 연결 (metrics & logs, dashboards).

발행: (2026년 2월 8일 오후 02:10 GMT+9)
3 분 소요
원문: 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

관련 글

더 보기 »

sunpeak은 MCP 앱에 전념한다

개요: MCP Apps는 이제 ChatGPT, Claude, Goose 및 VS Code에서 실행됩니다. Claude는 1월 26일에 MCP App 지원을 발표했으며, ChatGPT는 2월 4일에 이를 따랐습니다. 2월 현재…