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