fluentbitでtail inputプラグインでファイルの転送履歴を管理。障害復旧後でもログの損失を防ぐ方法。

目次

Tailプラグインと転送履歴の保持

  • fluentbitのtail inputプラグインはtail -f のように新しい行が追記されるごとにレコードを追加する機能です。
  • このプラグインはSQLiteでログをどこまで転送したかの履歴をオフセットして持つことができます。
  • どこまでログを転送していたか管理しておくことで障害復旧後に過不足なく対象ログを再転送することができます。

転送履歴の設定手順

設定手順はfluentbitの設定ファイルに以下を追記します。

[INPUT]
    Path /var/log/messages
    Tag messages
    Name tail
    DB /var/log/logs.db ★

上記の★のようにDBセクションとSQLiteファイルのパスを追記します。

設定ファイルを修正後にfluentbitを再起動すればOKです。

補足です、~/.sqliterc を以下に設定しておくことでSQLiteが見やすくなります。

.headers on
.mode column
.width 5 32 12 12 10

SQLiteに接続してオフセットを確認してみます。

# sqlite3 /var/log/logs.db
-- Loading resources from /root/.sqliterc
 
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select * from in_tail_files;
id     name                              offset        inode         created     rotated
-----  --------------------------------  ------------  ------------  ----------  ----------
1      /var/log/messages                 223265        12591962      1644380341  0
sqlite>
  • システム開発、アプリ開発
  • マッチングアプリ開発
  • インフラ構築支援等、なんでもご相談ください。
よかったらシェアしてね!
  • URLをコピーしました!
目次