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