컨테이너 이미지를 사용하여 유창한 비트를 설치하고 구성합니다

컨테이너 이미지를 사용하여 유창한 비트를 설치하고 구성합니다

이 시리즈는 CNCF (Cloud Native Computing Foundation) Project Fluent Bit에 대해 배우고 자하는 사람들을위한 일반 목적을 얻는 가이드입니다.

이 시리즈의 각 기사는 통찰력을 제공하여 단일 주제를 다룹니다. 무엇 주제는 우리는 그 주제를 탐구하는 데 관심이 있습니다. 어디 주제를 시작하기 위해 어떻게 유창한 비트 프로젝트와 관련하여 주제에 대해 배우는 데 실습을합니다.

아이디어는 각 기사가 그 자체로 서있을 수 있지만 유창한 비트 텔레미트 측정 파이프 라인으로 솔루션을 구현할 수있는 능력을 천천히 증가시키는 경로를 이끌어냅니다.

컨테이너 이미지를 사용하여 유창한 비트를 설치하고 구성 하여이 기사의 주제를 살펴 보겠습니다.

이전 기사를 놓친 경우 컨테이너 이미지와 함께 로컬 컴퓨터에 유창한 비트 텔레미트 측정 파이프 라인을 설치하고 사용하는 방법을 공유하기 전에 유창한 비트에 대한 짧은 소개를 제공하고 있습니다.

유창한 비트는 무엇입니까?

유창한 비트로 다이빙하기 전에 물러서서 유창한 조직 내 에서이 프로젝트의 위치를 ​​살펴 보겠습니다. Github의 유창한 조직을 보면 유창하고 유창한 비트 프로젝트가 주최합니다. 배경 이야기는이 프로젝트가 로그 구문 분석 프로젝트 인 Fluentd로 시작하여 2026 년 CNCF에 합류하여 2019 년에 졸업 상태에 도달했다는 것입니다.

세계가 클라우드 네이티브 Kubernetes 환경으로 향하고 있다는 것이 분명 해지면 솔루션은 Kubernetes 솔루션이 요구하는 유연하고 가벼운 요구 사항을 위해 설계되지 않았습니다. 유창한 비트는 클라우드 네이티브 Kubernetes 환경을위한 저주적, 고 처리량 및 고도로 확장 가능한 로그 관리 솔루션을 가질 필요성에서 태어났습니다. 이 프로젝트는 2017 년에 유창한 조직 내에서 하위 프로젝트로 시작되었으며, 지난 주 V4가 출시 된 후 나머지는 10 년 동안 역사가되었습니다!

유창한 비트는 유연하고 가벼운 로그 파이프 라인 솔루션보다 훨씬 많아서 메트릭과 흔적을 처리하고 수집중인 소스에서 원격 측정 데이터를 바로 제어하려는 원격 측정 파이프 라인 수집 도구가 될 수 있습니다.

유창한 비트로 시작하고 우리 자신을 위해 무엇을 할 수 있는지 보자!

컨테이너 이미지로 설치하는 이유는 무엇입니까?

모든 오픈 소스 프로젝트의 관리자는 누구나 처음부터 액세스하고 구축 할 수있는 소스 코드를 제공합니다. 이것은 종종 위협적이며 항상 간단한 것은 아니므로 요즘에는 컨테이너 이미지 레지스트리에서 로컬 컴퓨터로 끌어 당기는 데 필요한 사전 제작 된 컨테이너 이미지가 제공됩니다.

개발을 위해 컨테이너는 조직에 배치하기 전에 로컬 머신 설정에 연결되지 않은 비공식 비트 텔레미트 파이프 라인을 테스트하는 방법을 제공합니다.

시작할 곳

소프트웨어 프로젝트의 컨테이너 이미지와 유창한 비트 이미지를 실행하기 전에 로컬 컴퓨터에 만족 해야하는 요구 사항이 항상 있습니다. 이 기사에서는 사용할 것입니다 하위 맨 컨테이너 툴링. 가장 좋은 것은이 툴링의 최신 버전을 설치하는 것이지만 최소한 Podman CLI 툴링이 필요합니다.

이 기사를 읽기 전에 로컬 컴퓨터에 설치할 수 있다고 가정합니다. 이를 테스트하려면 컴퓨터의 터미널 콘솔에서 다음을 실행할 수 있습니다.

$ podman -v

