この記事では
前回の記事、Fluent-Bitのストレージ設定と挙動(SERVICEセクション)に引き続き、INPUTセクション内でメモリリソース使用量を制限するための方法について記します。
ここでのINPUTはtailプラグインによるログファイルの読み取りを前提とします。
INPUTセクションのstorage.type
例えばアプリケーションログをワイルドカード指定し、複数ファイルを読み取る設定を行います。
[INPUT]
Name tail
Path /application/log/*.log
storage.type filesystem
storage.typeにfilesystemを指定してますが、何も指定をしないデフォルトだとメモリ上にバッファ領域を作成するmemoryとなります。
storage.typeをfilesystemにすることで、メモリ上ではなくファイルシステム上にバッファ領域を作成して複数のログファイルを読み込んでもメモリリソースの消費を抑えることに繋がります。
メモリ使用量に厳しい制限があるコンテナ環境で動作させる場合に、ディスクI/Oが多少増えてもメモリ使用量を抑えたいといったケースに向いていると思います。
おわりに
特にスタックトレースのように何十行も出力されたものを一つのログとしてまとめるマルチライン処理をINPUTセクションで行う場合にはリソース消費量の急騰が予想されますので特に気を付けておきたいポイントです。
以上です。