Splunk SPL でmvindexマクロを利用し指定した番号の配列に格納されているマルチバリューデータの情報を取得する

mvindex を利用して指定した番号に格納されているマルチバリューデータの情報を確認します。

なお、マルチバリュー(Multi-value)とは、1つのフィールドの中に「複数の値」が入っている状態のことです。

たとえば、ip のフィールドの中のデータが [192.168.1.1, 10.0.0.5, 172.16.1.10]となっている場合、ipはマルチバリューだということができます。

mvindexを使ったSPLの書き方

以下のSPLは mvindexマクロを使い、マルチバリューである siteフィールドの何番目に”amazon*”が入っているか(配列番号)をチェックし、さらにその配列番号に格納されているデータをダッシュボード上に表示しています。

source="stream:Splunk_HTTPURI"
| eval org_site=site
| makemv site delim="."
| eval mv_num=mvfind(site, "amazon*")
| eval mv_data=mvindex(site, mv_num)
| table org_site site mv_num mv_data

上記SPLを実際に実行するとこうなります。

上記の例だと、3番目に “amazon*”が入っているのでmv_numが”2″(”0″からカウントしているので)となり、さらに site の 配列”2″のデータを取得すると”amazontrust”となっています。

参考サイト:

・Splunkでマルチバリューフィールドを扱う (eval関数編)(じゅのぶろ)
https://jnox.hatenablog.com/entry/splunk/eval-multi-value