メインコンテンツまでスキップ
Sumo Logic Japanese

ラボ 5 - サブクエリを使用したフィルタ

このラボでは、Subquery operator を使用して、キーワードを別のクエリの結果で動的に変更する方法について説明します。
このラボでは、Subquery operator を使用して、キーワードを別のクエリの結果で動的に変更します。

 

_sourceCategory=Labs/Apache/Access と 「127.0.0.1」を実行し、特定の IP アドレスについて Apache Access 内のすべてのメッセージを識別する必要があるとします。

ただし、Apache のエラー ログでその IP アドレスを「File does not exist... (ファイルが存在しません...)」のエラーが最も多い IP アドレスに自動的に変更する必要があるとします。2 番目のクエリ (child クエリ) を実行することで、その IP アドレスを見つけることができます。この方法により、特定の時点で最もエラーが多い IP アドレスと「通常の」アクティビティを比較できます。

Subquery concept.jpg

1.まず、親クエリを作成します。これはキーワードのない単純なデータの範囲です。

_sourceCategory=Labs/Apache/Access

2.次に、2 番目のクエリを作成し、Apache エラーログの Source Category から「File does not exist: /usr/htdocs (ファイルが存在しません: /usr/htdocs)」のエラーに最も多く関連付けられた IP アドレスを 1 つ返します。これは、クエリになります。

_sourceCategory=labs/apache/error and "File does not exist: /usr/htdocs"
| parse "[*] [*] [client *]" as Time,Error,IP // Parses the IP address into a field
| count by IP // Aggregates the results by IP address
| topk(1,_count) // Displays the IP with the most “File does not exist: /usr/htdocs” errors

3.次に、subquery operator を使用して、子クエリと親クエリを結合します。さらに、この例では、子クエリを使用して親クエリのキーワードを生成します。使用している構文は、次のように簡素化できます。

<Parent Query>
[subquery: <Child Query>
| compose IP keywords
]

4.最後に、子クエリと親クエリを subquery 構文で結合します。

_sourceCategory=Labs/Apache/Access
[subquery:_sourceCategory=labs/apache/error and "File does not exist: /usr/htdocs"
| parse "[*] [*] [client *]" as Time,Error,IP
| count by IP 
| topk(1,_count) | compose IP keywords
]

keywords に加えて、where および if フィルタ操作で subquery を使用できます。詳細については、ドキュメント ページの「Subqueries (サブクエリ)」を参照してください。

  • この記事は役に立ちましたか?