検索テンプレート
検索テンプレートを使用すると、簡単な入力の選択肢をいくつか提供してユーザの検索を単純化できます。検索テンプレートでは、フィールド、キーワード、operator に対する引数を含めて、クエリ内のテキストを置換できます。テキスト、文字列、キーワードなど、どの種類の情報が有効であるかを判断することもできます。
バックグラウンドで、テンプレートで使用するクエリの一部分を選択する方法もとても簡単です。 検索のどの部分を使用可能にするかを選択して、[Create Parameter (パラメータの作成)] をクリックします。
一般的な検索テンプレートの作成
作成したクエリや管理している既存のクエリから検索テンプレートを作成してパラメータを指定できます。
- クエリを開きます。
- 置き換えるフィールド、引数、または operator を強調表示して、[Create a parameter (パラメータの作成)] をクリックするか、キーボード ショートカットを使用する場合は Alt+v を押します。
- [Manage Parameter Settings (パラメータ設定の管理)] ダイアログで、名前、コンマ区切りの使用可能な値、データ タイプ、および簡単な説明を入力します。
データ タイプは、有効なパラメータを定義方法に応じて次の 4 種類から選択できます。
数値 |
数値のみ。 |
文字列 |
1 つの句と見なされ、二重引用符で囲まれます。"system errors" のようになります。 |
任意 |
すべての文字。パス内のテキストを置換するのに最適です。 |
任意の Sumo Logic キーワード。Sumo Logic キーワードを使用すると、いくつかのパフォーマンス上の利点があるため、可能であればこれを選択することをお勧めします。 |
省略可能。[Set Values for Parameter (パラメータに値を設定)] を選択すると、パラメータにオートコンプリート値を設定できます。
次の手順で形式を選択します。
- 省略可能。使用可能な値を選択します。
- テキスト エントリの場合は、それぞれの値を別々の行に入力します。
- ラベルと値のペアの場合は、ラベルと値のペアをコンマ区切りの行としてコピーして貼り付けます。ルックアップを使用する場合は、有効なルックアップ ファイルを使用していることを確認してください。システムでは、検証できないルックアップ ファイルのパスがすべて拒否されます。
- フィールドで、ユーザ ID などの適切な値を選択します。
- ラベルに名前などの対応する値を選択します。
テキスト エントリおよびラベルと値のペアは、それぞれ 10,000 エントリまで入力できます。ルックアップ ファイルの場合は、最大 40,000 エントリまで入力できます。
- ルックアップ ファイルについては、save operator で保存された有効なルックアップファイルを入力する必要があります。
- [Select a format (形式を選択)] で、[Lookup (ルックアップ)] を選択します。
- 有効なルックアップ ファイルを入力するか、ドロップダウンから共有しているルックアップ ファイルを選択します。
- ラベルに名前などの対応する値を選択します。
-
[Save (保存)] をクリックします。
-
検索を新しいユーザと共有するには、クエリ ウィンドウの下にある [Share (共有)] をクリックします。
-
この検索テンプレートを使用するユーザとロールに [Edit (編集)] のアクセス権を付与します。
顧客 ID の検索テンプレートの作成
テンプレートを使ってユーザ検索を単純化したい場合は、ラベルと値のペアを使用して、顧客名などの人間が判読可能なラベルと、顧客 ID などの機械が解読可能な値を関連付けることができます。この関連付けにより、ユーザは、既知のカテゴリ (顧客名) で検索することができ、抽象的なカテゴリや、顧客 ID などの記憶が困難な値を使用せずに済みます。
たとえば、IP アドレスでユーザを検索する方法について、次のサンプル クエリを使用するとします。
_sourceCategory=service "Successful login from UI" | parse "[auth=User:*:*:*] [remote_ip=*]" as user,user_id,g,remote_ip
| where user_id matches joeX
| lookup city, region, country_name ,latitude, longitude from geo://location on ip=remote_ip
| where region matches CA
| count by latitude, longitude, user
チームで次の簡単なクエリを使用して、「タイムトラベラー」という疑わしいユーザを突き止める例について考えます。このユーザは、2 つの異なる地理的地域から不自然に短い時間間隔でログインしました。すなわち、過去 15 分の時間範囲にニューヨークとカリフォルニアからログインしています。タイムトラベラーのユーザは、クエリを変更したり、ユーザ ID によりユーザ名を検索したりすることを要求していません。 この場合、パラメータを使用して、ユーザに必要なドロップダウン リストをすばやく提示する検索テンプレートを作成できます。
まず、user_name と state のパラメータを作成して、joeX と CA の手動のエントリを解消します。
_sourceCategory=service "Successful login from UI" | parse "[auth=User:*:*:*] [remote_ip=*]" as user,user_id,g,remote_ip
| where user_id matches {{user_name}}
| lookup city, region, country_name ,latitude, longitude from geo://location on ip=remote_ip
| where region matches {{state}}
| count by latitude, longitude, user
次に、user_name パラメータをユーザ名とユーザ ID との間に、すでに関連付けられているルックアップとして指定します。ここでは、/shared/angad/user_info_lookup
とします。
タイムスライス用の検索テンプレートの作成
タイムスライスの検索テンプレート パラメータを作成することで、ダッシュボード ビューアで、タイムスライスを自分のダッシュボードに適した目的の粒度に調整できます。
例として、次の簡単なクエリについて確認します。
_sourceCategory=apache_error | timeslice 1m | count by _timeslice
ユーザは、この単純なクエリでも、クエリ言語や Sumo でのパイプとフィールドの使用方法について知っておく必要があります。
timeslice の引数をパラメータとして指定できます。
_sourceCategory=apache_error | timeslice {{parameter}}m | count by _timeslice
timeslice には正しいデータ タイプの Number を必ず指定してください。ユーザが文字列を入力できないようにします。
このパラメータは、ユーザが使用できるようになり、タイムスライスの入力値を使用してユーザが自由に変更できるようになりました。検索が 15 分の時間範囲であることを考えると、5 を超える値はおそらく役に立ちません。制限を強化する必要がある場合は、次の手順を実行します。
省略可能。ユーザの柔軟性を高めて、タイムスライスの末尾に秒または分を追加できるようにするには、timeslice パラメータを Any に設定します。次に、ユーザは 15s や 5m などの値や、さらに長い 1h、1d、1w などの値を追加できます。
_sourceCategory=apache_error | timeslice {{timeslice}} | count by _timeslice
パラメータの名前変更
パラメータの名前を変更する必要がある場合は、[Manage Parameter Settings (パラメータ設定の管理)] ダイアログから変更できます。
- パラメータ設定の詳細アイコンをクリックして、[Manage Parameters Settings (パラメータ設定の管理)] を選択します。
- [Manage Parameters Settings (パラメータ設定の管理)] ダイアログで、[Parameter Name (パラメータ名)] フィールドを編集します。
スペースや特殊文字を含まない (アンダースコアを除く) 有効な名前を指定する必要があります。 - [Save (保存)] をクリックします。
検索テンプレートの削除
検索テンプレートを削除する場合は、既存のパラメータを削除します。最後のパラメータを削除すると、テンプレート ビューが表示されなくなります。
-
最後のパラメータの詳細アイコンを選択します。
-
[Delete Parameter (パラメータを削除)] を選択します。
ベスト プラクティス
検索テンプレートを使用するときには、クエリ内のどのパラメータがユーザから最も多く変更されるかを慎重に検討する必要があります。
ここで、検索テンプレートのパラメータに最も適した候補をいくつか紹介します。
パラメーター
- キーワード。ユーザからクエリへのキーワードの入力が可能になります。後述の例では、特定のクエリのキーワードを指定するためのパラメータを作成しています。パラメータのデータ タイプは文字列またはキーワードです。
- 組み込みフィールドまたは FER フィールドの値。組み込みフィールドまたは FER フィールドに値を指定します。たとえば、ユーザが _sourceCategory を動的に指定できるようになります。
- operator の引数。パラメータを使用して、operator への引数を指定できます。たとえば、パラメータを使用して、timeslice operator に引数を指定できます。
パラメータのデータ タイプが、指定された operator の引数と一致していることを確認してください。そうしないと、クエリによってユーザにエラーが送信されます。
データ タイプ
データ タイプの取り扱いについては、いくつかのベスト プラクティスがあります。
- 検索式にパラメータがある場合は、キーワードを選択する必要があります。これにより、クエリの実行速度が速くなります。
- operator の引数をパラメータ化する場合は、検索でユーザがどの引数を指定する必要があるかに応じて、Any または Number のデータ タイプを使用する必要があります。
- timeslice などの operator への数値引数をパラメータ化する場合は、正しいデータ タイプが使用されていることを確認するチェックがあるため、常に Number データ タイプを使用する必要があります。Any データ タイプでは検証がサポートされていないため、サポートされていない値に使用することができます。
- たとえば、次のパスの一部をパラメータ化する場合は、
/mysearch/{{parameter}}/k8s/api
Any 入力タイプを使用する必要があります。
検索テンプレートからのダッシュボードの作成
検索テンプレートを使用して、ダッシュボードに対する便利なフィルタを作成できます。
検索テンプレートからダッシュボードを作成するには、次の手順を実行します。
-
検索テンプレートを実行して結果を待ちます。
- [Add to Dashboard (ダッシュボードに追加)] をクリックします。
-
このパネル用の既存のダッシュボードを選択するか、新しいダッシュボードを作成します。
- パラメータが自動的にダッシュボード全体のフィルタとして使用可能になります。
プレビュー モードでのトラブルシューティング
検索テンプレートを作成するときには、さまざまな理由でエラー メッセージが表示されることがあります。これらのエラーの最も一般的な原因は、パラメータのデータ タイプの不一致です。たとえば、数字を入力するべき場所に文字列を入力すると、エラーになります。クエリで発生しているエラーの原因を詳しく調べるには、プレビュー モードを使用します。
プレビュー モードでは、パラメータ値が適用されたクエリが表示されます。たとえば、1 を二重引用符で囲んだ場合、正しく表示されません。これは、Number データ タイプにする必要があるときに、パラメータのデータ タイプが String に設定されるためです。更新すると、クエリは正しく修正され、エラー メッセージが表示されなくなります。