Fluent Bitからのログのアップロード

本ページは機械翻訳をもとに提供しています。正確かつ最新の情報は英語版の内容をご参照ください。

Fluent Bitは、Linux、Windows、コンテナー向けの軽量なログプロセッサーおよびフォワーダーです。Site24x7出力プラグインを使用すると、Fluent Bitがすでに収集しているアプリケーションログ、コンテナログ、syslog、その他のサポート対象ソースなど、あらゆるデータをSite24x7ログ管理に直接送信できます。

環境にログ収集のためにFluent Bitがすでに導入されている場合、既存のFluent Bit設定にSite24x7出力プラグインを追加することでSite24x7と連携できます。これにより、追加のログ転送エージェントをインストールする必要がなくなります。

ログのパースはSite24x7で設定されたログタイプを通じて管理されるため、Fluent Bit内でパースルールを作成・維持する必要はありません。

目次

ユースケース

あるチームが、コンテナログを収集するためにKubernetesクラスター全体でFluent BitをDaemonSetとして実行しているとします。監視ツール専用に別のログシッパーをデプロイする代わりに、すでに各ノードで実行されている同じFluent BitパイプラインにSite24x7出力プラグインを追加します。収集されたログは数分以内にAppLogsで利用可能になり、追加のインフラやアプリケーションレベルの変更は不要です。

Fluent Bitのメリット

Fluent Bitは、ログの取り込みにおいて以下のメリットがあります:

  • 追加のシッパー不要:Site24x7と連携し、別のエージェントをインストール・維持することなく、既存のFluent Bit環境を使用できます。
  • 複数のログ形式:JSON、プレーンテキスト、複数行ログ(スタックトレースを含む)を転送できます。
  • ログパースの一元管理:Fluent Bitでパーサーを設定する代わりに、Site24x7のログタイプでパースルールを定義・管理できます。
  • 組み込みのデータ保護:ログがSite24x7に取り込まれる前に、ログプロファイルで設定されたマスキング、ハッシュ化、フィルターのルールを適用します。
  • 信頼性の高いログ配信:Fluent Bitは失敗したアップロードを自動的に再試行し、ログが確実に配信されるようにします。

前提条件

始める前に、以下を確認してください:

  1. AppLogsが有効化されたSite24x7アカウント。
  2. Fluent Bit 1.9以降がインストール済みで、Site24x7出力プラグインをサポートして実行されていること。他のプラットフォームでソースからプラグインをビルドする方法については、こちらを参照してください。

Fluent Bitでのログ収集

Fluent Bitでのログ収集には、以下の手順が含まれます:

  1. Fluent Bitの入力(tailなど)が、アプリケーションやサービスからログ行を読み取ります。
  2. fluent-bit-plugin-site24x7リポジトリからダウンロードしたSite24x7出力プラグインが、Site24x7で設定されたログタイプに従って各レコードをパースします。Fluent Bit自体で正規表現やパーサーの設定は不要です。
  3. プラグインはイベントをバッチ処理し、圧縮してSite24x7 AppLogsのエンドポイントにアップロードします。

ログプロファイルの作成

ログプロファイルを作成するには、以下の手順に従います:

  1. Site24x7アカウントにログインします。
  2. [管理]→[AppLogs]→[ログプロファイル]→[ログプロファイルの追加]に移動し、以下の詳細を入力します。
    1. プロファイル名:ログプロファイルの名前を入力します。
    2. ログタイプ:アプリケーションのログフィールドに一致する既存のログタイプを選択するか、ログ行のサンプルを使用してカスタムログタイプを作成します。JSONログとプレーンテキストログの両方がサポートされています。
    3. ログソース:ドロップダウンメニューから[ログコレクター]を選択します。
    4. ログタイムゾーン:ドロップダウンメニューからログのタイムゾーンを選択します。
  3. [保存]をクリックします。

保存したプロファイルを開き、画面に表示されるlogTypeConfigの値をコピーします。この単一の文字列には、アップロードエンドポイント、ログタイプ、パースルール、日付形式など、プラグインが必要とするすべての情報が含まれています。

Site24x7出力プラグインのインストール

Site24x7プラグインをインストールするには、まずお使いのプラットフォーム用のプラグインをリリースページからダウンロードする必要があります:

  • Linux x86_64の場合:out_site24x7-linux-amd64.so
  • Linux ARM64の場合:out_site24x7-linux-arm64.so
  • Windows x86_64の場合:out_site24x7-windows-amd64.dll

Linux

sudo mkdir -p /usr/lib/fluent-bit/plugins 
sudo cp out_site24x7-linux-amd64.so /usr/lib/fluent-bit/plugins/out_site24x7.so

Windows(PowerShell)

Copy-Item out_site24x7-windows-amd64.dll 'C:\fluent-bit\plugins\out_site24x7.dll'

コンテナーとKubernetes(Dockerfile)

公式イメージを1行で拡張します

FROM fluent/fluent-bit:3.1
COPY out_site24x7-linux-amd64.so /fluent-bit/lib/out_site24x7.so

