docs: Fluent Bit 해결책 상세 업데이트 - lua 필터와 container_name 추출 방법
This commit is contained in:
parent
996d6a3fe7
commit
37cd878212
@ -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`
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user