実施環境: Splunk Free 8.2.2
Splunk での検索において、複数の値を1つのグループとして扱いたい場合があります。
例えば、ある部門に属するホスト群や、ある権限を持つユーザ群をまとめて検索する場合です。
このようなときに役立つのが、タグという機能です。
1. 概要
タグは、フィールドと値のセットに対して付与されます。1つのタグに対し、フィールドと値のセットは複数設定できます。
例えば、ユーザ「 taro 」と「 hanako 」がグループAに所属しているとします。
この場合、「 user=taro 」と「 user=hanako 」両方に「 GroupA 」というタグを付与すれば、「 GroupA 」というタグを指定するだけで「 taro 」と「 hanako 」両方を検索できます。
さらに、ユーザとタグは N 対 N の関係にあり、フィールドと値のセット1つに複数のタグを付与することも可能です。
例えば、先ほどの例についてユーザ「 taro 」がグループBにも所属している場合、「 user=taro 」に「 GroupB 」というタグを追加することができます。
加えて、1つのタグに指定するフィールドと値のセットについて、フィールドは必ずしも同じものである必要はありません。
例えば、先ほどの例についてグループBにホスト「 test 」も所属している場合、「 host=test 」に「 GroupB 」というタグを追加することができます。
2. 設定方法
「設定」⇒「タグ」を選択します。
タグの一覧の表示方法を選択します。
各方法は、それぞれ次のような場合に有効です。
- フィールド値のペア別表示:フィールドと値のセット1つに対しタグが複数付く場合
- タグ名別表示:タグ1つに対しフィールドと値のセットが複数付く場合
- 一意のすべてのタグオブジェクト:フィールドと値のセット1つに対しタグが1つ付く場合
ただ、基本的にはどれを選んでも表示、作成可能です。
ここではとりあえず一番先頭にある、「フィールド値のペア別表示」を選択します。
タグの一覧が表示されます。
ここで注意点として、 App をタグを作成したい App (今回は Search & Reporting )に変更してから新しいタグを押す必要があります。
後の画面を見ればわかる通り、タグの作成画面で App は選択できないため、ここで選択しておく必要があります。
タグの設定を入力します。
ここでは以下の設定を入力します。
項目名 | 値 |
---|---|
フィールドと値のペア | log_level=ERROR |
タグ名 | test_tag |
これでタグが作成できました。
3. 使用方法
試しに、以下の SPL に今回作成したタグを追加してみましょう。
index="_internal"
| stats count BY log_level
タグを指定するフォーマットは3つあります。
1つ目はtag=<タグ名>
という形で指定する方法です。
きわめてシンプルな形であり、直感的にもわかりやすいかと思います。
index="_internal" tag=test_tag
| stats count BY log_level
2つ目は、tag::<フィールド名>=<タグ名>
という形で指定する方法です。
複数のフィールドにまたがって使用されているタグの場合は、この形でタグを適用するフィールド名を限定しなくてはいけない場合があります。
index="_internal" tag::log_level=test_tag
| stats count BY log_level
3つ目は、tag::<タグ名>
という形で指定する方法です。
2つ目からフィールド名の指定をなくした形で、利用場面は1つ目と同じです。
index="_internal" tag::test_tag
| stats count BY log_level
なお、タグの指定にはワイルドカードも使用可能です。
index="_internal" tag=test*
| stats count BY log_level
4. tagsコマンド
タグは検索だけでなく、情報の付与にも使用できます。
そのために使用するのが tags コマンドです。
このコマンドを使用すると、以下のように tag フィールドと tag::<フィールド名> フィールドが追加され、各イベントに適用されるタグが値として格納されます。
これにさらに stats コマンド等を追加することで、タグ毎の集計などが可能となります。
index="_internal"
| stats count BY log_level
| tags