Fluent-Bit: 高速で軽量なログ転送プログラム


S3にアップロードしたJSONが破損する

現象:

原因?


prometheusで値を取得


garafana

grafana var:

dashbord:

# fluent-bitのendpoint総数
count(up{job="fluent-bit",site="$site"})

# 有効なfluent-bitのendpoint数
count(fluentbit_uptime{site="$site"})

# Input Bytes Processing Rate
code: sum(rate(fluentbit_input_bytes_total{site="$site", instance_name=~"$instance_name"}[5m])) by (instance_name, name)
legend: {{ instance_name }}/{{name}}

負荷テスト


AWS S3へ保存

複数の方法がある。

記事:


使用可能な変数


OUTPUT


kinesis_firehose:


INPUT

記事:


tail


指定ログファイルの1行の最大byteを調べる


Multiline.Parser: 複数行のログ用

  1. parsers.conf に [MULTILINE_PARSER] を定義する。
    • 複数行を認識するためだけの正規表現。
  2. parsers.conf に [PARSER] を定義する。
    • ここで各カラムを分割する正規表現を定義する。複数行マッチ「/.../m」
  3. [INPUT] の「Multiline.Parser = 」で上記で定義したMULTILINE_PARSERを指定する
  4. [FILTER] の「Parser = 」で上記で定義したPARSERを指定する
    • 「Reserve_Data true」他のfilterの値が保持される。falseだと、別ファイルのfilterの値が消えた。

PARSER


Time_Keep: time項目を保持する


rsyslog形式のログ


time:iso-8601形式のLTSVログ

[PARSER]
    Name        access_log_ltsv_iso_8601
    Format      ltsv
    Time_Key    time
    Time_Format %Y-%m-%dT%H:%M:%S

FILTER

HOSTNAMEを付与する


AWS metadataを付与する


テスト/デバッグ

環境:


yaml形式で設定ファイルを書く

plugin

AWS cloudwatch logs


AWS kinesis firehose

Kubernetes/AWS EKS


CentOS 6向けのビルド

記事:


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-11-29 (水) 14:10:38