# 入力プラグイン tail の設定 | |
# https://docs.fluentbit.io/manual/pipeline/inputs/tail | |
# Path: 対象ログファイルのフルパス | |
# Path_Key: ログファイルのパスを指定した属性名で付与します。ここでは New Relic の logs 属性の標準に合わせてキャメルケースを使用しています。 | |
# Key: ログが解析されなかった場合、デフォルトの 'log' 属性を New Relic の logs 属性の標準に合わせて 'message' に変更します。 | |
[INPUT] | |
Name tail | |
Path /var/log/httpd/access_log | |
Path_Key filePath | |
Key message | |
Tag httpd.access | |
# フィルタープラグインの設定 | |
# https://docs.fluentbit.io/manual/pipeline/filters/parser | |
# Match: 付与されたタグが一致するエントリに処理を適用します。 | |
# Parser: parsers_file 内で定義される Parser 名と一致させます。 | |
# Key_Name: Parser に読み込ませる属性です。 | |
# Preserve_Key: Parser で処理済みの message フィールドを削除しないようにします。 | |
# Reserve_Data: [INPUT]で付与したタグを保持します。 | |
[FILTER] | |
Name parser | |
Match httpd.access | |
Parser httpd_access_timestamp | |
Key_Name message | |
Preserve_Key On | |
Reserve_Data On |
# Parser 設定 | |
# https://docs.fluentbit.io/manual/pipeline/parsers/configuring-parser | |
# Regex: 正規表現を用いてマッチ条件を記述します。ここで名前付きグループとしてキャプチャされた値は New Relic 上でも属性として保持されます。 | |
# ここでは Apache の Common Log Format を解析する例を記載しています。 | |
# Time_Key: どのフィールドをタイムスタンプとして扱うかを指定します。 | |
# Time_Format: Time_Key で指定したフィールドを解析するための時刻フォーマットを指定します。 | |
[PARSER] | |
Name httpd_access_timestamp | |
Format regex | |
Regex ^(?<host>\S+) \S+ (?<user>\S+) \[(?<time>[^\]]+)\] "(?<method>\S+) +(?<path>.+?) (\S+)?" (?<code>\d{3}) | |
Time_Key time | |
Time_Format %d/%b/%Y:%H:%M:%S %z |
# /etc/newrelic-infra/logging.d/fluentbit.yml (拡張子が.ymlであればファイル名は任意です) | |
# config_file および parsers_file の配置先パスは任意です。 | |
logs: | |
- name: fluentbit-external-config | |
fluentbit: | |
config_file: /etc/newrelic-infra/logging.d/fluentbit-config.conf | |
parsers_file: /etc/newrelic-infra/logging.d/fluentbit-parsers.conf |