Fluent Bit에서 여러 INPUT, OUTPUT을 설정하는 방법

Su Bak
4 min readApr 25, 2022
Photo by Ferenc Almasi on Unsplash

Fluent Bit을 사용하면 원하는 형태로 데이터를 변형해서 AWS S3와 같은 다른 서비스에 전달하는 것이 가능합니다. 그래서 서버 로깅 작업 등에서 자주 사용하게 되는데요.

프로젝트를 진행하다보면 하나의 로그 파일로 모든 로깅을 저장하는 경우보단 목적에 맞춰 여러 로그 파일로 나누는 경우가 흔합니다.

그리고 나눠진 로그 파일도 어떤 로그 파일은 S3에 저장해야하는 반면 현재 메모리의 상태를 기록하기만 하면 되는 로그 파일도 있습니다.

이번 글에선 여러 INPUT에 대한 알맞은 OUTPUT을 설정하는 방법을 예시를 통해 알아보겠습니다.

예시로 CPU 사용량과 특정 위치에 있는 로그파일을 input으로 받고 CPU 사용량은 stdout으로 로그파일은 kinesis_firehose로 output으로 하는 fluent bit 설정파일을 만들어봅시다.

설정파일 1개에 모든 설정을 넣을 수도 있지만 저는 설정파일을 2개로 나눠서 하나는 CPU 사용량 다른 하나는 로그파일로 사용하겠습니다.

먼저 CPU사용량을 input으로 받아서 stdout을 output으로 하는 설정 파일을 만들어줍니다. 이름은 cpu.conf 라고 정했습니다.

[SERVICE]
Flush 5
Daemon Off
Log_Level debug
Parsers_File parsers.conf
Plugins_File plugins.conf
[INPUT]
Name cpu
Tag cpu_log
[OUTPUT]
Name stdout
Match cpu_log

여기서 중요한 것은 INPUT의 Tag와 OUTPUT의 Match 입니다. Tag와 Match를 잘 기억해주시기 바랍니다.

다음은 특정 위치에 있는 로그파일을 input으로 받아서 kinesis_firehose를 output으로 지정하는 설정파일을 만들어줍니다. 이름은 log.conf 라고 하겠습니다.

[SERVICE]
Flush 5
Daemon Off
Log_Level debug
Parsers_File parsers.conf
Plugins_File plugins.conf
[INPUT]
Name tail…

--

--

Su Bak

Backend Developer. Mainly use JavaScript but try not to have language constraints. Always trying to acquire new knowledge