한줄 미리보기 : 제목처럼 안 됩니다. 이거 되게 하려고 몇 시간을 허비했는지..... 저같이 '이거 설정 좀만 바꾸면 되는 거 아냐?' 하고 매달리실 분들을 위해 씁니다...
환경 : EKS (쿠버네티스 버전 1.8)
fluent bit : latest
fluent bit의 tail의 인풋 설정은 다음과 같은데,
[INPUT]
Name tail
Tag kube.*
Path /var/log/containers/*.log
여기서 Path를 /var/log/containers/custom-*.log 와 같이 조금이라도 바꾸면... 쿠버네티스 메타정보가 추가되지 않습니다.
시스템 로그(var/log/containers/~ 하위의 podname별로 생기는 {podname}_{namespace}_{container_name}_{dockerId}.log 형태의 로그파일)이 아닌,
특정 경로에 마운트해둔 사용자 로그(애플리케이션에서 특정한 목적으로 남기는 로그)의 경우,
파일 이름을 시스템 로그파일과 같이 {podname}_{namespace}_{container_name}_{dockerId}.log 로 맞춰준다면 해당 정보가 로그에 추가됩니다.
하지만 개발자 한 명이라도 로그 파일 이름을 저렇게 남기지 않는다면... 로그는 나가리됩니다...
차라리 로그 파일을 남기는 형식에 {podname}, {namespace}, {container_name} 을 추가해달라고 한 후,
parser filter로 정규식을 사용해 파싱하면 쿠버네티스 메타정보가 아름답게 추가됩니다.
[0] kube_app: [1643108334.526676309, {"time_local"=>"2022-01-25 10:58:54,526", "thread"=>"Timer-0", "level"=>"INFO", "marker"=>" ", "logger"=>"c.e.demo.SpringBootLoggerApplication", "log_message"=>"Hello World ::: 1", "pod_name"=>"springboot-logger-xx-z5s5m", "pod_namespace"=>"aa", "cluster_name"=>"dev-test-eks"}]
'인프라,데이터 > Fluentd, Fluent Bit' 카테고리의 다른 글
Fluent Bit의 버퍼링Buffering (번역) (0) | 2022.03.20 |
---|---|
Using Lua filter to find if log matches a pattern, and remove last n characters. (0) | 2022.03.02 |
Remove last n characters using Regex & Fluent Bit (0) | 2022.03.02 |
Kubernetes - Fluent Bit 로 사용자 로그 S3에 output 설정하기 (0) | 2022.02.08 |
Fluent Bit Stream Processor 사용하여 데이터 특정 조건에 따라 다른 아웃풋으로 보내기 (0) | 2022.01.26 |