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

ラボ 3 - parse オプション

このラボでは、使用可能な parse オプションについて説明します。
ログを parse することにより、メッセージの構造を理解し、意味のあるフィールドを特定することができます。

 

  1. json auto オプションを使用すると、AWS CloudTrail メッセージのすべてのフィールドを自動的に parse することができます。

_sourceCategory=Labs/AWS/CloudTrail

| json auto

json auto による自動フィールド選択の画像

  1. 前の例で、フィールド ブラウザに表示されたすべての parse されたフィールドに注目してください。ここでは、parse 済みの awsregion フィールドを使用して、AWS リージョン別にメッセージをカウントします。

_sourceCategory=Labs/AWS/CloudTrail

| json auto

| count by awsregion

  1. parse operator の nodrop オプションにより、パターン条件と一致しないメッセージも結果に含めることができます。Apache エラー ログから過去 15 分間のメッセージを検索し、一部のメッセージにはクライアント IP がないことに注目してください。

_sourceCategory=Labs/Apache/Error

  1. 同じ検索を実行し、今度はクライアント IP を parse します。[client *] パターンが入っていない他のすべてのメッセージは削除されています。

_sourceCategory=Labs/Apache/Error

| parse "[client *]" as client_ip

  1. nodrop オプションを追加します。一致しないメッセージは削除されずに残り、client_ip は空白になっています。nodrop オプションと他の parse ステートメントを組み合わせることで、さまざまなパターンや形式のログを parse できます。

_sourceCategory=Labs/Apache/Error

| parse "[client *]" as client_ip nodrop

| parse "mod_log_sql: *" as message

  1. 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)

  1. parse field オプションを使用すると、すでに parse されたフィールドも parse できます。この例では、GitHub の値が大きい上位 5 件のメッセージを特定します。過去 30 日分のメッセージを検索して、メール アドレスを parse します。

_sourceCategory=Labs/Github and "committer"

| parse "\"email\":\"*\"" as email

  1. 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

  1. parse multi オプションを使用すると、同じメッセージ中で複数回発生しているパターンを抽出できます。デフォルトでは、最初の発生パターンのみが parse されます。まず、Snort データを検索して IP アドレスを抽出します。

_sourceCategory=labs/snort

| parse regex "(?<ip_address>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})"

  1. 次に parse multi オプションを使用すると、IP アドレスを検出するたびに同じメッセージが繰り返し抽出されるため、正確なカウントが可能になります。

_sourceCategory=labs/snort

| parse regex "(?<ip_address>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})" multi

  1. 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

FER (Field Extraction Rules) 設定の画像

クイズ: 「正」か「誤」かで答えてください。

  1. csv、json、split、keyvalue はすべて parse operator である

  2. 一度 parse されたフィールドは、それ以上 parse することはできない

  3. FER (Field Extraction Rules) で parse されたフィールドは、フィールド ブラウザから利用できる

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