0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Splunk で multi value フィールド(複数項目)にデータが2件以上あるイベントを取得

Last updated at Posted at 2024-03-26

この記事はなに?

Splunk にて、mult ivalue フィールド(以降 mv)にデータが2件以上あるイベントだけを取得する方法。

  • mult ivalue フィールド: 複数の値を取ることができるフィールド。配列のようなもの

活用シーン

  • メール送信記録のログ(maillog)から、大量送信しているアカウントを検知する
  • stats の list や values で集計した結果から、結果が複数になったフィールドを抜く

SPL

例えば maillog から、複数の宛先に送ったメールが何通あるかを出したい場合。

index="idx_maillog" sourcetype="sendmail_syslog"
| fields to{}
| rename to{} as to
| eval num=mvcount(to)
| search num >= 2
| table to

表示例

to
sample1@aaa.test
sample2@bbb.test
num1@aaa.test
num2@bbb.test
num3@ccc.test

解説

  • mv の件数は、evalmvcount(mvのフィールド名) とすることで取得できます
  • mv のフィールド名をそのまま eval で使うとエラーになります({} が付いているため)。
    なので、 rename で {} の付かない名前に変更します
  • その後、search や where で mv の件数が2件以上 という判定をすれば、mv が2件以上のイベントだけを取得できます

応用

maillog から、複数の宛先に送ったメールの、出現回数の分布を出す場合

index="idx_maillog" sourcetype="sendmail_syslog"
| fields to{}
| rename to{} as to
| eval num=mvcount(to)
| search num >= 2
| stats count(num) as 通数 by num

表示例

宛先数 出現回数(総通数)
2 1603
3 794
5 25
100 1
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?