DOCS/troubleshooting/250930_claude_fluent_bit_memory_overflow_fix.md
Claude-51124 0bee50de1a docs: Fluent-bit 메모리 오버플로우 해결 문서화
- Debug 로그 자기수집 무한루프 문제 분석
- Log_Level debug → info 변경으로 해결
- Mem_Buf_Limit 5MB → 50MB 증가
- 메모리 사용량 정상화 (5.6MB)
- rb8001 로그 수집 복구 확인

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 03:20:11 +09:00

3.1 KiB

Fluent-bit 메모리 오버플로우 및 Debug 로그 무한루프 해결

작성일: 2025-09-30 작성자: Claude (51124 서버 담당) 문제: Fluent-bit debug 로그 자기수집 무한루프로 메모리 버퍼 오버플로우 발생

문제 상황

발견된 증상

  • Fluent-bit 메모리 버퍼 5MB 한계 초과 (543,791개 debug 로그)
  • rb8001 로그 수집 중단 (17:55에서 멈춤)
  • OpenSearch 연결은 정상이나 로그 전송 실패
  • 시스템 리소스 과부하

근본 원인

[SERVICE]
    Log_Level    debug  # 문제의 원인
    Mem_Buf_Limit     5MB  # 너무 작은 버퍼

Debug 로그 자기수집 루프:

  1. Fluent-bit가 debug 로그 생성
  2. Docker JSON 로그에 기록됨
  3. Fluent-bit가 자신의 로그를 다시 수집
  4. 더 많은 debug 로그 생성
  5. 무한 반복 → 메모리 오버플로우

해결 과정

1단계: 문제 진단

# rb8001 로그 상태 확인
docker logs rb8001 --tail 50

# Fluent-bit 로그 확인 (543,791개 debug 로그 발견)
docker logs fluent-bit --tail 100

# 메모리 사용량 확인
docker stats fluent-bit

2단계: Git 충돌 해결

cd /home/admin/ivada_project/fluent-bit
git fetch origin
git reset --hard origin/main

3단계: 설정 수정

# fluent-bit.conf 수정사항
[SERVICE]
    Log_Level    info        # debug → info (자기수집 차단)
    Flush        5           # 유지

[INPUT]
    Mem_Buf_Limit     50MB   # 5MB → 50MB (버퍼 증가)
# .env 파일 생성
OPENSEARCH_HOST=192.168.219.45  # 51124서버용

4단계: 컨테이너 재시작

docker compose down && docker compose up -d --build

해결 결과

메모리 사용량 정상화

Before: Fluent-bit 메모리 오버플로우 (5MB 한계 초과)
After:  Fluent-bit 5.6MB (0.02% 시스템 메모리)

로그 수집 복구

Before: rb8001 로그 17:55에서 중단
After:  rb8001 실시간 로그 수집 정상 (03:14:55 최신)

설정 최적화

  • Log_Level: debug → info (무한루프 차단)
  • Mem_Buf_Limit: 5MB → 50MB (안정성 확보)
  • OPENSEARCH_HOST: 환경변수로 분리

교훈

기술적 교훈

  1. Log_Level debug 주의: 자기수집 루프 가능성
  2. 메모리 버퍼 크기: 로그 볼륨에 맞는 적절한 크기 설정
  3. 환경변수 분리: 서버별 설정 관리 용이성
  4. Git 작업 순서: 충돌 시 reset --hard 활용

운영 교훈

  1. 실시간 모니터링: 메모리 사용량 정기 체크 필요
  2. 로그 레벨 정책: Production 환경에서는 info 이상 권장
  3. 버퍼 크기 계산: 피크 로그 볼륨의 2-3배로 설정
  4. 설정 변경 검증: 재시작 후 메모리/CPU 사용량 확인

예방 조치

Log_Level debug 사용 금지, 메모리 버퍼 적정 크기 유지

관련 파일

  • /home/admin/ivada_project/fluent-bit/fluent-bit.conf
  • /home/admin/ivada_project/fluent-bit/.env
  • /home/admin/ivada_project/fluent-bit/docker-compose.yaml

후속 작업

완료된 해결책으로 문제 종료