Elk

Elk 카테고리의 모든 포스트 - 한국어

1개의 포스트

Logs Monitoring 정리 (실무 중심)

✅ 1. 전체 아키텍처 흐름

[App/Infra Logs]
      ↓
   Filebeat / Logstash
      ↓
  [Elasticsearch]
      ↓
   Kibana (대시보드)
  • Filebeat: 로그 파일 수집기 (Lightweight)
  • Logstash: 데이터 처리, 변환, 파싱
  • Elasticsearch: 로그 저장/검색/분석
  • Kibana: 시각화 및 모니터링 대시보드

✅ 2. Filebeat (로그 수집기)

🔹 역할

  • 로그 파일 tailing
  • Multiline (스택트레이스 등) 지원
  • 시스템 로그, Docker 로그, Nginx, Java 로그 등 수집 가능

🔹 설정 예시

filebeat.inputs:
  - type: log
    paths:
      - /var/log/myapp/*.log
    multiline.pattern: '^\['
    multiline.negate: true
    multiline.match: after

output.elasticsearch:
  hosts: ["http://localhost:9200"]
  index: "myapp-logs-%{+yyyy.MM.dd}"

💡 실무 팁

  • multiline 설정 필수 (Java stack trace)
  • fields 옵션으로 서비스명, 환경 태깅
  • JSON 로그 구조화 추천

✅ 3. Logstash (필요 시 중간 가공)

🔹 역할

  • 로그 파싱 및 정제
  • Grok 패턴, mutate, date 필터 등
  • Kafka → Logstash → ES 구성 가능

🔹 Grok 예시

filter {
  grok {
    match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} \[%{LOGLEVEL:level}\] %{GREEDYDATA:msg}" }
  }
  date {
    match => [ "timestamp", "ISO8601" ]
  }
}

💡 실무 팁

  • Filebeat에서 JSON 구조면 Logstash 생략 가능
  • Kafka 중계/복잡한 parsing 시 유용

✅ 4. Kibana (시각화 및 알림)

🔹 주요 기능

  • Discover: 실시간 로그 조회
  • Dashboard: 시각화
  • Alerting: 이상 탐지 알림
  • Lens/TSVB: 시간 기반 분석

💡 실무 팁

  • timestamp, level, logger, service_name 필드 표준화
  • Error 로그 대시보드 구성
  • 복합 필터링 예시: log.level: ERROR AND NOT message:"Connection reset"

✅ 5. 성능/보안 로그 모니터링

유형설명
JVM GC 로그메모리 문제 추적
Nginx / ApacheAPI 응답 시간, 요청 수 분석
Kafka / RedisBroker 상태, throughput 추적
Spring Bootactuator 로그 + slf4j 로그
시스템 로그CPU, 메모리 사용량 추적
인증 로그로그인 시도, 실패 분석

✅ 6. 인덱스 전략 및 유지 관리

  • index.lifecycle 정책 (ILM): 오래된 로그 자동 삭제
  • 일별 인덱스: myapp-logs-2025.07.11
  • 템플릿 매핑 필수: @timestamp, log.level
  • hot-warm-cold 아키텍처 고려

✅ 7. 실무 구성 예시 (Docker Compose)

services:
  elasticsearch:
    image: elasticsearch:8.17.6
    environment:
      - discovery.type=single-node
    ports:
      - 9200:9200

  kibana:
    image: kibana:8.17.6
    ports:
      - 5601:5601
    depends_on:
      - elasticsearch

  filebeat:
    image: docker.elastic.co/beats/filebeat:8.17.6
    volumes:
      - ./filebeat.yml:/usr/share/filebeat/filebeat.yml
      - /var/log:/var/log:ro

✅ 정리 요약

구성 요소역할비고
Filebeat로그 수집Multiline 지원, 간단
Logstash로그 정제Grok 필터, Kafka 중계
Elasticsearch저장/검색인덱스 설계 중요
Kibana시각화/모니터링Discover, Alert 활용