podman version 5.4.1

원하는 경우 Podman 데스크탑 프로젝트를 설치할 수 있으며이 기사의 나머지 부분에 사용되는 모든 필요한 CLI 툴링을 제공합니다. 데스크탑 버전에 초점을 맞추는 데 시간을 보내지 않을 것입니다. 또한 Docker를 사용하려면 자유롭게 느끼십시오. 여기에서 볼 수있는 것과 명령과 사용이 매우 비슷하지만이 기사에서 해당 툴링을 언급하지는 않습니다.

마지막으로,이 기사의 모든 예는 OSX에서 수행되었으며 독자가 여기에 표시된 작업을 자신의 로컬 컴퓨터로 변환 할 수 있다고 가정합니다.

설치 및 구성 방법

컨테이너 이미지가있는 유창한 비트의 첫 번째 설치는 제공된 프로젝트 이미지를 사용하여 수행 할 수 있습니다. Podman Virtual Machine이 실행되고 있는지 확인하기 만하면됩니다. 다음은 Podman 기계를 이미 초기화했다고 가정하므로 다음과 같이 시작할 수 있습니다.

$ podman machine start

Starting machine "podman-machine-default"
WARN[0000] podman helper is installed, but was not able to claim the global docker sock

[SNIPPED OUTPUT]

Another process was listening on the default Docker API socket address.
You can still connect Docker API clients by setting DOCKER_HOST using the
following command in your terminal session:

export DOCKER_HOST='unix:///var/folders/6t/podman/podman-machine-default-api.sock'

Machine "podman-machine-default" started successfully

이와 같은 것이 보이면 API 소켓에 연결하는 데 문제가 있으므로 Podman 은이 콘솔 세션에서 작동 할 변수를 제공합니다. 해당 내보내기 라인을 콘솔에 복사하고 다음과 같이 실행하면됩니다.

$ export DOCKER_HOST='unix:///var/folders/6t/podman/podman-machine-default-api.sock'

Podman이 준비되었으므로 다음과 같이 기본 유창한 비트 이미지를 실행할 수 있습니다.

$ podman run --rm --name fb -ti ghcr.io/fluent/fluent-bit:4.0.0

Trying to pull ghcr.io/fluent/fluent-bit:4.0.0...
Getting image source signatures
Copying blob sha256:3214acf345c0cc6bbdb56b698a41ccdefc624a09d6beb0d5de0b2303ecaf4
Copying blob sha256:bfb59b82a9b65e47d485e53b3e815bca3b3e21a095bd0cb88cac0b48062bf
Copying blob sha256:64b0d9c5f622d82dc411b0b08804023da4c4c437afcf504e1e7b9bdf8feef
Copying blob sha256:d893cdd2a6b41e0426be831dafebe1762c2380d259a2019cc12e70ee3986d
Copying config sha256:5b81ae8b810fd48abbb1115cef77dd93a3f532e3ff34f1e3466da9ceee7
Writing manifest to image destination
...

명령이 여기에서 수행하는 것은 일부 실행 플래그가 포함됩니다. 첫 번째는 컨테이너를 정지 한 후 자동으로 컨테이너를 제거하는 플래그입니다.--rm). 두 번째는 컨테이너에 우리가 참조 할 수있는 이름을줍니다 (--name fb). 세 번째 플래그는 출력을 위해 콘솔에 할당하고 대화식을 유지합니다 (-ti). 마지막 인기는이 워크숍에서 지원되는 이미지 버전입니다 (ghcr.io/fluent/fluent-bit:4.0.0).

명령을 실행 한 후 Podman이 레지스트리에 유창한 비트 4.0.0 이미지를 다운로드하는 것을 볼 수 있습니다. 이 버전을 처음 사용할 때만 발생합니다. 아래에서 다운로드가 성공하면 이미지가 시작됩니다.

...
Fluent Bit v4.0.0
* Copyright (C) 2015-2025 The Fluent Bit Authors
* Fluent Bit is a CNCF sub-project under the umbrella of Fluentd
* 

______ _                  _    ______ _ _             ___  _____
|  ___| |                | |   | ___ (_) "  _  |
| |_  | |_   _  ___ _ __ | |_  | |_/ /_| |_  __   __/ /| || " |
|  _| | | | | |/ _ \ '_ \| __| | ___ \ | __| \ \ / / /_| |" |
| |   | | |_| |  __/ | | | |_  | |_/ / | |_   \ V /\___  |\ |_/ /
\_|   |_|\__,_|\___|_| |_|\__| \____/|_|\__|   \_/     |_(_)___/


