From 37cd878212781668808ab99912465a3170b2a288 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Mon, 29 Sep 2025 12:28:14 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20Fluent=20Bit=20=ED=95=B4=EA=B2=B0?= =?UTF-8?q?=EC=B1=85=20=EC=83=81=EC=84=B8=20=EC=97=85=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8=20-=20lua=20=ED=95=84=ED=84=B0=EC=99=80=20container?= =?UTF-8?q?=5Fname=20=EC=B6=94=EC=B6=9C=20=EB=B0=A9=EB=B2=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...3_fluent_bit_container_metadata_missing.md | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/troubleshooting/250929_51123_fluent_bit_container_metadata_missing.md b/troubleshooting/250929_51123_fluent_bit_container_metadata_missing.md index f8fbbfd..91cdd01 100644 --- a/troubleshooting/250929_51123_fluent_bit_container_metadata_missing.md +++ b/troubleshooting/250929_51123_fluent_bit_container_metadata_missing.md @@ -34,15 +34,27 @@ tags: [fluent-bit, opensearch, logging, docker] ## 해결 방안 -### 1. fluent-bit.conf 수정 - tail 유지 + lua 필터 -- **docker 입력은 메트릭 전용** (로그 수집 불가) -- tail 입력 유지 필수 -- lua 또는 modify 필터로 경로에서 컨테이너 ID 추출 -- 예: `/var/lib/docker/containers/{container_id}/{container_id}-json.log` +### 현재 상태 (미해결) +- fluent-bit.conf:29 - 작동 안 하는 `[FILTER] Name docker` 존재 +- docker-compose.yaml:13 - `/var/run/docker.sock` 마운트 있으나 활용 안 됨 +- lua 스크립트 없음, Path_Key 설정 없음 -### 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 오류 - 13번 라인: `COPY certs/root.pem /fluent-bit/certs/root.pem`