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

sessionize

sessionize operator を使用すると (1 つのシステムで生成された) 1 件のログ メッセージから抽出した値を使用して、他のシステムで生成されたログ メッセージで関連する値を検索できます。sessionize を実行すると、これらの関連イベントが同じページに表示されます。繋ぎ合わされたログのスレッドは「セッション」と呼ばれます。

使用事例によっては、join operator も使用でき、こちらの方がより適切で使いやすい場合もあります。

たとえば、分散システムで入力される userRequestId の値が Service、Stream、そして Config というシステムに渡されるとします。

各システムはログ メッセージを生成するため、障害が発生したポイントを特定できます。Service マシンからのログ ファイルから userRequestID の値を取得し、serviceSessionId、streamRequestId、そして configSessionId の値も取得しています。sessionize を使用することで、これらの別々のログを繋ぎ合わせ、障害が発生した場所を特定することができます。

構文

  • sessionize ("<anchor pattern1>") as (<alias list1>), ("<anchor pattern2>") as (<alias list2>)

anchor pattern は、parse anchor 式と同じですが、前の式から ($variableName を使用して) 変数を受け取ることができます。

ルール

  • sessionize operator の後には、複数のアンカ式を指定します。
  • 各アンカ式を使用して、一致するログから 1 つまたは複数の変数を抽出できます。
  • 抽出した変数を $variableName 表記で使用することで、同じ変数を含む 2 番目のメッセージと結合することができます。

trace operator で関連セッションを検索した後で、sessionize operator を使用して結果を絞り込むことができます。

Windows イベントの中で次の 2 つに着目するとします。

  • ユーザのログオフ
  • セッションの再開

これら 2 つのイベントにより、特定の Windows マシン、ドメイン、またはログイン ID にどの程度の問題が起きているかを調べることができます。

次の例で:

_sourceCategory=OS/Windows 
 | sessionize "ComputerName = \"*\";\n\tEventCode = 4778;*Account Name:\t\t*\r*Account Domain:\t\t*\r*Logon ID:\t\t*\r" as (computerName,_11,userName,_u1,domain,_d1,logonID),
 "ComputerName = \"$computerName\";\n\tEventCode = 4779;*Account Name:\t\t$userName\r*Account Domain:\t\t$domain\r*Logon ID:\t\t*\r" as (_event2,_u2,_d2,_21)

  1. ログを関連付ける検索条件を指定します。この例では、すべての Windows ログの _sourceCategory を使用します。
  2. 比較したいセッションに関連した情報を抽出します。この例では、Windows の切断イベントであるコード 4779 を再接続イベントの 4778 と比較し、切断されたユーザが再接続できたかどうかを確認します。

次のような結果が返されます。

sessionize.png

 

 

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