Logging
목차
로깅 기본 개념
구조화된 로깅 (Structured Logging)
비구조화 로그 vs 구조화 로그
# 비구조화 로그 (파싱이 어려움)
2025-02-15 10:23:45 ERROR Failed to connect to database: connection timeout after 30s
# 구조화 로그 (JSON 형식)
{
"timestamp": "2025-02-15T10:23:45.123Z",
"level": "ERROR",
"message": "Failed to connect to database",
"error": "connection timeout",
"timeout_seconds": 30,
"service": "user-api",
"pod": "user-api-7d4f8b9c6-x2k9m",
"namespace": "production",
"trace_id": "abc123def456"
}구조화된 로깅의 장점
장점
설명
로그 레벨 (Log Levels)
레벨
숫자
용도
예시
환경별 권장 로그 레벨
JSON 로그 형식
권장 JSON 필드
주요 필드 설명
필드 그룹
필드
설명
로그 수집 파이프라인 아키텍처
전체 아키텍처 개요
계층별 역할
1. 수집 계층 (Collection Layer)
방식
장점
단점
적합한 경우
2. 처리 계층 (Processing Layer)
3. 저장 계층 (Storage Layer)
4. 분석 계층 (Analysis Layer)
로그 저장소 선택 기준
주요 고려 사항
1. 비용
솔루션
저장 비용/GB
쿼리 비용
2. 쿼리 성능
솔루션
실시간 쿼리
집계 쿼리
전문 검색
대시보드
3. 보존 기간
4. 운영 복잡성
솔루션
설치 복잡성
운영 부담
확장성
EKS 로깅 전략
로그 수집 패턴
1. stdout/stderr 패턴 (권장)
2. Sidecar 패턴
3. DaemonSet 패턴 (가장 일반적)
EKS 컨트롤 플레인 로깅
로그 유형
설명
권장 여부
Container Insights 로깅
솔루션 비교
기능 비교표
기능
Loki
OpenSearch
CloudWatch
ClickHouse
사용 사례별 권장 솔루션
사용 사례
권장 솔루션
비용 시뮬레이션 (월간 100GB 로그 기준)
의사결정 플로우차트
다음 단계
퀴즈
마지막 업데이트