Splunk SPL で出現数の少ない順番にTop10を表示させる(tailマクロ)

tail マクロを利用すれば、特定の項目の出現回数を少ない順番に表示させることができます。

SPLの書き方

下記のSPLは、dest_ip(通信先)毎に出現回数をカウントし出現数の少ないTop10を表示させるSPLの例です。

sourcetype="fgt_traffic"
| stats count by dest_ip
| sort - count
| tail 10

実際に実行するとこうなります。

Splunkでのtailマクロ実行例

ちなみに多い順にTop10を表示させたい場合は、headを利用します。

http://k2-ornata.com/splunk-spl_stats_count/

Splunk SPL で特定の項目の出現回数でカウントし、さらにそのカウント数毎にカウントする

これをやるには最初のカウントの際に “as” を利用して別名をつけてあげるとうまくいきます。

SPLの書き方

下記のSPLは、SPLの例です。

sourcetype="fgt_traffic"
| stats count as dest_count by dest_ip
| stats count by dest_count
| sort - count
| head 10

実際に実行するとこうなります。

Splunkでの実行例

Splunk SPL で時間(_time)を指定した範囲でグループ化する(bucket, binマクロ)

bucket もしくは bin を利用して _tme を指定した時間の幅に分割した後、stats マクロを使用しすれば、その時間の幅毎に特定の項目の出現回数を表示させることができます。

SPLの書き方

下記のSPLは、ログデータを1時間毎に分割し、それぞれの時間内での dstip(通信先)毎の出現回数をカウントし表示させるSPLの例です。

sourcetype="fgt_traffic"
| bucket span=1h _time
| stats count by _time dstip

実際に実行するとこうなります。

Splunkでの bucketマクロ実行例(その1)

さらに、1時間で1,000回以上のアクセスがあったdstipを抽出するには以下の通り記載します。

sourcetype="fgt_traffic"
| bucket span=1d _time
| stats count by _time dstip
| where count > 1000
| table _time dstip count

こちらも実際に実行すると以下の通りとなります。

Splunkでの bucketマクロ実行例(その2)

参考サイト:

・コアラでもわかるSplunkシリーズ 時間毎集計する(Qiita)
https://qiita.com/toshikawa/items/8fa44753bc8f2a4c9cb0

Splunk SPL で特定の項目の出現回数をカウントする(statsマクロで count)

stats マクロで count を利用すれば、特定の項目の出現回数を表示させることができます。

SPLの書き方

下記のSPLは、dest_ip(通信先)毎に出現回数をカウントし表示させるSPLの例です。
なお、それぞれのdest_ipの出現回数をカウントした後、カウントが多い順に10件表示しています。

sourcetype="fgt_traffic"
| stats count by dest_ip
| sort - count
| head 10

実際に実行するとこうなります。

Splunkでの検索結果1

グラフ表示

上記検索を行った後、「視覚エフェクト」を選択すると、結果をグラフ表示することも可能です。

Splunkでの検索結果2

参考サイト:

・Splunk: Splunk入門(SPL編 3/6) – よく使用する統計関数11選
https://qiita.com/frozencatpisces/items/360b4a38212fe1876dbc

Splunk SPL で特定の項目の平均値と中間値を求める(statsマクロで max と median)

stats マクロで avg と median を利用すれば、特定の項目の平均値と中間値を表示させることができます。

SPLの書き方

下記のSPLは、dest_ip(通信先)毎に最大値(max)、最小値(min)、平均値(avg)、中間値(median)を表示させるSPLの例です。
なお、それぞのれ値を求めた後、最大値(max)が多い順番に並べ替え、最大値(max)が多い順に10件表示しています。

sourcetype="fgt_traffic"
| stats max(bytes_in), min(bytes_in) avg(bytes_in), median(bytes_in) by dest_ip
| sort - max(bytes_in)
| head 10

実際に実行するとこうなります。

Splunkでの検索結果

グラフ表示

上記検索を行った後、「視覚エフェクト」を選択すると、結果をグラフ表示することも可能です。

Splunkでの検索結果

参考サイト:

・Splunk: Splunk入門(SPL編 3/6) – よく使用する統計関数11選
https://qiita.com/frozencatpisces/items/360b4a38212fe1876dbc

Splunk SPL で特定のフィールドの出現回数をカウントし、多い順に表示させる方法

stats マクロで特定のフィールドの値の出現回数をカウントし、それを sortマクロで多い順に並べ替えることで実現できます。

index="(インデックス名)" sourcetype="(ソースタイプ名)" (フィールド名)=(カウントしたい値)
| stats count by (カウントしたいフィールド名)
| sort - count

(カウントしたいフィールド名)に src_ip や hostname など、カウントしたいフィールド名を入れます。

なお、1行目は index 以外は任意(必須ではない)です。

また、”|”は半角になっている必要があるので注意。(全角にすると”|”が緑色になります。)