チュートリアル: Azure Monitor ログへの取り込み時にテキスト ログを変換する

取り込み時の変換を使用すると、受信データが Log Analytics ワークスペースに保存される前に、そのデータをフィルタ処理または変更できます。 この記事では、テキスト ログ データを変換する KQL クエリを記述する方法、およびデータ収集ルールに変換を追加する方法について説明します。

ここで説明する手順は、「Azure Monitor エージェントを使用してテキスト ログを収集する」の説明に従い、テキスト ファイルから一部のデータを既に取り込んでいることを前提とします。 このチュートリアルでは、次のことについて説明します。

  1. 取り込まれたデータを変換する KQL クエリを記述します。
  2. ターゲット テーブル スキーマを変更します。
  3. データ収集ルールに変換を追加します。
  4. 変換が正しく機能することを確認します。

前提条件

この手順を完了するには、以下が必要です。

  • 少なくとも共同作成者権限がある Log Analytics ワークスペース。
  • データ収集ルールデータ収集エンドポイントカスタム テーブル (「Azure Monitor エージェントを使用してテキスト ログを収集する」で説明されています)。
  • テキスト ファイルにログを書き込む、VM、仮想マシン スケール セット、または Arc 対応オンプレミス サーバー。 テキスト ファイルの要件:
    • Azure Monitor エージェントが実行されているコンピューターのローカル ドライブに格納します。
    • 行末で線を引きます。
    • ASCII または UTF-8 エンコードを使用します。 UTF-16 など他の形式はサポートされていません。
    • 循環ログ記録、ファイルが新しいエントリで上書きされている場合のログ ローテーション、またはファイルが移動され同じ名前の新しいファイルが開いている場合の名前の変更は許可されません。

取り込まれたデータを変換する KQL クエリを記述する

  1. Log Analytics でターゲット カスタム テーブルのデータを表示します。

    1. Azure portal で、[Log Analytics ワークスペース]> 目的の Log Analytics ワークスペース >[ログ] を選択します。
    2. カスタム ログ テーブルに対して基本的なクエリを実行して、テーブル データを表示します。
  2. クエリ ウィンドウを使用して、テーブル内の生データを変換するクエリを記述し、テストします。

    変換でサポートされる KQL 演算子について詳しくは、「Azure Monitor での変換の構造」を参照してください。

    Note

    変換の適用に使用できる列は、TimeGenerated と RawData のみです。 その他の列は、変換後に自動的にテーブルに追加され、変換時には使用できません。 _ResourceId 列は変換に使用できません。

    このサンプルでは、基本的な KQL 演算子を使用して、RawData 列内のデータが 3 つの新しい列 (Time IngestedRecordNumberRandomContent) に解析されます。

    • extend 演算子により、新しい列が追加されます。
    • project 演算子により、ターゲット テーブル スキーマの列と一致するように出力が書式設定されます。
    MyTable_CL
    | extend d=todynamic(RawData)  
    | project TimeGenerated,TimeIngested=tostring(d.Time), 
    RecordNumber=tostring(d.RecordNumber), 
    RandomContent=tostring(d.RandomContent), 
    RawData 
    

    Note

    この方法でテーブル データのクエリを実行しても、テーブル内のデータは実際には変更されません。 変換クエリをデータ収集ルールに追加した後、Azure Monitor によってデータ インジェスト パイプラインに変換が適用されます。

  3. クエリを 1 行に書式設定し、クエリの最初の行内のテーブル名を source という単語に置き換えます。

    次に例を示します。

    source | extend d=todynamic(RawData) | project TimeGenerated,TimeIngested=tostring(d.Time),RecordNumber=tostring(d.RecordNumber), RandomContent=tostring(d.RandomContent), RawData 
    
  4. 書式設定されたクエリをコピーして、データ収集ルールの構成に貼り付けることができるようにします。

カスタム テーブルを変更して新しい列を含める

変換クエリに基づいて、カスタム テーブルに列を追加または削除します。

上記の変換クエリの例では、string 型の新しい列を 3 つ追加しています。

  • TimeIngested
  • RecordNumber
  • RandomContent

この変換をサポートするために、これらの 3 つの新しい列をカスタム テーブルに追加します。

[スキーマ エディター] ウィンドウのスクリーンショット。TimeIngested、RecordNumber、RandomContent 列が定義されています。

データ収集ルールに変換を適用する

  1. [モニター] メニューで、[データ収集ルール]> 目的のデータ収集ルールを選択します。

  2. [データ ソース]> 目的のデータ ソースを選択します。

  3. [データ ソースの追加] 画面の [データ ソース] タブの [変換] フィールドに、書式設定した変換クエリを貼り付けます。

  4. [保存] を選択します。

    [データ ソースの追加] ウィンドウのスクリーンショット。[変換] フィールドが強調表示されています。

変換が機能することを確認する

ターゲット カスタム テーブルのデータを表示し、変更されたテーブルにデータが正しく取り込まれていることを確認します。

  1. Azure portal で、[Log Analytics ワークスペース]> 目的の Log Analytics ワークスペース >[ログ] を選択します。
  2. カスタム ログ テーブルに対して基本的なクエリを実行して、テーブル データを表示します。

次のステップ

各項目の詳細情報