Azure Monitor (プレビュー) の Log Analytics ワークスペースでカスタム フィールドを作成する
重要
新しいユーザー設定フィールドの作成は、2023 年 3 月 31 日以降無効になります。 カスタム フィールドの機能は非推奨となり、既存のカスタム フィールドは 2026 年 3 月 31 日までに機能しなくなります。 ログ レコードを解析し続けるために、取り込み時の変換に移行する必要があります。
現在、新しいカスタム フィールドを追加したときに、データの表示が開始されるまでに最大 7 日かかる場合があります。
Azure Monitor のカスタム フィールド機能を使用すると、独自の検索可能なフィールドを追加して、ご自身の Log Analytics ワークスペースの既存のレコードを拡張できます。 カスタム フィールドは、同じレコードの他のプロパティから抽出したデータから自動的に設定されます。
たとえば、以下のサンプル レコードには、イベントの説明に埋もれている有益なデータがあります。 このデータを別のプロパティに抽出すると、並べ替えやフィルター処理などに使用できます。
Note
プレビュー版では、カスタム フィールド数の上限はワークスペース内で 500 個です。 この機能が一般公開されるときには、この上限は上がる予定です。
カスタム フィールドを作成する
カスタム フィールドを作成する場合、その値を設定するために使用するデータを Log Analytics が認識する必要があります。 Log Analytics は、FlashExtract という Microsoft Research のテクノロジを使用して、そのデータをすばやく特定しています。 ユーザーが明示的な指示をしなくても、Azure Monitor はユーザーが提供した例から抽出するデータを学習します。
以下のセクションでは、カスタム フィールドを作成する手順について説明します。 サンプル抽出のチュートリアルについては、「サンプルのチュートリアル」を参照してください。
Note
カスタム フィールドは、指定した条件に一致するレコードが Log Analytics ワークスペースに追加されるときに設定されます。このため、カスタム フィールドの作成後に収集されたレコードに限り、カスタム フィールドが表示されます。 カスタム フィールドの作成時にデータ ストアに既にあったレコードには、カスタム フィールドは追加されません。
手順 1: カスタム フィールドを追加するレコードを指定する
最初の手順は、カスタム フィールドを追加するレコードの指定です。 まず標準のログ クエリから始めて、Azure Monitor の学習元になる、モデルとして機能するレコードを選択します。 データをカスタム フィールドに抽出しようとすると、フィールド抽出ウィザードが開きます。この画面で、条件を検証し、調整します。
- [ログ] に移動し、クエリを使ってカスタム フィールドを追加するレコードを取得します。
- Log Analytics でカスタム フィールドを設定するデータを抽出する際に、モデルとして機能するために使用するレコードを選択します。 このレコードから抽出するデータを指定すると、Log Analytics はその情報を使って、同様のすべてのレコードのカスタム フィールドを設定するロジックを決定します。
- レコードを右クリックし、[からフィールドを抽出] を選択します。
- フィールドの抽出ウィザードが開き、選択したレコードが [メインの例] 列に表示されます。 選択したプロパティと同じ値を持つ、そのレコードのカスタム フィールドが定義されます。
- 目的の選択内容でない場合は、さらにフィールドを選択して条件を絞り込みます。 条件のフィールド値を変更するには、取り消して、目的の条件と一致する別のレコードを選択する必要があります。
手順 2: 初回の抽出を実行する
カスタム フィールドを追加するレコードを指定したら、抽出するデータを指定します。 Log Analytics は、その情報を使って、同様のレコード内の同様のパターンを特定します。 手順 3 では、その結果を確認し、Log Analytics で分析に使用されるさらに詳しい情報を指定することができます。
- カスタム フィールドを設定するサンプル レコードのテキストを選択します。 フィールドの名前とデータ型を指定し、初回の抽出を実行するためのダイアログ ボックスが表示されます。 _CF という文字が自動的に付加されます。
- [抽出] をクリックして、収集したレコードの分析を実行します。
- [概要] と [検索結果] セクションには抽出結果が表示されるので、正確さを確認できます。 [概要] には、レコードの特定に使用される条件と、特定された各データ値の件数が表示されます。 [検索結果] には、条件と一致するレコードの詳細な一覧が表示されます。
手順 3: 抽出の正確さを確認し、カスタム フィールドを作成する
初回の抽出を実行すると、既に収集されたデータに基づいて結果が Log Analytics に表示されます。 その結果が正確であれば、追加作業なしでカスタム フィールドを作成できます。 正確でない場合は、Log Analytics がロジックを改善できるように結果を調整できます。
- 初回の抽出の値が正しくない場合、不正確なレコードの横にある [編集] アイコンをクリックし、 [この選択内容の変更] を選択して選択内容を変更します。
- エントリは、 [メインの例] の [追加の例] セクションにコピーされます。 この選択内容を調整することで、Log Analytics が正しい選択内容を理解しやすくなります。
- [抽出] をクリックし、この新しい情報を使用してすべての既存のレコードを評価します。 この新しい情報に基づいて、変更したレコード以外のレコードの結果を変更できます。
- 抽出のすべてのレコードによって、新しいカスタム フィールドを設定できるデータが正しく特定されるまで、修正を加え続けます。
- 結果に満足したら、 [抽出の保存] をクリックします。 カスタム フィールドは定義されましたが、まだレコードには追加されません。
- 指定した条件に一致する新しいレコードが収集されるまで待ってから、ログ検索を再実行してください。 新しいレコードにはカスタム フィールドがあります。
- 他のレコードのプロパティと同様に、カスタム フィールドを使用します。 カスタム フィールドを使用してデータを集計してグループ化できます。また、カスタム フィールドを使用して新しい分析を行うこともできます。
カスタム フィールドを削除する
カスタム フィールドを削除するには、2 つの方法があります。 1 つは、「手順 2: 初回の抽出を実行する」のように完全な一覧を表示するときの各フィールドの [削除] オプションです。 もう 1 つは、レコードを取得し、フィールドの左側にあるボタンをクリックする方法です。 メニューには、カスタム フィールドを削除するオプションがあります。
サンプルのチュートリアル
次のセクションでは、カスタム フィールドの作成例を段階的に説明します。 この例では、サービスの変化する状態を示す Windows イベントのサービス名を抽出します。 これは、サービス コントロール マネージャーによって Windows コンピューターでシステム起動時に作成されるイベントに依存します。 この例に従うには、 システム ログの情報イベントを収集する必要があります。
Service Control Manager からイベント ID が 7036 のすべてのイベント (サービスの開始または停止を示すイベント) を返すために、ここでは次のクエリを入力します。
次に、イベント ID 7036 のレコードを右クリックし、[フィールドを `イベント` から抽出する] を選択します。
フィールド抽出ウィザードが開き、[メインの例] 列の [EventLog] フィールドと [EventID] フィールドが選択されています。 これは、システム ログからイベント ID が 7036 のイベントに対してカスタム フィールドが定義されることを示します。 これで十分なので、他のフィールドは選択する必要がありません。
[RenderedDescription] プロパティのサービス名を選択し、 [サービス] を使用してサービス名を指定します。 カスタム フィールド名は Service_CF になります。 ここでのフィールドの種類は文字列なので、変更する必要はありません。
サービス名が正しく指定されたレコードと、指定されていないレコードがあります。 [検索結果] は、 [WMI Performance Adapter] の名前の一部が選択されなかったことを示しています。 [概要] では、Windows Modules Installer ではなく Modules Installer を検出したレコードが 1 つあることが示されています。
まず WMI Performance Adapter レコードから始めます。 そのレコードの編集アイコンをクリックし、 [この選択内容の変更] をクリックします。
WMI という単語を含むようにこの選択内容を広げて、抽出を再実行します。
WMI Performance Adapter のエントリが修正されたこと、また Log Analytics にもその情報が使用され、Windows Module Installer のレコードが修正されたことを確認できます。
これで、Service_CF が作成されているものの、どのレコードにも追加されていないことを検証するクエリを実行できるようになりました。 これは、カスタム フィールドが既存のレコードに対して動作しないことが原因です。そのため、新しいレコードが収集されるのを待つ必要があります。
ある程度時間が経ち、新しいイベントが収集されると、条件に一致するレコードに Service_CF フィールドが追加されていることを確認できます。
他のレコードのプロパティと同様に、カスタム フィールドを使用できるようになります。 それを説明するために、新しい Service_CF フィールドでグループ化し、最もアクティブなサービスを調べるクエリを作成します。
次のステップ
- 基準となるカスタム フィールドを使用してクエリを作成するためのログ クエリについて学習します。
- カスタム フィールドを使用して解析対象のカスタム ログ ファイルを監視します。