ラボ 3 - parse オプション
ログを parse することにより、メッセージの構造を理解し、意味のあるフィールドを特定することができます。
-
json auto オプションを使用すると、AWS CloudTrail メッセージのすべてのフィールドを自動的に parse することができます。
_sourceCategory=Labs/AWS/CloudTrail
| json auto
-
前の例で、フィールド ブラウザに表示されたすべての parse されたフィールドに注目してください。ここでは、parse 済みの awsregion フィールドを使用して、AWS リージョン別にメッセージをカウントします。
_sourceCategory=Labs/AWS/CloudTrail
| json auto
| count by awsregion
-
parse operator の nodrop オプションにより、パターン条件と一致しないメッセージも結果に含めることができます。Apache エラー ログから過去 15 分間のメッセージを検索し、一部のメッセージにはクライアント IP がないことに注目してください。
_sourceCategory=Labs/Apache/Error
-
同じ検索を実行し、今度はクライアント IP を parse します。[client *] パターンが入っていない他のすべてのメッセージは削除されています。
_sourceCategory=Labs/Apache/Error
| parse "[client *]" as client_ip
-
nodrop オプションを追加します。一致しないメッセージは削除されずに残り、client_ip は空白になっています。nodrop オプションと他の parse ステートメントを組み合わせることで、さまざまなパターンや形式のログを parse できます。
_sourceCategory=Labs/Apache/Error
| parse "[client *]" as client_ip nodrop
| parse "mod_log_sql: *" as message
-
isEmpty、isBlank、または isNull operator を使用して、いろいろな文で parse したメッセージをフィルタします。
_sourceCategory=Labs/Apache/Error
| parse "[client *]" as client_ip nodrop
| parse "mod_log_sql: *" as message
| where isBlank(client_ip)
-
parse field オプションを使用すると、すでに parse されたフィールドも parse できます。この例では、GitHub の値が大きい上位 5 件のメッセージを特定します。過去 30 日分のメッセージを検索して、メール アドレスを parse します。
_sourceCategory=Labs/Github and "committer"
| parse "\"email\":\"*\"" as email
-
parse field オプションを使用して、メールアドレスをさらにユーザとドメインに parse します。最後にユーザ別と ID 別にメッセージをカウントして、上位 5 件のメッセージを特定します。
_sourceCategory=Labs/Github and "committer"
| parse "\"email\":\"*\"" as email
| parse field=email "*@*" as users, domain
| count by users
| top 5 users by _count
-
parse multi オプションを使用すると、同じメッセージ中で複数回発生しているパターンを抽出できます。デフォルトでは、最初の発生パターンのみが parse されます。まず、Snort データを検索して IP アドレスを抽出します。
_sourceCategory=labs/snort
| parse regex "(?<ip_address>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})"
-
次に parse multi オプションを使用すると、IP アドレスを検出するたびに同じメッセージが繰り返し抽出されるため、正確なカウントが可能になります。
_sourceCategory=labs/snort
| parse regex "(?<ip_address>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})" multi
-
FER (Field Extraction Rules) は、ログ メッセージが取り込まれた時点でフィールドを抽出します。利用できる FER (およびそれぞれの詳細) は、[Manage Data (データの管理)] → [Settings (設定)] → [FER (Field Extraction Rules)] で確認できます。Apache Access ルールを利用して、404 メッセージを Source IP 別にカウントします。
_sourceCategory=Labs/Apache/Access and status_code=404
| count by src_ip
クイズ: 「正」か「誤」かで答えてください。
|