次に、Fluent Bitのplugins.confにプラグインを登録します:

[PLUGINS]
    Path /usr/lib/fluent-bit/plugins/out_site24x7.so

または、起動時に以下のように渡します:

fluent-bit -e /usr/lib/fluent-bit/plugins/out_site24x7.so ...

Fluent Bitの設定

fluent-bit.confファイルを入力およびSite24x7出力設定で更新します。

[INPUT]
    Name    tail
    Path    /var/log/app/*.log
    Tag     app.*
[OUTPUT]
    Name             site24x7
    Match            *
    log_type_config  ##ログプロファイルからコピーしたlogtypeconfig
    Retry_Limit False

Fluent Bitを再起動します。数分以内にログがSite24x7 AppLogsに表示され、設定したログタイプを使用して検索できるようになります。

出力セクションは、以下のパラメーターで構成されます:

パラメーター 必須 デフォルト 説明
log_type_config はい – ログプロファイルからコピーした設定文字列。
http_proxy いいえ HTTP_PROXY/HTTPS_PROXYに従います プロキシURL(例:http://user:pass@proxy:8080)。
http_read_timeout いいえ 30 アップロードリクエストのタイムアウト(秒)。
skip_ssl_verify いいえ True TLS証明書の検証を強制するにはfalseに設定します。

Fluent Bitは、一時的な問題によって失敗したアップロードを再試行します。標準のRetry_Limitオプションを使用して再試行動作を設定します。ログが正常に配信されるまで再試行するには、これを[False]に設定します。

ログパースの仕組み

Site24x7出力プラグインは、ログタイプで定義されたパースルールを使用するため、Fluent Bitでのパース設定は不要です:

  • JSONログ:ネストされたフィールドを含む、ログタイプのフィールドパスを使用してマッピングされます。
  • プレーンテキストログ:ログタイプのパターンでパースされます。新しいエントリーで始まらない行(スタックトレース行など)は、自動的に前のイベントのメッセージに追加されます。
  • プラグインは、ログタイプで設定されたログタイムスタンプフィールドを使用します。タイムスタンプフィールドが設定されていない場合は、ログ収集時間が使用されます。
  • フィールドのマスキング、ハッシュ化(SHA-256)、派生フィールド、フィルターなど、ログタイプで設定されたデータ処理は、アップロード前にプラグインによって適用されるため、除外されたイベントがサーバーから送信されることはありません。

1つのFluent Bitで複数のログタイプを収集する方法

異なるログファイルを異なるログタイプに転送するには、ログプロファイルごとに個別の[OUTPUT]セクションを設定し、ルーティングにタグを使用します:

[INPUT]
    Name  tail
    Path  /var/log/app/api.log
    Tag   api
[INPUT]
    Name  tail
    Path  /var/log/app/payments.log
    Tag   payments[OUTPUT]
    Name             site24x7
    Match            api
    log_type_config  ##APIログプロファイルのlogtypeconfig
[OUTPUT]
    Name             site24x7
    Match            payments
    log_type_config  ##paymentsログプロファイルのlogtypeconfig 

よくある質問(FAQ)

  1. プラグインのアクティビティを表示する方法は?
    詳細ログを出力するには、-vオプションを付けてFluent Bitを実行します。すべてのプラグインメッセージには[out_site24x7]というプレフィックスが付きます。アップロードが成功すると、uploaded N events ... Upload Id: というログが出力されます。

  2. Fluent Bitで「tried to instance a plugin name that doesn't exist」と表示されるのはなぜですか?
    これは通常、共有ライブラリがロードされていないことを意味します。plugins.confの[PLUGINS]パスを確認するか、起動時に-eフラグを渡したかを確認してください。

  3. プラグインのロード時に「cannot open shared object file」で失敗するのはなぜですか?
    これは、プラグインのバイナリがプラットフォームと一致しない場合に発生することがあります(例:ARM64ホスト上でamd64ビルドを使用)。リリースページから、お使いのプラットフォームに適したアーティファクトをダウンロードしてください。

  4. ログライセンス制限または最大アップロード制限エラーでアップロードが停止したのはなぜですか?
    これは、アカウントのログライセンスまたはログタイプのアップロード上限に達したことを意味します。アップロードは10分間一時停止し、自動的に再開されます。

  5. Fluent Bitプラグインが「Invalid log type」、「invalid account」、「API upload not enabled」といったエラーを返すのはなぜですか?
    これは通常、log_type_configの値が、コピー元のアカウントまたはデータセンターと一致しないことを意味します。ログプロファイルから再度コピーし、Fluent Bitを再起動してください。

  6. Site24x7でのログの取り込みを確認する方法は?
    [AppLogs]→[AppLogs検索]に移動し、ログタイプを検索します。選択したログタイプに関連するログが検索結果に表示されます。詳細はこちら。

  7. これらのいずれでも問題が解決しない場合は?
    設定後も問題が解決しない場合は、Fluent Bitのログを添えてサポートまでお問い合わせください。

関連ドキュメント