Fluent Bit 문서/출력/Forward

Jmnote (토론 | 기여)님의 2024년 3월 8일 (금) 15:38 판 (새 문서: ==개요== ;Foward ;포워드 Forward는 Fluentd에서 피어 간에 메시지를 라우팅하는 데 사용하는 프로토콜입니다. '''forward''' 출력 플러그인은 Fl...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요

Foward
포워드

Forward는 Fluentd에서 피어 간에 메시지를 라우팅하는 데 사용하는 프로토콜입니다. forward 출력 플러그인은 Fluent BitFluentd 간의 상호운용성을 제공합니다. Fluentd가 있는 위치(로컬 또는 원격 목적지)를 지정하는 것 외에 필요한 설정 단계는 없습니다.

이 플러그인은 두 가지 전송 및 모드를 제공합니다.

  • Forward (TCP): 플레인 TCP 연결을 사용합니다.
  • Secure Forward (TLS): TLS가 활성화되면, 플러그인이 Secure Forward 모드로 전환됩니다.

2 설정 파라미터

다음 파라미터들은 Forward 또는 Secure Forward 모드에 필수입니다.

설명 기본값
Host Fluent-Bit 또는 Fluentd가 Forward 메시지를 수신하는 대상 호스트입니다. 127.0.0.1
포트 대상 서비스의 TCP 포트입니다. 24224
Time_as_Integer 타임스탬프를 정수 형식으로 설정하면 Fluentd v0.12 계열에 대한 호환성 모드가 활성화됩니다. Fasle
Upstream Forward가 단순 호스트 대신 업스트림에 연결하는 경우 이 속성은 업스트림 구성 파일의 절대 경로를 정의합니다. 이에 대한 자세한 내용은 설명서 섹션을 참조하세요.

​|

Unix_Path 전달 메시지를 보낼 유닉스 소켓의 경로를 지정합니다. 설정된 경우 Upstream무시됩니다.

​|

Tag 전송하는 동안 태그를 덮어씁니다. 이를 통해 수신 파이프라인이 새로 시작되거나 소스 속성을 지정할 수 있습니다.

​|

Send_options 항상 보내기 옵션 ("size"=메시지 개수) False
Require_ack_response "청크" 옵션을 보내고 서버로부터 "ack" 응답을 기다립니다. 최소 한 번 활성화하고 수신 서버가 트래픽 속도를 제어할 수 있습니다. (Fluentd v0.14.0+ 서버 필요) False
Compress gzip 압축을 활성화하려면 "gzip"으로 설정하세요. Time_as_Integer=True 및 Rewrite Tag 필터를 사용하여 동적으로 설정된 태그와 호환되지 않습니다. (Fluentd v0.14.7+ 서버 필요)

​|

Workers 이 출력에 대한 전용 스레드를 활성화합니다. 기본값은 1.8.13 버전부터 설정되어 있습니다. 이전 버전의 경우 0입니다. 2

3 Secure Forward 모드 설정 파라미터

Secure Forward 모드를 사용하는 경우, TLS 모드를 활성화해야 합니다. 다음과 같은 추가 설정 파라미터를 사용할 수 있습니다.

설명 기본값
Shared_Key 인증에 사용되는 원격 Fluentd에 알려진 키 문자열입니다.

​|

Empty_Shared_Key 길이가 0인 비밀을 사용하여 Fluentd에 연결하려면 이 옵션을 사용하세요. False
Username user_auth를 활성화하는 Fluentd 서버에 표시할 사용자 이름을 지정합니다.

​|

Password 사용자 이름에 해당하는 비밀번호를 지정하십시오.

​|

Self_Hostname 자동생성된 인증서 common name (CN)의 기본값 localhost
tls TLS 지원 활성화 또는 비활성화 Off
tls.verify 강제 인증서 검증 On
tls.debug TLS 디버그 상세 수준을 설정합니다. 다음 값을 허용합니다: 0(디버그 없음), 1(오류), 2(상태변경), 3(정보), 4(Verbose) 1
tls.ca_file CA 인증서 파일의 절대 경로

​|

tls.crt_file 인증서 파일의 절대 경로

​|

tls.key_file 개인 키 파일의 절대 경로

​|

tls.key_passwd tls.key_file 파일의 선택적 패스워드

​|

4 Forward 셋업

진행하기 전에, Fluentd가 설치되어 있는지 확인하시고, 설치되지 않은 경우에는 다음의 Fluentd 설치 문서를 참고하여 진행하시기 바랍니다.

Fluentd가 설치되면, 데이터를 스트리밍할 수 있는 다음 설정 파일 예제를 만듭니다.

<source>
  type forward
  bind 0.0.0.0
  port 24224
</source><match fluent_bit>
  type stdout
</match>

이 설정 파일은 forward 입력 유형을 통해 포트 24224에서 TCP 연결을 수신하도록 지정합니다. 그런 다음 fluent_bit TAG가 있는 모든 메시지에 대해 메시지를 표준 출력으로 프린트합니다.

터미널에서 생성된 새 설정 파일을 지정하여 Fluentd를 기동합니다.

$ fluentd -c test.conf
2017-03-23 11:50:43 -0600 [info]: reading config file path="test.conf"
2017-03-23 11:50:43 -0600 [info]: starting fluentd-0.12.33
2017-03-23 11:50:43 -0600 [info]: gem 'fluent-mixin-config-placeholders' version '0.3.1'
2017-03-23 11:50:43 -0600 [info]: gem 'fluent-plugin-docker' version '0.1.0'
2017-03-23 11:50:43 -0600 [info]: gem 'fluent-plugin-elasticsearch' version '1.4.0'
2017-03-23 11:50:43 -0600 [info]: gem 'fluent-plugin-flatten-hash' version '0.2.0'
2017-03-23 11:50:43 -0600 [info]: gem 'fluent-plugin-flowcounter-simple' version '0.0.4'
2017-03-23 11:50:43 -0600 [info]: gem 'fluent-plugin-influxdb' version '0.2.8'
2017-03-23 11:50:43 -0600 [info]: gem 'fluent-plugin-json-in-json' version '0.1.4'
2017-03-23 11:50:43 -0600 [info]: gem 'fluent-plugin-mongo' version '0.7.10'
2017-03-23 11:50:43 -0600 [info]: gem 'fluent-plugin-out-http' version '0.1.3'
2017-03-23 11:50:43 -0600 [info]: gem 'fluent-plugin-parser' version '0.6.0'
2017-03-23 11:50:43 -0600 [info]: gem 'fluent-plugin-record-reformer' version '0.7.0'
2017-03-23 11:50:43 -0600 [info]: gem 'fluent-plugin-rewrite-tag-filter' version '1.5.1'
2017-03-23 11:50:43 -0600 [info]: gem 'fluent-plugin-stdin' version '0.1.1'
2017-03-23 11:50:43 -0600 [info]: gem 'fluent-plugin-td' version '0.10.27'
2017-03-23 11:50:43 -0600 [info]: adding match pattern="fluent_bit" type="stdout"
2017-03-23 11:50:43 -0600 [info]: adding source type="forward"
2017-03-23 11:50:43 -0600 [info]: using configuration file: <ROOT>
  <source>
    type forward
    bind 0.0.0.0
    port 24224
  </source>
  <match fluent_bit>
    type stdout
  </match>
</ROOT>
2017-03-23 11:50:43 -0600 [info]: listening fluent socket on 0.0.0.0:24224

5 Fluent Bit + Forward 셋업

이제 메시지를 수신할 준비가 되었으므로 다음 형식을 사용하여 forward 출력 플러그인이 정보를 플러시할 위치를 지정해야 합니다 .

bin/fluent-bit -i INPUT -o forward://HOST:PORT

TAG 파라미터가 설정되지 않은 경우 플러그인은 태그를 유지합니다. TAGFluentd 내부의 라우팅 규칙에 중요하다는 점을 기억하세요.

CPU 입력 플러그인을 사용하면 fluent_bit 태그를 사용하여 CPU 메트릭을 Fluentd로 플러시합니다 .

$ bin/fluent-bit -i cpu -t fluent_bit -o forward://127.0.0.1:24224

이제 Fluentd 측에서는, 마지막 몇 초 동안 수집된 CPU 메트릭을 볼 수 있습니다.

2017-03-23 11:53:06 -0600 fluent_bit: {"cpu_p":0.0,"user_p":0.0,"system_p":0.0,"cpu0.p_cpu":0.0,"cpu0.p_user":0.0,"cpu0.p_system":0.0,"cpu1.p_cpu":0.0,"cpu1.p_user":0.0,"cpu1.p_system":0.0,"cpu2.p_cpu":0.0,"cpu2.p_user":0.0,"cpu2.p_system":0.0,"cpu3.p_cpu":1.0,"cpu3.p_user":1.0,"cpu3.p_system":0.0}
2017-03-23 11:53:07 -0600 fluent_bit: {"cpu_p":2.25,"user_p":2.0,"system_p":0.25,"cpu0.p_cpu":3.0,"cpu0.p_user":3.0,"cpu0.p_system":0.0,"cpu1.p_cpu":1.0,"cpu1.p_user":1.0,"cpu1.p_system":0.0,"cpu2.p_cpu":1.0,"cpu2.p_user":1.0,"cpu2.p_system":0.0,"cpu3.p_cpu":3.0,"cpu3.p_user":2.0,"cpu3.p_system":1.0}
2017-03-23 11:53:08 -0600 fluent_bit: {"cpu_p":1.75,"user_p":1.0,"system_p":0.75,"cpu0.p_cpu":2.0,"cpu0.p_user":1.0,"cpu0.p_system":1.0,"cpu1.p_cpu":3.0,"cpu1.p_user":1.0,"cpu1.p_system":2.0,"cpu2.p_cpu":3.0,"cpu2.p_user":2.0,"cpu2.p_system":1.0,"cpu3.p_cpu":2.0,"cpu3.p_user":1.0,"cpu3.p_system":1.0}
2017-03-23 11:53:09 -0600 fluent_bit: {"cpu_p":4.75,"user_p":3.5,"system_p":1.25,"cpu0.p_cpu":4.0,"cpu0.p_user":3.0,"cpu0.p_system":1.0,"cpu1.p_cpu":5.0,"cpu1.p_user":4.0,"cpu1.p_system":1.0,"cpu2.p_cpu":3.0,"cpu2.p_user":2.0,"cpu2.p_system":1.0,"cpu3.p_cpu":5.0,"cpu3.p_user":4.0,"cpu3.p_system":1.0}

CPU 메트릭이 수집되여 Fluentd에 적절하게 플러시되었습니다.

6 Fluent Bit + Secure Forward 셋업

면책조항: 다음 예시에서는 프로덕션 환경의 모범 사례에 대한 인증서 생성을 고려하지 않습니다.

Secure Forward는 TLS를 사용하여 원격 Fluentd 서비스와의 통신 보안 채널을 제공하는 것을 목표로 합니다 .

6.1 Fluent Bit

flb.conf라는 파일에 이 내용을 붙여 넣습니다 .

[SERVICE]
    Flush      5
    Daemon     off
    Log_Level  info

[INPUT]
    Name       cpu
    Tag        cpu_usage

[OUTPUT]
    Name          forward
    Match         *
    Host          127.0.0.1
    Port          24284
    Shared_Key    secret
    Self_Hostname flb.local
    tls           on
    tls.verify    off

6.2 Fluentd

fld.conf라는 파일에 이 내용을 붙여 넣습니다 .

<source>
  @type         secure_forward
  self_hostname myserver.local
  shared_key    secret
  secure no
</source><match **>
 @type stdout
</match>

Fluentd v1을 사용하는 경우, 아래와 같이 설정하세요.

<source>
  @type forward
  <transport tls>
    cert_path /etc/td-agent/certs/fluentd.crt
    private_key_path /etc/td-agent/certs/fluentd.key
    private_key_passphrase password
  </transport>
  <security>
    self_hostname myserver.local
    shared_key secret
  </security>
</source>

<match **>
 @type stdout
</match>

6.3 통신 테스트

Fluentd 시작하기

$ fluentd -c fld.conf

Fluent Bit 시작하기

$ fluent-bit -c flb.conf

5초 후에, Fluent Bit는 Fluentd에 레코드를 씁니다. Fluentd 출력에 다음과 같은 메시지가 표시됩니다.

2017-03-23 13:34:40 -0600 [info]: using configuration file: <ROOT>
  <source>
    @type secure_forward
    self_hostname myserver.local
    shared_key xxxxxx
    secure no
  </source>
  <match **>
    @type stdout
  </match>
</ROOT>
2017-03-23 13:34:41 -0600 cpu_usage: {"cpu_p":1.0,"user_p":0.75,"system_p":0.25,"cpu0.p_cpu":1.0,"cpu0.p_user":1.0,"cpu0.p_system":0.0,"cpu1.p_cpu":2.0,"cpu1.p_user":1.0,"cpu1.p_system":1.0,"cpu2.p_cpu":1.0,"cpu2.p_user":1.0,"cpu2.p_system":0.0,"cpu3.p_cpu":2.0,"cpu3.p_user":1.0,"cpu3.p_system":1.0}
2017-03-23 13:34:42 -0600 cpu_usage: {"cpu_p":1.75,"user_p":1.75,"system_p":0.0,"cpu0.p_cpu":3.0,"cpu0.p_user":3.0,"cpu0.p_system":0.0,"cpu1.p_cpu":2.0,"cpu1.p_user":2.0,"cpu1.p_system":0.0,"cpu2.p_cpu":0.0,"cpu2.p_user":0.0,"cpu2.p_system":0.0,"cpu3.p_cpu":1.0,"cpu3.p_user":1.0,"cpu3.p_system":0.0}
2017-03-23 13:34:43 -0600 cpu_usage: {"cpu_p":1.75,"user_p":1.25,"system_p":0.5,"cpu0.p_cpu":3.0,"cpu0.p_user":3.0,"cpu0.p_system":0.0,"cpu1.p_cpu":2.0,"cpu1.p_user":2.0,"cpu1.p_system":0.0,"cpu2.p_cpu":0.0,"cpu2.p_user":0.0,"cpu2.p_system":0.0,"cpu3.p_cpu":1.0,"cpu3.p_user":0.0,"cpu3.p_system":1.0}
2017-03-23 13:34:44 -0600 cpu_usage: {"cpu_p":5.0,"user_p":3.25,"system_p":1.75,"cpu0.p_cpu":4.0,"cpu0.p_user":2.0,"cpu0.p_system":2.0,"cpu1.p_cpu":8.0,"cpu1.p_user":5.0,"cpu1.p_system":3.0,"cpu2.p_cpu":4.0,"cpu2.p_user":3.0,"cpu2.p_system":1.0,"cpu3.p_cpu":4.0,"cpu3.p_user":2.0,"cpu3.p_system":2.0}

7 같이 보기

8 참고

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