[2025/04/16 15:33:07] [ info] [fluent bit] version=4.0.0, commit=712b48d7c3, pid=1
[2025/04/16 15:33:07] [ info] [storage] ver=1.5.2, type=memory, sync=normal, checksum=off, max_chunks_up=128
[2025/04/16 15:33:07] [ info] [simd    ] disabled
[2025/04/16 15:33:07] [ info] [cmetrics] version=0.9.9
[2025/04/16 15:33:07] [ info] [ctraces ] version=0.6.2
[2025/04/16 15:33:07] [ info] [input:cpu:cpu.0] initializing
[2025/04/16 15:33:07] [ info] [input:cpu:cpu.0] storage_strategy='memory' (memory only)
[2025/04/16 15:33:07] [ info] [sp] stream processor started
[2025/04/16 15:33:07] [ info] [output:stdout:stdout.0] worker #0 started
[0] cpu.local: [[1744817588.253689543, {}], {"cpu_p"=>0.142857, "user_p"=>0.000000, "system_p"=>0.142857, "cpu0.p_cpu"=>0.000000, "cpu0.p_user"=>0.000000, "cpu0.p_system"=>0.000000, "cpu1.p_cpu"=>0.000000, "cpu1.p_user"=>0.000000, "cpu1.p_system"=>0.000000, "cpu2.p_cpu"=>0.000000, "cpu2.p_user"=>0.000000, "cpu2.p_system"=>0.000000, "cpu3.p_cpu"=>0.000000, "cpu3.p_user"=>0.000000, "cpu3.p_system"=>0.000000, "cpu4.p_cpu"=>0.000000, "cpu4.p_user"=>0.000000, "cpu4.p_system"=>0.000000, "cpu5.p_cpu"=>0.000000, "cpu5.p_user"=>0.000000, "cpu5.p_system"=>0.000000, "cpu6.p_cpu"=>0.000000, "cpu6.p_user"=>0.000000, "cpu6.p_system"=>0.000000}]
...

유창한 비트 4.0.0 이미지가 실행 중이며 기본적으로 구성 파일을 제공하지 않으면 CPU 정보를 콘솔 인 표준 출력에 대한 로그 라인으로보고합니다. 이것은 당신에게 그다지 유용하지는 않지만, 컨테이너 이미지에서 유창한 비트를 실행하는 것은 처음입니다.

구성을 추가하는 방법

주의를 기울이면 컨테이너 이미지를 실행하는 방식으로 인해 유창한 비트 인스턴스의 구성에 대한 통찰력이나 액세스가 가능하지 않음을 알 수 있습니다. 이 다음 섹션에서는 기본 유창한 비트 YAML 기반 구성 파일과 구성으로 관리 할 수있는 컨테이너 이미지를 빌드하는 방법을 안내합니다.

기본 구성에는 다음 섹션의 최소 요구 사항이 있습니다.

service:
  flush: 1
  log_level: info

pipeline:

  inputs:    
    # This entry generates a test INFO log level message.
    - name:  dummy
      dummy: '{"message":"An INFO message", "level":"INFO", "color": "yellow"}'
  
  outputs:    
    # This sends all messages to the console.
    - name: stdout
      match: '*'

기본 구조에는 a 서비스 유창한 비트 기능을 설정하는 섹션과 관로 섹션, 적어도 입력 그리고 산출 원격 측정 데이터를 처리하기위한 섹션. 위 구성 파일에서 서비스 섹션은 1 나노초의 플러시 시간과 레벨 정보에서 로그를 사용합니다. 그만큼 관로 섹션을 사용합니다 더미 입력 플러그인으로 정의하는 로그 라인을 생성하려면이 경우 간단한 메시지입니다. 그만큼 산출 플러그인은 일반적으로 사용됩니다 stdout; 그것 모든 메시지를 콘솔로 보냅니다.

새 구성 파일을 사용하는 컨테이너 이미지를 얻으려면 이름을 지정하십시오. config.yaml. 호출 된 새 파일을 만듭니다 빌드 파일 구성 파일을 사용하여 유창한 비트 컨테이너 이미지를 빌드하는 방법을 다음과 같이 정의하십시오.

