Splunk: タグの使い方


###### 実施環境： Splunk Free 8.2.2

 Splunk での検索において、複数の値を1つのグループとして扱いたい場合があります。
例えば、ある部門に属するホスト群や、ある権限を持つユーザ群をまとめて検索する場合です。
このようなときに役立つのが、タグという機能です。

### 1. 概要

タグは、フィールドと値のセットに対して付与されます。1つのタグに対し、フィールドと値のセットは複数設定できます。

例えば、ユーザ「 taro 」と「 hanako 」がグループAに所属しているとします。
この場合、「 user=taro 」と「 user=hanako 」両方に「 GroupA 」というタグを付与すれば、「 GroupA 」というタグを指定するだけで「 taro 」と「 hanako 」両方を検索できます。

![WS000531.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/4502eb26-5ebb-2d59-2d78-4eea4806967f.jpeg "タグイメージ1")

さらに、ユーザとタグは N 対 N の関係にあり、フィールドと値のセット1つに複数のタグを付与することも可能です。

例えば、先ほどの例についてユーザ「 taro 」がグループBにも所属している場合、「 user=taro 」に「 GroupB 」というタグを追加することができます。

![WS000532.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/910ab73c-103e-1038-2239-f7f3a9544bfd.jpeg "タグイメージ2")

加えて、1つのタグに指定するフィールドと値のセットについて、フィールドは必ずしも同じものである必要はありません。

例えば、先ほどの例についてグループBにホスト「 test 」も所属している場合、「 host=test 」に「 GroupB 」というタグを追加することができます。

![WS000534.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/3c9ee03f-0c02-3723-19b9-aae94d3a1e8e.jpeg "タグイメージ3")

### 2. 設定方法

「設定」⇒「タグ」を選択します。

![WS000509.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/30c8f06b-0f99-3208-a575-8f0adf4d5a63.jpeg "設定")

タグの一覧の表示方法を選択します。
各方法は、それぞれ次のような場合に有効です。

+ フィールド値のペア別表示：フィールドと値のセット1つに対しタグが複数付く場合
+ タグ名別表示：タグ1つに対しフィールドと値のセットが複数付く場合
+ 一意のすべてのタグオブジェクト：フィールドと値のセット1つに対しタグが1つ付く場合

ただ、基本的にはどれを選んでも表示、作成可能です。
ここではとりあえず一番先頭にある、「フィールド値のペア別表示」を選択します。

![WS000510.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/c0a9aeea-d474-13b4-95f8-e96f6392db49.jpeg "タグ")

タグの一覧が表示されます。

![WS000511.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/a3e0a583-81bd-0a22-b6c9-ef04ea64b35d.jpeg "タグ一覧")

ここで注意点として、 App をタグを作成したい App (今回は Search & Reporting )に変更してから新しいタグを押す必要があります。
後の画面を見ればわかる通り、タグの作成画面で App は選択できないため、ここで選択しておく必要があります。

![WS000514.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/8423b49e-1d53-91a2-deb0-446c3119a217.jpeg "タグ一覧2")

タグの設定を入力します。

![WS000515.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/69ab9efc-b83d-caad-3b07-2eea889350fb.jpeg "タグ作成")

ここでは以下の設定を入力します。

|項目名|値|
|:-|:-|
|フィールドと値のペア|`log_level=ERROR`|
|タグ名|`test_tag`|

これでタグが作成できました。

![WS000516.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/4c305bed-ad3c-8350-dd1e-f2309d146d43.jpeg "タグ一覧3")

### 3. 使用方法

試しに、以下の SPL に今回作成したタグを追加してみましょう。

```Splunk:Splunk
index="_internal" 
| stats count BY log_level
```

![WS000517.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/d0e4c52e-61dc-7b27-6b9e-676749a71563.jpeg "SPL")

タグを指定するフォーマットは3つあります。

1つ目は`tag=<タグ名>`という形で指定する方法です。
きわめてシンプルな形であり、直感的にもわかりやすいかと思います。

```Splunk:Splunk
index="_internal" tag=test_tag
| stats count BY log_level
```

![WS000519.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/1cb5e1af-0af6-2e3b-cab9-2a7f5e5198fe.jpeg "タグ使用1")

2つ目は、`tag::<フィールド名>=<タグ名>`という形で指定する方法です。
複数のフィールドにまたがって使用されているタグの場合は、この形でタグを適用するフィールド名を限定しなくてはいけない場合があります。

```Splunk:Splunk
index="_internal" tag::log_level=test_tag
| stats count BY log_level
```

![WS000520.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/b1f55357-0f79-d47d-b7d2-8cefbda12798.jpeg "タグ使用2")

3つ目は、`tag::<タグ名>`という形で指定する方法です。
2つ目からフィールド名の指定をなくした形で、利用場面は1つ目と同じです。

```Splunk:Splunk
index="_internal" tag::test_tag
| stats count BY log_level
```

![WS000521.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/5c60a93c-1d5a-e22a-0705-ae9d5521d534.jpeg "タグ使用3")

なお、タグの指定にはワイルドカードも使用可能です。

```Splunk:Splunk
index="_internal" tag=test*
| stats count BY log_level
```

![WS000535.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/52589abe-134b-d012-ea42-2bdd0ee29907.jpeg "ワイルドカード")

### 4. tagsコマンド

タグは検索だけでなく、情報の付与にも使用できます。
そのために使用するのが tags コマンドです。
このコマンドを使用すると、以下のように tag フィールドと tag::<フィールド名> フィールドが追加され、各イベントに適用されるタグが値として格納されます。
これにさらに stats コマンド等を追加することで、タグ毎の集計などが可能となります。

```Splunk:Splunk
index="_internal"
| stats count BY log_level
| tags
```

![WS000522.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/10e6c9f6-a964-a41b-5a6f-1acd84f4e047.jpeg "tags")