使い始めて2週間程度の初心者です。 同じ送信者,受信者同士のメールの件数をSplunkを使ってカウントできないか調査しています。
|stats count by src_add,dst_add
とすると片方向の件数しか出ません(a@a.com→b@b.comは出るが,b@b.com→a@a.comは出ない)
いいアイディアや適切なコマンドをご存知でしたら教えてください。
よろしくお願いいたします。
問題点はa@a.com→b@b.comとb@b.com→a@a.comが別々にカウントされるということですか? であれば、大小比較して結合したフィールドでカウントするのはどうですか?
・・・・・|eval addr=if(src_add<dest_add,src_add+"-"+dest_add,dest_add+"-"+src_add)|stats count by addr
src_add、dest_addに複数のアドレスが存在する場合はばらさないとダメですが・・・
View solution in original post
以下のコマンドで送受信の多いアドレスを抽出することが出来ました。ありがとうございました。 | makemv delim=";" dst_add | eval test=if(src_add<dst_add,src_add+" - "+dst_add,dst_add+" - "+src_add) |stats count by test
まず同一のフィールド(src_addなど)に複数のバリューがある場合は以下のコマンドにより分割することが出来ます。 (デリメタはデータ内フォーマットに依存しますので確認ください)
makemv delim="," src_add
makemv
また、それぞれの件数カウントをされたい場合には以下のようなコマンドを使用しカウントすることが出来ます。
eval To_count=mvcount(dest_add) | eval From_count=mvcount(src_add)
mvcount
リンクそれぞれにsendmailでのサンプルが少し記載されていますのでご参照いただければと思います。
makemvでアドレスを分けることが出来ました。ありがとうございました。