メッセージ内にキーワードが使用されていても、キーワード検索で結果が返ってこない場合があります。Sumo Logic がアップロードされたログ メッセージの内容をインデックス化する方法を理解すれば、その理由がわかります。
ログ メッセージが受信されると、メッセージに含まれるメタデータ情報 (Collector、Source、sourceHost、_sourceCategory など) をサービスがインデックス化します。次に、アルゴリズムを使用して未処理のメッセージを parse し、その内容を個々のキーワード用語 (または文字のグループ) に分解します。これらもインデックスに追加されます。これらの用語それぞれは、メッセージ内の文字 (ホワイトスペース、ダッシュ、コンマ、疑問符、感嘆符、括弧など) の周囲の境界を検出して定義されます。
ここで次のメッセージを例にとります。
2013-08-13 21:25:15,456 98765432 [com.test.services.test.TESTClientImpl] TEST Request:id=1234567 TEST1234567
Sumo Logic は次のキーワード値をインデックス化します。
- 2013
- 08
- 13
- 21
- 25
- 15
- 456
- 98765432
- com
- test
- services
- test
- TESTClientImpl
- TEST
- Request
- id
- 1234567
- TEST1234567
すでにインデックス化された値のいずれかを含むメッセージを検索するには、その用語と厳密に一致するキーワードをクエリで指定する必要があります。ブール ロジックとワイルドカードを使用すると、複数の用語の検索、メッセージ内の用語分布に関するロジックの表現、およびワイルドカードで用語の一部の指定ができます。たとえば、ゼロ個以上の文字をアスタリスク (*) で表したり、1 文字を疑問符 (?) で表したりできます。(注: キーワードは大文字と小文字が区別されません)
例:
TEST*
- "test"、"TESTClientImpl"、"TEST" および "TEST1234567" に一致test
- "test" および "TEST" に一致456
- "456" に一致*456*
- "456"、"1234567" および "TEST1234567" に一致
メールまたは IP アドレスなどの句または一連のキーワードを入力すると、Sumo Logic 検索エンジンは個々のインデックス化された用語が相互に隣り合うように検索します。ワイルドカードを使用して、1 つの用語全体を表す (例: jsmith@*.com) ことはできますが、部分的に表すことはできません (例: jsmith@some*re.com)。ワイルドカード (*) は、指定した値の間の 1 つの用語全体を表すことしかできません。このため、定義した値の間に他の用語があると、検索結果は返されません。
たとえば、キーワード com*services
はワイルドカードで複数の用語を表そうとしているため、メッセージと一致しません。ここでは、"<period> test <period>" という文字列が含まれています。キーワードを com.*.services
に変更すると、クエリでメッセージが返ってきます。*
が 1 つの用語 "test" のみを示しているからです。
メッセージ内の複数のキーワード値を検索するには、それらのキーワードを複数の用語に分割することをお勧めします。そのためには、用語の間にスペースを挿入します。これにより、Sumo Logic では暗黙的に "AND" 条件がキーワード検索に追加されたことになります。たとえば、com services
を検索すると、com AND services
. が検索されます。