Fluentd のインストール
td-agent
をインストールするか、または Ruby gem(pip に似ている)で fluentd という gem をインストールします。
td-agent は Fluentd の配布パッケージです。Fluentd gem 以外、fluent-plugin-s3
などのいくつかのプラグインもあらかじめインストールされています。
Python アプリから Fluentd にログを送信するには、fluent-logger-python
ライブラリをインストールします。
$ pip install fluent-logger
Fluentd 側の設定
Fluentd の設定ファイル /etc/td-agent/td-agent.conf
を編集します。
- source ディレクティブ:入力ソースを指定します
- match ディレクティブ:出力先を指定します
入力ソースは in_forward
プラグインを指定し、TCP ソケットをリッスンして Python のログイベントを受信します。
出力先は out_s3
プラグインを利用して、ログをS3に集約します。
tag
が webapi.*
パターンに一致するタグが出力対象となります。
Pythonアプリ側の設定
fluent-logger-python は FluentHandler というロギングハンドラーを提供しています。
以下は YAML で記述された logging 設定ファイルの例です。
以上の設定を読み込んで logging.config.dictConfig()
に渡します。