FROM ghcr.io/fluent/fluent-bit:4.0.0

COPY ./config.yaml /fluent-bit/etc/config.yaml

CMD [ "fluent-bit", "-c", "/fluent-bit/etc/config.yaml"]

빌드가 기본 이미지를 사용하고 제공하는 구성 파일 사용에 대한 지침을 추가한다는 것을 알 수 있습니다. 다음과 같이 컨테이너 이미지를 작성하십시오.

$ podman build -t fb-myimage:v1 -f Buildfile

STEP 1/3: FROM ghcr.io/fluent/fluent-bit:4.0.0
STEP 2/3: COPY ./config.yaml /fluent-bit/etc/config.yaml
--> 0169d1e2220a
STEP 3/3: CMD [ "fluent-bit", "-c", "/fluent-bit/etc/config.yaml"]
COMMIT fb-myimage:v1
--> d42a72c9dead
Successfully tagged localhost/fb-myimage:v1
d42a72c9deadc44cead0606a4e80535234ee560486c642aa31f6c081ab7d86a0

이 출력은 유창한 비트 버전 4.0.0 이미지가 이름으로 이미지를 작성하는 데 사용되고 있음을 보여줍니다. FB-Myimage : v1 로컬 컨테이너 이미지 레지스트리에 추가합니다. 다음 명령을 실행하여 테스트 할 수 있습니다.

$ podman run --rm --name fb fb-myimage:v1

Fluent Bit v4.0.0
* Copyright (C) 2015-2025 The Fluent Bit Authors
* Fluent Bit is a CNCF sub-project under the umbrella of Fluentd
* 

______ _                  _    ______ _ _             ___  _____
|  ___| |                | |   | ___ (_) "  _  |
| |_  | |_   _  ___ _ __ | |_  | |_/ /_| |_  __   __/ /| || " |
|  _| | | | | |/ _ \ '_ \| __| | ___ \ | __| \ \ / / /_| |" |
| |   | | |_| |  __/ | | | |_  | |_/ / | |_   \ V /\___  |\ |_/ /
\_|   |_|\__,_|\___|_| |_|\__| \____/|_|\__|   \_/     |_(_)___/


[2025/04/17 15:13:28] [ info] [fluent bit] version=4.0.0, commit=712b48d7c3, pid=1
[2025/04/17 15:13:28] [ info] [storage] ver=1.5.2, type=memory, sync=normal, checksum=off, max_chunks_up=128
[2025/04/17 15:13:28] [ info] [simd    ] disabled
[2025/04/17 15:13:28] [ info] [cmetrics] version=0.9.9
[2025/04/17 15:13:28] [ info] [ctraces ] version=0.6.2
[2025/04/17 15:13:28] [ info] [input:dummy:dummy.0] initializing
[2025/04/17 15:13:28] [ info] [input:dummy:dummy.0] storage_strategy='memory' (memory only)
[2025/04/17 15:13:28] [ info] [sp] stream processor started
[2025/04/17 15:13:28] [ info] [output:stdout:stdout.0] worker #0 started
[0] dummy.0: [[1744902809.224032041, {}], {"message"=>"An INFO message", "level"=>"INFO", "color"=>"yellow"}]
[0] dummy.0: [[1744902810.224307497, {}], {"message"=>"An INFO message", "level"=>"INFO", "color"=>"yellow"}]
...

제공된 컨테이너 이미지에서 유창한 비트를 실행하지 않았으며 선택한 구성 파일로 자신의 이미지를 작성, 빌드 및 실행하는 방법을 배웠습니다.

시리즈에서 더

이 기사에서는 컨테이너 이미지를 사용하여 유창한 비트를 실행하고 구성하는 방법을 배웠고 작동했는지 확인하고 프로세스를 단계별로 걸었습니다. 이 기사는 컨테이너 이미지를 사용하여 유창한 비트를 설치하는 방법을 보여주는 실험실이있는 온라인 무료 워크숍을 기반으로합니다.

이 시리즈에는 야생에서 유창한 비트 사용을 구성, 실행, 관리 및 마스터하는 방법을 계속 배우면서 더 많은 것이있을 것입니다. 다음으로 Kubernetes 클러스터에 유창한 비트를 설치합니다.

출처 참조

Post Comment

당신은 놓쳤을 수도 있습니다