[설계 면접] 만약 Filebeat, ELK중 하나라도 장애가 발생한다면 어떻게 처리할 수 있나요?

2025. 5. 27. 20:21·면접 준비
728x90
반응형
SMALL
각 구성 요소는 비동기적으로 동작하기 때문에, 특정 컴포넌트에 장애가 발생해도 전체 로그 파이프라인이 즉시 중단되진 않습니다.
예를 들어, Logstash가 장애를 일으킨 경우, Filebeat는 내부 큐에 로그를 임시 저장하며 일정 시간 동안 버퍼링할 수 있습니다. 하지만 이 큐가 가득 차면 로그 유실이 발생할 수 있기 때문에, backpressure 상황에 대한 모니터링과 알림이 필요합니다.
Elasticsearch가 장애 나면 Logstash 출력이 실패하고 큐가 쌓이게 됩니다. 이때 Logstash 자체에 Persistent Queue를 설정해두면 디스크에 저장된 로그를 재처리할 수 있습니다.
Kibana는 단순 시각화 도구이므로, Kibana 장애는 로그 수집에는 영향을 주지 않습니다. 다만 관측 및 분석 기능이 제한될 뿐입니다.
전반적으로 각 구성 요소에 대해 retry, queue, alerting을 고려한 복구 전략이 필요합니다.

 

Filebeat.yml 복구 전략 설정

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

# 메모리 큐 설정 (default: 4096 이벤트)
queue.mem:
  events: 8192
  flush.min_events: 512
  flush.timeout: 3s

# 비동기 출력 + 재시도 설정
output.logstash:
  hosts: ["logstash:5044"]
  loadbalance: true
  worker: 2
  backoff.init: 1s
  backoff.max: 60s
  max_retries: -1  # 무한 재시도

 

Logstash.conf 복구 설정

input {
  beats {
    port => 5044
  }
}

filter {
  json {
    source => "message"
  }
}

output {
  elasticsearch {
    hosts => ["http://elasticsearch:9200"]
    index => "myapp-logs-%{+YYYY.MM.dd}"
    retry_on_conflict => 3
    retry_count => 5
    flush_size => 200
    idle_flush_time => 5
  }
}

 

Logstash.yml

# Persistent Queue 활성화
queue.type: persisted
queue.max_bytes: 1gb
queue.checkpoint.acks: 1024
queue.checkpoint.writes: 1024
queue.checkpoint.interval: 1000ms
728x90
반응형
SMALL

'면접 준비' 카테고리의 다른 글

[설계 면접] 주문 생성 중 결제가 실패했을 때, 주문 상태와 결제 상태를 어떻게 동기화하나요?  (0) 2025.05.27
[설계 면접] Spring Cloud Gateway나 Config Server가 죽으면 어떻게 되나요?  (0) 2025.05.27
[설계 면접] Redis가 다운되면 서비스는 어떻게 동작해야 하나요?  (1) 2025.05.27
[설계 면접] 트래픽이 갑자기 몰리는 경우 어떻게 처리할 수 있도록 설계했나요?  (1) 2025.05.27
[면접 스터디용 질문 리스트] OS / DB / NETWORK/ MSA  (0) 2025.03.02
'면접 준비' 카테고리의 다른 글
  • [설계 면접] 주문 생성 중 결제가 실패했을 때, 주문 상태와 결제 상태를 어떻게 동기화하나요?
  • [설계 면접] Spring Cloud Gateway나 Config Server가 죽으면 어떻게 되나요?
  • [설계 면접] Redis가 다운되면 서비스는 어떻게 동작해야 하나요?
  • [설계 면접] 트래픽이 갑자기 몰리는 경우 어떻게 처리할 수 있도록 설계했나요?
공부하고 기억하는 공간
공부하고 기억하는 공간
IT 비전공자로 시작하여 훌륭한 개발자가 되기 위해 공부하고 있는 공간입니다. 틀린 내용이나 부족한 부분이 있으면 댓글로 알려주세요 바로 수정하겠습니다.
    250x250
  • 공부하고 기억하는 공간
    IT - railroad
    공부하고 기억하는 공간
  • 전체
    오늘
    어제
    • 분류 전체보기 (325)
      • 면접 준비 (22)
        • OS (6)
        • Spring Security (0)
        • Java (3)
        • DB (11)
        • Network (3)
      • ElasticSearch (2)
      • Kafka (4)
      • Spring (22)
        • Spring Cloud (7)
        • Security6 (5)
        • JPA (12)
        • 프로젝트 리팩토링 회고록 (4)
        • Logging (8)
        • Batch (2)
      • Redis (17)
        • Redis 개념 (8)
        • Redis 채팅 (5)
        • Redis 읽기쓰기 전략 (1)
      • AWS (11)
      • 리눅스 (29)
        • 리눅스 마스터 2급 (5)
        • 네트워크(기초) (7)
        • 리눅스의 이해 (6)
        • 리눅스의 설치 (2)
        • 리눅스 운영 및 관리 (6)
      • JAVA-기초 (16)
        • JAVA기본 (11)
        • Design Pattern (5)
      • JSP (27)
        • JSP 기본 개념 (10)
        • JSP (1)
      • SQL (1)
      • TIL (36)
      • 문제 풀이 (2)
        • Programmers (9)
        • 백준 문제풀이 (28)
      • JavaScript (10)
      • HTML (17)
      • Ngrinder (1)
        • Ngrinder 문서 정리 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      Springframework
      스프링프레임워크
      백준
      자바 알고리즘
      JavaScript
      springsecurity
      자바스크립트
      Spring Data Redis
      자바 반복문
      프로그래머스
      리눅스마스터2급
      redis 채팅
      HTML
      자바 면접
      CSS
      자바
      리눅스
      리눅스마스터2급정리
      JSP
      Til
      레디스
      spring redis
      redis
      Spring
      JS
      jsp request
      jsp기초
      자바기초
      자바 면접질문
      java
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    공부하고 기억하는 공간
    [설계 면접] 만약 Filebeat, ELK중 하나라도 장애가 발생한다면 어떻게 처리할 수 있나요?
    상단으로

    티스토리툴바