와탭(WhaTap)에서 로그 모니터링 기능을 효율적으로 활용하기 위해서는 **정형화된 로그 포맷(Structured Logging)**을 사용하는 방법

와탭(WhaTap)에서 로그 모니터링 기능을 효율적으로 활용하기 위해서는 **정형화된 로그 포맷(Structured Logging)**을 사용하는 것이 가장 중요합니다. 와탭은 기본적으로 텍스트 로그를 수집하지만, 분석과 알림 설정을 용이하게 하려면 JSON 포맷이나 일정한 패턴의 텍스트 포맷을 권장합니다.

와탭 모니터링에 최적화된 로그 포맷 구성 요소를 정리해 드립니다.


1. 권장 로그 포맷: JSON (가장 추천)

JSON 포맷은 와탭의 로그 검색 및 통계 분석 기능을 100% 활용할 수 있게 해줍니다. 와탭이 자동으로 필드를 파싱하여 인덱싱하기 때문입니다.

[JSON 예시]

JSON

{
  "timestamp": "2023-10-27T10:20:35.123Z",
  "level": "ERROR",
  "service_name": "order-api",
  "trace_id": "W1234567890",
  "span_id": "S12345",
  "user_id": "user_01",
  "method": "POST",
  "url": "/api/v1/orders",
  "status_code": 500,
  "message": "Order processing failed",
  "stack_trace": "java.lang.NullPointerException: ..."
}

2. 필수 및 권장 필드 구성

로그에 포함시켜야 할 핵심 데이터들입니다.

필드명 중요도 설명 비고
timestamp 필수 로그 발생 시간 ISO 8601 포맷 추천 (yyyy-MM-dd’T’HH:mm:ss.SSSZ)
level 필수 로그 레벨 (INFO, WARN, ERROR 등) 와탭 대시보드에서 레벨별 필터링 시 사용
service_name 권장 마이크로서비스 환경에서 서비스 식별자 어떤 서버/앱에서 발생했는지 구분
trace_id 핵심 와탭 APM과 연동되는 트랜잭션 ID APM 상세 보기와 로그를 연결하는 고리
message 필수 실제 로그 내용 검색의 핵심 대상
class / method 권장 로그가 발생한 소스 코드 위치 트러블슈팅 속도 향상
elapsed_time 선택 처리 소요 시간 성능 저하 구간 파악 용이

3. 와탭 APM-로그 연동 (Trace ID 포함)

와탭의 가장 강력한 기능은 **”에러 로그를 보고 해당 시점의 트랜잭션 트레이스로 바로 이동”**하는 것입니다. 이를 위해 로그에 반드시 와탭 Trace ID를 심어야 합니다.

  • Java (Logback) 예시:
    와탭 에이전트가 제공하는 MDC 필드를 활용하여 설정합니다.

    Xml

    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg [x-wt-trace-id:%X{wtTraceId}]%n</pattern>

4. 일반 텍스트 포맷 사용 시 (Pattern)

JSON이 어렵다면, 규칙적인 구분자를 사용하는 텍스트 포맷을 사용해야 와탭에서 파싱 규칙(Parsing Rule)을 정의하기 쉽습니다.

[권장 패턴]
[시간] [레벨] [서비스명] [TraceID] [클래스.메서드] – 메시지

[예시]
2023-10-27 14:00:01 INFO order-service [W987654321] c.s.order.OrderService – Order created successfully


5. 와탭 로그 설정을 위한 팁

와탭(WhaTap)에서 로그 모니터링 기능을 효율적으로 활용하기 위해서는 **정형화된 로그 포맷(Structured Logging)**을 사용하는 방법

  1. 로그 파일 위치 지정: 와탭 에이전트 설정(whatap.conf)에서 로그 파일을 수집할 경로를 정확히 지정해야 합니다.

    Properties

    # whatap.conf 예시
    weaving=log4j-2.17 # 사용 중인 로깅 라이브러리 설정
    log_root=/app/logs/
    log_files=application.log, access.log
  2. 멀티라인 로그 처리: Stack Trace처럼 여러 줄로 발생하는 로그는 하나의 이벤트로 묶이도록 와탭 콘솔에서 로그 파싱 설정을 확인해야 합니다. (보통 날짜로 시작하는 줄을 새로운 로그의 시작으로 인식하게 설정)

  3. 민감 정보 마스킹: 개인정보(전화번호, 계좌번호 등)는 로그 출력 단계에서 마스킹 처리를 하는 것이 보안상 안전합니다.

요약

와탭에서 최고 효율을 내려면 **”JSON 포맷”**을 사용하고, 반드시 **”Trace ID”**를 로그 필드에 포함시키세요. 이렇게 하면 장애 발생 시 로그에서 클릭 한 번으로 상세 성능 지표까지 파악할 수 있습니다.