Fluent Bitを使用してPythonログをOpenSearchに送信する方法

導入

今日のデータ駆動の世界では、効果的なログ管理は、監視とアプリケーションの維持を行うために不可欠です。オープンソースの搜索引擎と分析エンジンであるOpenSearchは、強力なログ集積と分析機能を提供しています。軽量のログ転送器であるFluent Bitと結合して、Pythonのログを実時間で監視や分析するOpenSearchに効率よく送信することができます。このガイドでは、このパワーフルなコンビネーションの設定方法を説明します。

ユースケース

この設定は、Pythonアプリケーションの実時間監視を必要とする開発者やシステム管理者にとって有益です。PythonアプリケーションのログをOpenSearchに送信することで、ログの分析、ダッシュボードの作成、警報の設定を行い、アプリケーションのパフォーマンスと行動についての価値のある洞察を得ることができます。この方法は、小さいプロジェクトから大規模なプロダクション環境に応じてスケーラブルです。

前提条件

開始する前に、以下の前提条件を準備していることを確認してください。

  1. Pythonをインストールしてください: サーバーまたはローカルマシン上にPythonをインストールしていることを確認してください。
  2. OpenSearchクラスター: OpenSearchクラスターにアクセスできることを確認してください。新しいクラスターを作成するか、既存のクラスターを使用することができます。
  3. Fluent Bitをインストールしてください: Pythonアプリケーションが実行されているサーバーまたはマシンにFluent Bitをインストールしていることを確認してください。

手順1 – Pythonのインストール

まず、リポジトリを更新し、Pythonをインストールします。以下のコマンドを実行してください:

sudo apt update
sudo apt install python3

Pythonのインストールを確認するには、以下のコマンドを実行してください:

python3 --version

手順2 – Pythonログの設定

Pythonアプリケーションを設定して、ファイルにメッセージをログ记录します。以下は基本的な設定です:

import logging

# ログ記録を設定する
logging.basicConfig(
    filename='app.log',
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s'
)

# サンプルのログメッセージ
logging.info('This is a test log message.')

この設定は、app.log に時間スタンプ、ログレベル、およびメッセージフォーマットを含んだログメッセージを書き込む。

手順3 – OpenSearch クラスタを作成する

OpenSearch クラスタをお持ちでない場合は、DigitalOceanのコマンドラインツール doctl を使用して作成することができます。以下のコマンドを実行します。

doctl databases create opensearch-doks --engine opensearch --region your-region --size db-s-1vcpu-2gb --num-nodes 1

OpenSearch クラスタをコントロールパネルを使用して作成する方法

手順4 – Fluent Bit をインストールする

Fluent Bit のインストールには、以下のコマンドを使用します。

curl https://raw.githubusercontent.com/fluent/fluent-bit/master/install.sh | sh

手順5 – Fluent Bit の設定を行う

fluent-bit.confという名前の設定ファイルを作成して、Fluent Bitがログを読み取り、OpenSearchに送信する方法を定義してください。以下はサンプル設定です。

[SERVICE]
    Flush         1
    Daemon        Off
    Log_Level     info

[INPUT]
    Name          tail
    Path          /path/to/your/log/file.log
    Tag           python_logs
    Refresh_Interval 5

[OUTPUT]
    Name          opensearch
    Match         python_logs
    Host          your-opensearch-host
    Port          25060
    HTTP_User     your-username
    HTTP_Passwd   your-password
    Index         your-index-name
    tls           On
    Suppress_Type_Name On
  • Path: あなたのapp.logのパスを指定してください。
  • Host: お使いのOpenSearchのホスト名を入力してください。
  • HTTP_User: お使いのOpenSearchのユーザー名を入力してください。
  • HTTP_Passwd: お使いのOpenSearchのパスワードを入力してください。
  • Index: ログを保存するインデックス名を入力してください。

手順 6 – Fluent Bitを実行

以下のように設定ファイルと共にFluent Bitを実行してください。

/opt/fluent-bit/bin/fluent-bit -c fluent-bit.conf

手順 7 – OpenSearchでログを確認

正しくインジェストされていることを確認するには、OpenSearchのダッシュボードを確認してください。Fluent Bitから送信されたログが表示されるはずです。

手順 8 – OpenSearch ダッシュボードでインデックスパターンを作成

  1. OpenSearch Dashboardsには、お使いのアカウントの情報でサインインしてください。
  2. 左側のメニューを開くと、管理の下の索引管理をクリックしてください。
  3. 索引メニューから索引を作成を選択してください。
  4. 索引名を入力し、必要であればその他の設定を調整し、作成をクリックしてください。

結論

これらの手順に従って、PythonログをFluent Bitを使用してOpenSearchに送信するシステムを設定しました。この設定により、効率的にログを管理・分析することができ、アプリケーションの維持と監視を効果的に行うことができます。OpenSearchとFluent Bitを使用することで、実吋のログ分析と監視に适した強力なソリューションを入手し、Pythonベースのアプリケーションのニーズに合わせた定制されたソリューションを入手することができます。

Source:
https://www.digitalocean.com/community/tutorials/send-python-logs-to-opensearch-using-fluentbit