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 으로 나오게 된다.
이전보다 가시성 있게 그래프의 세부 내용을 확인할 수 있다.
'문제해결' 카테고리의 다른 글
Helm hooks을 사용하여 Namespace에 istio-injection label 설정하기 (0) | 2022.09.25 |
---|---|
EKS Helm에서 발생하는 Error: Kubernetes cluster unreachable 해결하기 (0) | 2022.07.15 |
Nginx로 React, Node 3-Tier Architecture 적용하기 (0) | 2021.11.03 |
Nginx를 설치하고 HTTPS를 적용해보자 (with Ncloud, Google Domains) (0) | 2021.10.30 |
NCloud로 서버 생성과 Mysql 연동 후 express 배포하기 - 2 (0) | 2021.09.23 |