次の方法で共有


Fluentd を使用して Azure Data Explorer にログ データを取り込む

ログ インジェストは、アプリケーション、サーバー、コンテナー、クラウド サービスからログ データを収集、変換、準備し、保存、分析、監視できるようにするプロセスです。 ログには、エラー、警告、使用パターン、システム パフォーマンスなどの情報がキャプチャされます。 信頼性の高いログ インジェストにより、トラブルシューティングと分析情報のために、運用データとセキュリティ データをほぼリアルタイムで使用できます。 この記事では、インストール、構成、検証の手順など、Fluentd から Azure Data Explorer (Kusto) にログを送信する方法について説明します。

概要

Fluentd とは

Fluentd は、複数のシステム間でログ収集とルーティングを統合するために使用できるオープンソースのデータ コレクターです。 1,000 を超えるプラグインをサポートし、データのフィルター処理、バッファリング、変換のための柔軟なオプションを提供します。 クラウドネイティブ環境とエンタープライズ環境で Fluentd を使用して、ログの集約と転送を一元化できます。

Azure Data Explorerとは

Azure Data Explorer (ADX) は、大量の構造化データ、半構造化データ、非構造化データをリアルタイムで分析するために最適化された、高速でフル マネージドの分析サービスです。 ADX は Kusto クエリ言語 (KQL) を使用し、テレメトリ、監視、診断、対話型データ探索に広く使用されています。

[前提条件]

  • ログを取り込む必要があるノードに Ruby がインストールされている。 gem パッケージ マネージャーを使用して fluentd 依存関係をインストールするには、Ruby のインストール手順を参照してください
  • Azure Data Explorer クラスターとデータベースへのアクセス。
  • データを取り込むアクセス許可を持つ Azure Active Directory アプリケーション。

Fluentd と Azure Data Explorer の使用を開始する方法

  1. RubyGems を使用して Fluentd をインストールします。

    gem install fluentd
    
  2. Fluentd Kusto プラグインをインストールします

    gem install fluent-plugin-kusto
    
  3. 次の内容を含む構成ファイル (たとえば、) を作成して fluent.confします。 プレースホルダーを Azure とプラグインの値に置き換えます。

    <match <tag-from-source-logs>>
      @type kusto
      endpoint https://<your-cluster>.<region>.kusto.windows.net
      database_name <your-database>
      table_name <your-table>
      logger_path <your-fluentd-log-file-path>
    
      # Authentication options
      auth_type <your-authentication-type>
    
      # AAD authentication
      tenant_id <your-tenant-id>
      client_id <your-client-id>
      client_secret <your-client-secret>
    
      # Managed identity authentication (optional)
      managed_identity_client_id <your-managed-identity-client-id>
    
      # Workload identity authentication (optional)
      workload_identity_tenant_id <your-workload-identity-tenant-id>
      workload_identity_client_id <your-workload-identity-client-id>
    
      # Non-buffered mode
      buffered false
      delayed false
    
      # Buffered mode
      # buffered true
      # delayed <true/false>
    
      <buffer>
        @type memory
        timekey 1m
        flush_interval 10s
      </buffer>
    </match>
    

構成と認証の詳細については、Fluentd Kusto プラグインのドキュメントを参照してください

  1. インジェストのために Azure Data Explorer を準備します

    1. ADX クラスターとデータベースを作成します。 「Azure Data Explorer クラスターとデータベースの作成」を参照してください。

    2. Azure Active Directory アプリケーションを作成し、ADX データベースにデータを取り込むためのアクセス許可を付与します。 「Azure Data Explorer で Microsoft Entra アプリケーションの登録を作成する」を参照してください。

      今後使用するために、アプリ キーとアプリケーション ID を保存します。

    3. ログ インジェスト用のテーブルを作成します。 例えば次が挙げられます。

    .create table LogTable (
      tag:string,
      timestamp:datetime,
      record:dynamic
    )
    
  2. 構成ファイルを使用して Fluentd を実行します。

    fluentd -c fluent.conf
    
  3. 次の方法でログ インジェストを検証 します。

    1. Fluentd ログ ファイルを確認し、エラーがないことを確認し、インジェスト要求が正常に送信されたことを確認します。

      正常なインジェスト要求を示す Fluentd ログ ファイルのスクリーンショット

    2. ADX テーブルのクエリを 実行して、ログが正しく取り込まれたことを確認します。

    LogTable
    | take 10
    
  4. インジェスト マッピング: Kusto の定義済みのインジェスト マッピングを使用して、既定の 3 列形式のデータを目的のスキーマに変換します。 詳細については、「 インジェスト マッピングのサポート」を参照してください。