docs: Fluent Bit 해결책 상세 업데이트 - lua 필터와 container_name 추출 방법

This commit is contained in:
happybell80 2025-09-29 12:28:14 +09:00
parent 996d6a3fe7
commit 37cd878212

View File

@ -34,15 +34,27 @@ tags: [fluent-bit, opensearch, logging, docker]
## 해결 방안 ## 해결 방안
### 1. fluent-bit.conf 수정 - tail 유지 + lua 필터 ### 현재 상태 (미해결)
- **docker 입력은 메트릭 전용** (로그 수집 불가) - fluent-bit.conf:29 - 작동 안 하는 `[FILTER] Name docker` 존재
- tail 입력 유지 필수 - docker-compose.yaml:13 - `/var/run/docker.sock` 마운트 있으나 활용 안 됨
- lua 또는 modify 필터로 경로에서 컨테이너 ID 추출 - lua 스크립트 없음, Path_Key 설정 없음
- 예: `/var/lib/docker/containers/{container_id}/{container_id}-json.log`
### 2. docker-compose.yaml 수정 (필요 시) ### 필요한 수정사항
- lua 필터에서 Docker API 호출 필요 시 `/var/run/docker.sock` 마운트
- 단순 경로 파싱만 한다면 불필요 #### 1. fluent-bit.conf 수정
- 29-35번 라인 `[FILTER] Name docker` 섹션 제거 (v4.0.9에 없는 필터)
- INPUT 섹션에 `Path_Key filepath` 추가 (파일 경로를 레코드에 포함)
- lua 필터 추가 필요
#### 2. lua 스크립트 작성 (extract_container_id.lua)
- 경로에서 container_id 추출: `/var/lib/docker/containers/{id}/{id}-json.log`
- container_name 얻으려면:
- 방법1: `/var/lib/docker/containers/{id}/config.v2.json` 파일 읽기
- 방법2: docker.sock 마운트 유지하고 Docker API 호출
#### 3. docker-compose.yaml 수정
- lua 스크립트 마운트: `./extract_container_id.lua:/fluent-bit/etc/extract.lua:ro`
- docker.sock: container_name 필요 시 유지, ID만 필요하면 제거
### 3. Dockerfile 오류 ### 3. Dockerfile 오류
- 13번 라인: `COPY certs/root.pem /fluent-bit/certs/root.pem` - 13번 라인: `COPY certs/root.pem /fluent-bit/certs/root.pem`