ページの先頭行へ戻る
Enterprise Postgres 17 オペレーターユーザーズガイド

E.1.1 fluent-bit.yaml テンプレートのサンプル

fluent-bit.yaml

---
env:
  flush_interval: 5                  # ログを出力にフラッシュする間隔 (秒)
  tail_path: /databaselogs/*.csv      # アプリケーションログのファイルパスパターン (CSV形式)
  audit_tail_path: /databaselogs/audit/*.log   # 監査ログのファイルパスパターン
  tail_db_path: /databaselogs/postgreslog.db   # アプリケーションログのDB追跡ログ読込位置のパス
  audit_tail_db_path: /databaselogs/auditlog.db  # 監査ログのDB追跡ログ読込位置のパス
  skip_long_lines: on                 # バッファ制限より長い行をスキップ
  refresh_interval: 60                # ログファイルを更新してチェックする間隔 (秒)
  read_from_head: true                # ファイルの先頭からログの読み取りを開始
  multiline: on                       # 複数行ログエントリの処理を有効にする
  parser_firstline: firstline_app_parser    # アプリケーションログの複数行読込を開始するためのパーサー
  parser_audit_firstline: firstline_audit_parser  # 監査ログの複数行読込を開始するためのパーサー
  rotate_wait: 20                     # ログファイルのローテーションが完了するまでの待機時間
  storage_type: memory                # ログに使用されるストレージのタイプ

service:
  flush: ${flush_interval}            # flush_interval変数を使用してフラッシュ間隔を設定
  daemon: off                         # Fluent Bitをフォアグラウンドで実行
  log_level: info                     # ログの冗長性をinfoレベルに設定
  parsers_file: parsers.conf          # カスタムパーサーを含むファイルを指定
  http_server: On                  # メトリックおよびヘルスチェック用の組み込みHTTPサーバを有効
  http_listen: 0.0.0.0         #すべてのネットワークインタフェースでListenするようHTTPサーバを設定
  http_port: 2020                     #HTTPサーバのポートを設定
  hot_reload: On                      # 再起動せずに構成のホット・リロードを有効にする

pipeline:
  inputs:
    - name: tail                      # ログファイルの監視と読み取りにtailプラグインを使用
      db: ${tail_db_path}             # ログファイルの読込位置を追跡するデータベースファイル
      tag: app-*                     # 後でフィルタ/ルーティングするためログに’app-*’タグを付与
      path: ${tail_path}              # 変数を使用したログファイルへのパス
      Skip_Long_Lines: ${skip_long_lines}  # バッファが処理できる長さ以上の行をスキップ
      Refresh_Interval: ${refresh_interval}  # 監視対象のファイルのリストを更新する間隔
      Read_from_head: ${read_from_head}  # ファイルの先頭からログを読込
      Multiline: ${multiline}          # 複数行ログ読込のサポートを有効にする
      Parser_Firstline: ${parser_firstline}  # 複数行ログの開始を識別するためのパーサー
      rotate_wait: ${rotate_wait}      # ログファイルのローテーション完了を監視する追加時間

  filters:
    - name: parser                    # `app-*` タグに一致するログにパーサーを適用
      match: app-*                    # `app-*` でタグ付けされたログのみを処理
      key_name: log                   # 解析するログメッセージを含むキーを指定する
      parser: app_parser              # ログメッセージに使用するパーサー
    - name: rewrite_tag               # 再出力のログタグを修正する
      match: app-*                    # `app-*`でタグ付けされたログにマッチする
      rule: '$log_time "[^,]+"  appcsv-.$TAG[1].$TAG[2].$TAG[3].$TAG[4] false'  # タグ名変更規則
      emitter_name: re_emitted_appcsv # ログを再出力するエミッタの名前
      emitter_storage.type: ${storage_type}  # 再出力されたログのストレージタイプ。`storage_type` 変数を使用する

  outputs:
    - name: azure_blob                # Azure Blob Storage出力プラグインの名前
      match: "*"                      # Azure Blob Storageに出力するすべてのログを照合する
      account_name: <azure_storage_account>      # Azure Storageアカウント名
      shared_key: <shared_key>     # Azureとの認証用の共有キー
      path: < multiline_parser>         # ログが格納されるAzure Blob Strage内のパス
      container_name: <fluentbit-aug28>  # Azure Blob Storage内のコンテナ名
      auto_create_container: on       # コンテナが存在しない場合に自動的に作成する
      tls: on                         # 安全な通信のためにTLS暗号化を有効化する
      net.dns.resolver: legacy        # レガシーDNSリゾルバを使用

   - name: es                          # Elasticsearch 出力プラグインの名前
     match: "*"                        # この出力プラグインにすべてのログを照合する
     host: <Elasticsearch_Host>        # Elasticsearchサーバのホスト名またはIPアドレス
     port: <Elasticsearch_Port>        # Elasticsearchが実行されているポート番号 (通常は9200)
     index: <fluentbit>               # Elasticsearchでログが格納されるインデックスの名前
     type: _doc                    # Elasticsearchのドキュメントタイプ。_docはES 7.x以降で推奨されるタイプ
     http_user: <HTTP_User>            # ElasticsearchにアクセスするためHTTPのBasic認証のユーザ名
     http_passwd: <HTTP_Password>      # HTTPのBasic認証のパスワード
     tls: On                         # Elasticsearchとの安全な通信のためにTLSを有効にする
     tls.verify: Off  # ElasticsearchサーバのTLS証明の検証を無効にする(運用環境では無効にすることは推奨されません)
     Suppress_Type_Name: On  #  '_type'フィールドをドキュメントに追加しないようにする

# 注:この統合については、“E.3 Prometheus exporterと連携するためのFluent Bit設定”を参照してください
    - name : prometheus_exporter  #prometheus exporterの出力プラグイン名
       match: "*"  # すべてのログに適用
       host: 0.0.0.0  # すべてのネットワークインタフェースをListenします
       port: 24231  # ログ受信ポート
       metrics_path: /metrics  # メトリック公開のエンドポイント

    - name: stdout                    # ログを標準出力する
      match: "*"                      # すべてのログを照合する

参照

Fluent Bitの設定については、以下を参照してください。

https://docs.fluentbit.io/manual