"Fluent Bit 문서/모니터링"의 두 판 사이의 차이

12번째 줄: 12번째 줄:


==HTTP 서버==
==HTTP 서버==
Fluent Bit에는 내부 정보를 쿼리하고 실행 중인 각 플러그인의 지표를 모니터링하는 데 사용할 수 있는 HTTP 서버가 내장되어 있습니다.
모니터링 인터페이스는 기본 형식을 지원하므로 Prometheus와 쉽게 통합될 수 있습니다.
===시작하기===
===시작하기===
시작하기 위한 첫 번째 단계는 설정 파일에서 HTTP 서버를 활성화하는 것입니다.
<syntaxhighlight lang='console'>
[SERVICE]
    HTTP_Server  On
    HTTP_Listen  0.0.0.0
    HTTP_PORT    2020
[INPUT]
    Name cpu
[OUTPUT]
    Name  stdout
    Match *
</syntaxhighlight>
위의 설정 스니핏은 Fluent Bit에 TCP 포트 2020에서 HTTP 서버를 시작하고 모든 네트워크 인터페이스에서 수신하도록 지시합니다.
<syntaxhighlight lang='console'>
$ bin/fluent-bit -c fluent-bit.conf
Fluent Bit v1.4.0
* Copyright (C) 2019-2020 The Fluent Bit Authors
* Copyright (C) 2015-2018 Treasure Data
* Fluent Bit is a CNCF sub-project under the umbrella of Fluentd
* https://fluentbit.io
[2020/03/10 19:08:24] [ info] [engine] started
[2020/03/10 19:08:24] [ info] [http_server] listen iface=0.0.0.0 tcp_port=2020
</syntaxhighlight>
이제 간단한 curl 명령어만으로 몇 가지 정보를 수집할 수 있습니다.
<syntaxhighlight lang='console'>
$ curl -s http://127.0.0.1:2020 | jq
{
  "fluent-bit": {
    "version": "0.13.0",
    "edition": "Community",
    "flags": [
      "FLB_HAVE_TLS",
      "FLB_HAVE_METRICS",
      "FLB_HAVE_SQLDB",
      "FLB_HAVE_TRACE",
      "FLB_HAVE_HTTP_SERVER",
      "FLB_HAVE_FLUSH_LIBCO",
      "FLB_HAVE_SYSTEMD",
      "FLB_HAVE_VALGRIND",
      "FLB_HAVE_FORK",
      "FLB_HAVE_PROXY_GO",
      "FLB_HAVE_REGEX",
      "FLB_HAVE_C_TLS",
      "FLB_HAVE_SETJMP",
      "FLB_HAVE_ACCEPT4",
      "FLB_HAVE_INOTIFY"
    ]
  }
}
</syntaxhighlight>
터미널에서 JSON 데이터를 쉽게 읽을 수 있도록 도와주는 jq 프로그램에 curl 명령 출력을 보내고 있다는 점을 참고하세요. Fluent Bit는 JSON을 예쁘게 인쇄하는 것을 목표로 하지 않습니다.
===REST API 인터페이스===
===REST API 인터페이스===
Fluent Bit는 모니터링을 위한 유용한 인터페이스를 노출하는 것을 목표로 하며, Fluent Bit v0.14부터 다음의 엔드포인트를 사용할 수 있습니다.
{| class='wikitable'
|-
! URI !! 설명 !! 데이터 형식
|-
| /
| Fluent Bit 빌드 정보
| JSON
|-
| /api/v1/uptime
| 업타임 정보를 초 단위로 사람이 읽을 수 있는 형식으로 가져옵니다.
| JSON
|-
| /api/v1/메트릭
| 로드된 플러그인당 내부 메트릭
| JSON
|-
| /api/v1/metrics/prometheus
| Prometheus 서버에서 사용할 준비가 된, 로드된 플러그인당 내부 메트릭
| Prometheus Text 0.0.4
|-
| /api/v1/storage
| 스토리지 계층/버퍼링된 데이터의 내부 메트릭을 가져옵니다. 이 옵션은 <code>SERVICE</code> 섹션의 <code>storage.metrics</code> 속성이 활성화된 경우에만 활성화됩니다.
| JSON
|-
| /api/v1/health
| Fluent Bit 헬스 체크 결과
| 문자열
|-
| /api/v2/metrics
| 로드된 플러그인당 내부 측정항목
| [​https://github.com/fluent/cmetrics cmetrics text 형식]
|-
| /api/v2/metrics/prometheus
| Prometheus 서버에서 사용할 준비가 된, 로드된 플러그인당 내부 메트릭
| Prometheus Text 0.0.4
|-
| /api/v2/reload
| 핫 리로딩을 실행하거나 핫 리로딩 상태를 가져옵니다. 자세한 내용은 [https://docs.fluentbit.io/manual/administration/hot-reload 핫 리로딩 문서]를 참조하세요.
| JSON
|}
===메트릭 설명===
===메트릭 설명===
===Uptime 예시===
===Uptime 예시===

2024년 3월 4일 (월) 23:51 판

1 개요

모니터링

Fluent Bit 데이터 파이프라인을 모니터링하는 방법 알아보기

Fluent Bit에는 파이프라인 내부를 모니터링하고, Prometheus 및 Grafana에 연결하고, 상태 확인 및 커넥터를 사용하여 이러한 목적으로 외부 서비스를 사용할 수 있는 기능이 내장되어 있습니다.

2 HTTP 서버

Fluent Bit에는 내부 정보를 쿼리하고 실행 중인 각 플러그인의 지표를 모니터링하는 데 사용할 수 있는 HTTP 서버가 내장되어 있습니다.

모니터링 인터페이스는 기본 형식을 지원하므로 Prometheus와 쉽게 통합될 수 있습니다.

2.1 시작하기

시작하기 위한 첫 번째 단계는 설정 파일에서 HTTP 서버를 활성화하는 것입니다.

[SERVICE]
    HTTP_Server  On
    HTTP_Listen  0.0.0.0
    HTTP_PORT    2020

[INPUT]
    Name cpu

[OUTPUT]
    Name  stdout
    Match *

위의 설정 스니핏은 Fluent Bit에 TCP 포트 2020에서 HTTP 서버를 시작하고 모든 네트워크 인터페이스에서 수신하도록 지시합니다.

$ bin/fluent-bit -c fluent-bit.conf
Fluent Bit v1.4.0
* Copyright (C) 2019-2020 The Fluent Bit Authors
* Copyright (C) 2015-2018 Treasure Data
* Fluent Bit is a CNCF sub-project under the umbrella of Fluentd
* https://fluentbit.io

[2020/03/10 19:08:24] [ info] [engine] started
[2020/03/10 19:08:24] [ info] [http_server] listen iface=0.0.0.0 tcp_port=2020

이제 간단한 curl 명령어만으로 몇 가지 정보를 수집할 수 있습니다.

$ curl -s http://127.0.0.1:2020 | jq
{
  "fluent-bit": {
    "version": "0.13.0",
    "edition": "Community",
    "flags": [
      "FLB_HAVE_TLS",
      "FLB_HAVE_METRICS",
      "FLB_HAVE_SQLDB",
      "FLB_HAVE_TRACE",
      "FLB_HAVE_HTTP_SERVER",
      "FLB_HAVE_FLUSH_LIBCO",
      "FLB_HAVE_SYSTEMD",
      "FLB_HAVE_VALGRIND",
      "FLB_HAVE_FORK",
      "FLB_HAVE_PROXY_GO",
      "FLB_HAVE_REGEX",
      "FLB_HAVE_C_TLS",
      "FLB_HAVE_SETJMP",
      "FLB_HAVE_ACCEPT4",
      "FLB_HAVE_INOTIFY"
    ]
  }
}

터미널에서 JSON 데이터를 쉽게 읽을 수 있도록 도와주는 jq 프로그램에 curl 명령 출력을 보내고 있다는 점을 참고하세요. Fluent Bit는 JSON을 예쁘게 인쇄하는 것을 목표로 하지 않습니다.

2.2 REST API 인터페이스

Fluent Bit는 모니터링을 위한 유용한 인터페이스를 노출하는 것을 목표로 하며, Fluent Bit v0.14부터 다음의 엔드포인트를 사용할 수 있습니다.

URI 설명 데이터 형식
/ Fluent Bit 빌드 정보 JSON
/api/v1/uptime 업타임 정보를 초 단위로 사람이 읽을 수 있는 형식으로 가져옵니다. JSON
/api/v1/메트릭 로드된 플러그인당 내부 메트릭 JSON
/api/v1/metrics/prometheus Prometheus 서버에서 사용할 준비가 된, 로드된 플러그인당 내부 메트릭 Prometheus Text 0.0.4
/api/v1/storage 스토리지 계층/버퍼링된 데이터의 내부 메트릭을 가져옵니다. 이 옵션은 SERVICE 섹션의 storage.metrics 속성이 활성화된 경우에만 활성화됩니다. JSON
/api/v1/health Fluent Bit 헬스 체크 결과 문자열
/api/v2/metrics 로드된 플러그인당 내부 측정항목 [​https://github.com/fluent/cmetrics cmetrics text 형식]
/api/v2/metrics/prometheus Prometheus 서버에서 사용할 준비가 된, 로드된 플러그인당 내부 메트릭 Prometheus Text 0.0.4
/api/v2/reload 핫 리로딩을 실행하거나 핫 리로딩 상태를 가져옵니다. 자세한 내용은 핫 리로딩 문서를 참조하세요. JSON

2.3 메트릭 설명

2.4 Uptime 예시

다음 명령어를 사용하여 서비스 업타임을 쿼리합니다.

$ curl -s http://127.0.0.1:2020/api/v1/uptime | jq

다음과 같은 결과 출력될 것입니다.

{
  "uptime_sec": 8950000,
  "uptime_hr": "Fluent Bit has been running:  103 days, 14 hours, 6 minutes and 40 seconds"
}

2.5 메트릭 예시

다음 명령어를 사용하여 JSON 형식의 내부 메트릭을 쿼리합니다.

$ curl -s http://127.0.0.1:2020/api/v1/metrics | jq

다음과 같은 결과 출력될 것입니다.

{
  "input": {
    "cpu.0": {
      "records": 8,
      "bytes": 2536
    }
  },
  "output": {
    "stdout.0": {
      "proc_records": 5,
      "proc_bytes": 1585,
      "errors": 0,
      "retries": 0,
      "retries_failed": 0
    }
  }
}

2.6 Prometheus 형식의 메트릭

Prometheus Text 0.0.4 형식으로 내부 메트릭을 쿼리합니다.

$ curl -s http://127.0.0.1:2020/api/v1/metrics/prometheus

동일한 메트릭이 이번에는 JSON 대신 Prometheus 형식으로 표시됩니다.

fluentbit_input_records_total{name="cpu.0"} 57 1509150350542
fluentbit_input_bytes_total{name="cpu.0"} 18069 1509150350542
fluentbit_output_proc_records_total{name="stdout.0"} 54 1509150350542
fluentbit_output_proc_bytes_total{name="stdout.0"} 17118 1509150350542
fluentbit_output_errors_total{name="stdout.0"} 0 1509150350542
fluentbit_output_retries_total{name="stdout.0"} 0 1509150350542
fluentbit_output_retries_failed_total{name="stdout.0"} 0 1509150350542

2.7 별칭 설정

3 ​Grafana 대시보드 및 알림

Fluent Bit의 노출된 Prometheus 스타일 메트릭을 활용하여 대시보드 및 알림를 생성할 수 있습니다. 제공된 예시 대시보드Banzai Cloud로깅 오퍼레이터 대시보드에서 많은 영감을 받았지만, instance 레이블 사용(이유는 여기 참조), 누적 그래프, Fluent Bit 메트릭에 중점을 두는 등 몇 가지 주요 차이점이 있습니다.

Spaces-wOptY6OABpfLp0KVgOvv-uploads-git-blob-4b267767a24f5bdb21bcafbef0bc49efeed8f616-dashboard.png

3.1 알림

샘플 알림은 여기에서 확인할 수 있습니다 .

4 Fluent Bit 헬스 체크

5 Calyptia

Calyptia는 데이터 흐름, 지표 및 구성을 포함하여 Fluent Bit 에이전트를 모니터링할 수 있는 호스팅 서비스입니다.

Spaces-wOptY6OABpfLp0KVgOvv-uploads-git-blob-7cf6d8ace22cb03a3bb769bf6a1e7729c096b3aa-image-19-.png

5.1 Calyptia Cloud 시작하기

Fluent Bit 에이전트를 등록하는 데는 1분도 안 걸립니다. 절차는:

  • Calyptia Core 콘솔로 이동하여 로그인합니다.
  • 왼쪽 메뉴에서 설정을 클릭하고 API 키를 생성/복사하세요.

Fluent Bit 설정 파일에 다음 설정 섹션을 추가합니다.

[CUSTOM]
    name     calyptia
    api_key  <YOUR_API_KEY>

설정에서 API 키를 교체하세요.

Fluent Bit 에이전트를 다시 시작한 후 몇 초 후에 Calyptia Cloud 대시보드에 에이전트가 나열됩니다. 메트릭이 표시되는 데 약 30초 정도 걸립니다.

Spaces-wOptY6OABpfLp0KVgOvv-uploads-git-blob-19eceaa08b667812bf549ac6c7e388347ace7c44-agent.png

5.2 Calyptia에 연락하기

Calyptia 팀에 연락하려면 hello@calyptia.com 으로 이메일을 보내주세요.

6 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}