메트릭수집저장보기

topics 800-프로젝트 400-인프라 & 아키텍처
types 이론 레퍼런스
contexts 프로젝트
tags

메트릭 수집/저장/보기

Prometheus와 Loki의 차이, 그리고 모니터링 스택 구성 이해하기


로그 vs 메트릭

메트릭 (숫자, 시계열)

CPU %, 메모리 사용량, 요청 수, 지연 시간 등

[node_exporter]  →  Prometheus  →  Grafana
   (수집원)         (수집+저장)     (시각화)

로그 (텍스트)

access log, error log, app log 등

[Promtail]  →  Loki  →  Grafana
   (수집)      (저장)    (시각화)

대응 관계

메트릭 로그
node_exporter Promtail
Prometheus Loki
Grafana Grafana

Prometheus ↔ Loki가 같은 급
node_exporter ↔ Promtail이 같은 급


왜 헷갈리냐면

  • Prometheus는 "수집 + 저장"을 같이 함
  • Loki는 "저장만"
  • Promtail은 "수집만"

즉,

Prometheus = (Promtail 역할 + Loki 역할)을 메트릭에 맞게 합친 것

실전 활용 (미니서버 기준)

장애 원인 추적 시 Grafana 패널에서:

  • CPU 95% 급상승 (Prometheus)
  • 같은 시점 error log 폭증 (Loki)

이 조합이 Observability의 정석이다.


Docker + UFW 보안 설정

DEFAULT_FORWARD_POLICY="ACCEPT" 의미

"서버를 통과하는(forwarded) 패킷을 기본적으로 허용"

오해 실제
"외부 → 서버" 트래픽 허용 X
"외부 → 컨테이너" 자동 허용 X
Docker 브리지 ↔ 호스트 간 트래픽 허용 O

권장 설정 (Docker 서버)

DEFAULT_FORWARD_POLICY="ACCEPT"
# <span id="외부-포트는-계속-최소만-허용"></span>외부 포트는 계속 최소만 허용
sudo ufw status

Docker 공식 문서/실무에서 이 조합이 사실상 표준

절대 하면 안 되는 조합

  • DEFAULT_FORWARD_POLICY="ACCEPT"
  • ufw allow 3306
  • MySQL 유저 '%'
  • 공인 IP 노출

이게 진짜 "DB 털리는 구성"이다.

보수적 방법 (DOCKER-USER 체인)

sudo iptables -I DOCKER-USER 1 -j DROP
sudo iptables -I DOCKER-USER 1 -s 172.17.0.0/16 -j ACCEPT

도커 대역만 포워딩 허용 (트래픽 많거나 멀티 네트워크 서버에서 사용)


관련 문서