본문 바로가기
문제해결

Fluent Bit Alias 설정으로 Prometheus Metrics을 쉽게 파악하기

by NEMNE 2022. 8. 7.

Fluent Bit는 CNCF의 프로젝트 중 하나인 Fluentd의 서브 프로젝트이다. Fluentd보다 가볍고 빠르다는 장점을 가지고 있어 K8s에서 로그 데이터를 수집할 때 자주 사용된다.

 

Fluent Bit의 다른 장점 중 하나는 기본적으로 메트릭 정보를 제공한다는 점이다. 특히 HTTP를 통해서 JSON 기반의 메트릭이나 Prometheus 기반의 메트릭 데이터를 제공하기 때문에 쉽게 모니터링할 수도 있다.

 

제공하는 메트릭은 fluentbit_input_records_total, fluentbit_input_bytes_total, fluentbit_output_proc_records_total, fluentbit_output_proc_bytes_total, fluentbit_output_errors_total, fluentbit_output_retries_total, fluentbit_output_retries_failed_total 등 유용한 메트릭을 제공해준다.

 

이러한 메트릭 데이터를 어느정도 커스텀한다면 Grafana를 통해 아래와 같은 대시보드를 보여줄 수 있다.

 

 

그래프나 다른 패널들만 본다면 어느 정도 가시성 있는 대시보드라고 생각할 수 있지만 실제로 사용한다면 다음과 같은 문제가 발생한다.

바로 해당 그래프의 값이 어떤 Input 플러그인에 대한 메트릭 값인지 알 수가 없다는 것이다.

이는 같은 Input 플러그인을 여러개 사용했을 때 INSTANCE_IP:PORT/PLUGIN_NAME.NUMBER 로 표현하기 때문에 복잡도가 증가한다.

 

Fluent Bit는 이러한 문제를 해결하기 위해 Input 플러그인에 Alias 설정 매개변수를 제공하고 있다. 

[INPUT]
          Name                tail
          Alias               api-server
          Tag                 backend.*
          Path                /var/log/containers/so1s-dev-deployment*
...

 

위 예시처럼 Alias라는 Key 값에 api-server를 입력하면 tail.1 대신 INSTANCE_IP:PORT/AliasName 으로 나오게 된다.

이전보다 가시성 있게 그래프의 세부 내용을 확인할 수 있다.