Azure Monitor ログのテーブルと列を追加または削除する

この記事では、データ収集規則の例 (DCR) を使用してカスタム テーブルを作成する方法と、カスタム列を使用してテーブル スキーマを管理する方法について説明します。

データ収集規則 (DCR) は、データAzure Monitor収集する方法を制御します。 ログ データは、Azureまたはカスタム テーブルに到達する前にフィルター処理および変換できます。

カスタム列は、データ ソースまたは組織の分析要件の変更に対応するために、テーブルのスキーマを拡張します。 テーブル スキーマを更新するときは、そのテーブルにデータを送信するすべての DCR を更新します。

前提条件

アクション アクセス許可が必要
テーブルの管理 Log Analytics ワークスペース以上のスコープでの Microsoft.OperationalInsights/workspaces/* アクセス許可。
たとえば、特権付きの組み込みロールである Log Analytics 共同作成者 によって提供されるように。

テーブルにデータを取り込むには、次のものが必要な場合があります。

  • データ収集エンドポイント (DCE)。 詳細については、 DCE を参照してください。
  • JSON ファイル内のソース データの少なくとも 1 つのレコードのサンプル。 このサンプルを使用して、 VM からテキストと JSON データ ソースを収集する場合など、ポータルでカスタム テーブルを作成します。

次の追加要件を検討してください。

  • Log Analytics ワークスペース内のすべてのテーブルには、レコードのインジェスト時間を識別するTimeGenerated列が必要です。 列が存在しない場合、Azure Monitor はそのテーブルの DCR の変換にその列を自動的に追加します。 詳細については、 サポートされている datetime 形式を参照してください
  • 補助テーブルプランまたは Lake テーブル プランでは、有効桁数 (マイクロ秒) の小数点以下 6 桁の ISO 8601 形式の TimeGenerated 列のみがサポートされます。 詳細については、 サポートされている ISO 8601 datetime 形式を参照してください。

カスタム テーブルを作成する

Azure テーブルには、定義済みのスキーマがあります。 ログ データを別のスキーマで格納するには、データ収集ルールを使用してデータを収集、変換し、Log Analytics ワークスペースのカスタム テーブルに送信する方法を定義します。 カスタム テーブルを作成する場合は、データの使用状況とコストの要件に基づいて 、テーブル プラン (Analytics (既定)、 Basic、または Auxiliary /Lake) を選択します。

カスタム テーブルには、_CL というサフィックスが付いています。たとえば tablename_CL です。 Azure portal では、テーブル名に _CL サフィックスが自動的に追加されます。 別のメソッドを使用してカスタム テーブルを作成する場合は、 _CL サフィックスを自分で追加する必要があります。 データ収集ルールの DataFlows Streams プロパティの tablename_CL は、Log Analytics ワークスペースの tablename_CL 名と一致する必要があります。

警告

Azureは課金にテーブル名を使用するため、名前に機密情報を含めないでください。

Azure ポータルを使用してカスタム テーブルを作成するには:

  1. [Log Analytics ワークスペース] メニューから [テーブル] を選択します。

  2. を選択してを作成します。

  3. 名前と、必要に応じてテーブルの説明を入力します。 カスタム テーブルの名前に _CL サフィックスを追加する必要はありません。 ポータルでは、指定した名前にサフィックスが自動的に追加されます。

  4. [ テーブルプラン] で [ 分析 ](デフォルト)、[ 基本]、または [ 補助/湖] を選択します。

  5. [データ収集ルール] ドロップダウンから既存のデータ収集ルールを選択します。または、[新しいデータ収集ルールの作成] を選択して、新しいデータ収集ルールの [サブスクリプション][リソース グループ][名前] を指定します。

    新しいデータ収集ルールを示すスクリーンショット。

  6. [データ収集エンドポイント] を選択し、[次へ] を選択します。 既に DCE に関連付けられている DCR を選択した場合、このドロップダウンは使用できません。

  7. [ファイルの参照] を選択し、新しいテーブルのサンプル データを含む JSON ファイルを見つけます。 次のスクリーンショットでは、「チュートリアル: Azure Monitor ログにデータを送信する」のスクリプトのサンプル JSON ファイルを使用しています。

    ファイルのカスタム ログ参照を示すスクリーンショット。

    サンプル データに TimeGenerated 列が含まれていない場合は、ポータルがこの列を使用して変換を作成するというメッセージが表示されます。

  8. テーブルに取り込む前にログ データを変換する場合:

    1. [変換エディター] を選択します。

      変換エディターを使用すると、受信データ ストリームの変換を作成できます。 変換は、各受信レコードに対して実行される Kusto クエリ言語 (KQL) クエリです。 Azure Monitor ログでは、クエリの結果が変換先のテーブルに格納されます。

      カスタム ログ データ プレビューを示すスクリーンショット。

    2. [実行] をクリックして結果を表示します。

      初期カスタム ログ データ クエリを示すスクリーンショット。

  9. [ 適用] を選択して変換を保存し、新しいテーブルのスキーマを表示します。 次へを選択します。

    カスタム ログの最後のスキーマを示すスクリーンショット。

  10. 最後の詳細を確認し、[作成] を選択してカスタム ログを保存します。

    カスタム ログ作成を示すスクリーンショット。

テーブルを削除する

Azureテーブルは削除できません。 Azure で他のテーブルを削除する際にデータがどのように削除されるかは、テーブルの種類によって異なります。

詳細については、「Log Analytics ワークスペース内のテーブルを削除したときにデータがどうなるか」を参照してください。

Azure portal からテーブルを削除するには:

  1. [Log Analytics ワークスペース] メニューから [テーブル] を選択します。

  2. 削除するテーブルを名前で検索するか、[種類] フィールドで検索結果を選んで検索します。

    Log Analytics ワークスペースの [テーブル] 画面を示すスクリーンショット。[名前でフィルター] と [種類] のフィールドが強調表示されています。

  3. 削除するテーブルを選択し、テーブルの右側にある省略記号 (...)、[削除] の順に選択します。「yes」と入力して削除を確定します。

    Log Analytics ワークスペースのテーブルに対する [テーブルの削除] 画面を示すスクリーンショット。

カスタム列を追加または削除する

カスタム テーブルを使用すると、テーブルの作成後に列を追加または削除してスキーマを変更できます。 Azureテーブルでは、カスタム列のみを追加および削除できます。

重要

テーブル スキーマを更新するときは必ず、テーブルにデータを送信するデータ収集ルールを更新してください。 データ収集ルールで定義するテーブル スキーマによって、Azure Monitor でターゲット テーブルにデータがストリーミングされる方法が決まります。 テーブル スキーマを変更しても、Azure Monitor によってデータ収集ルールが自動的に更新されることはありません。

カスタム テーブルの列名を定義する場合は、次の規則を使用します。

  • 列名は文字 (A ~ Z または a ~ z) で始まる必要があります。
  • 最初の文字の後には、文字、数字、またはアンダースコアのみを使用します。
  • 列名にスペース、ドット、ダッシュ、またはその他の句読点を使用しないでください。
  • ASCII 以外の文字 (Æ、É、Ö など) は列名ではサポートされていません。
  • 列名の大文字と小文字が区別されるのは、Analytics と Basic テーブルの場合のみです。 唯一の違いが大文字と小文字の違いである場合、補助ログ テーブルの取り込みによって、列名が重複するデータが削除されます。
  • 列名の長さは 2 ~ 45 文字にする必要があります。
  • Azure テーブルのカスタム列名は、_CF で終わる必要があります。
  • GUID 型は論理注釈ですが、値は格納され、文字列として照会されます。 詳細については、「Azure Monitor ログのColumn データ型を参照してください。
  • idBilledSizeIsBillableInvalidTimeGeneratedTenantIdTitleTypeUniqueId_ItemId_ResourceGroup_ResourceId_SubscriptionId_TimeReceivedなど、システムまたは予約列と競合する名前は使用しないでください。

これらのスキーマ規則は、 一般的な Kusto 識別子規則よりも厳密です。 Kusto はクエリで引用符で囲まれた通常とは異なるプロパティ名を参照できますが、カスタム テーブル スキーマでは列名に対して文字、数字、アンダースコアのみを受け入れます。

Log Analytics ワークスペースのテーブルにカスタム列を追加するか、列を削除するには:

  1. [Log Analytics ワークスペース] メニューから [テーブル] を選択します。

  2. 編集するテーブルの右側にある省略記号 (...)、[スキーマの編集] の順に選択します。

    この操作により、[ スキーマ エディター] 画面が開きます。

  3. [スキーマ エディター] 画面の [カスタム列] セクションまで下にスクロールします。

    [列の追加] および [削除] ボタンが強調表示された [スキーマ エディター] 画面を示すスクリーンショット。

  4. 新しい列を追加するには:

    1. [列の追加] を選択します。
    2. 列の名前と説明 (省略可能) を設定し、[型] ドロップダウンから必要な値の型を選択します。
    3. [保存] を選択して新しい列を保存します。
  5. 列を削除するには、削除する列の左側にある [削除] アイコンを選択します。