Splunk SAI で VMware を監視する ( 利用編) 


## 概要

前回 [Splunkで VMware環境を監視するためのセットアップ編](https://qiita.com/maroon/private/2c3a1d227759525b9bed) を書きましたので、ここでは利用編として、どんな事ができるのか見ていきたいと思います。


## 1) Splunk SAIとは？

その前に今回利用したのは [Splunk App for Infrastructure (SAI)](https://splunkbase.splunk.com/app/3975/) と呼ばれるアプリになります。これはログだけでなくメトリック情報も見やすくしたツールであり、オンプレやクラウド、コンテナなどマルチ環境に対応したアプリになります。

Splunkに無償でアプリを追加して利用できますが、VMware / AWS を利用する際には ITSI という追加ライセンスが必要になります。 

ITSIは SAIだけでなく、機械学習を用いた予測や異常検知が行えたり、KPIベースでの監視が可能になったりするプレミアムサービスになります。
https://www.splunk.com/ja_jp/software/it-service-intelligence.html

今回は、VMware の監視に特化したいので ITSIの話は別の機会ということで。。

## 2) どんなデータが取り込めたか？　Indexデータを確認してみる。

それでは、まずはいきなりSAIの画面に入る前に、 前回取り込んだデータがどんなものか確認してみたいと思います。

Index を確認してみると、以下の Index が自動的に作成されております。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/6c26c00b-fa6e-968e-1641-638029bfa82c.png)

vmware-perf-metrics は、 metric データなので、後回しにして他の４つを見てみます。



### 2-1) vmware-inv 
vCenter APIとやりとりして、 inventory情報を取得したデータが保管されているようです。
VMware環境の全体像を知るには非常に重要な情報ですね。

vmware-inv に関連する sourcetypeをみると４つあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/eff15648-9070-6ce4-1145-d68a62d23a99.png)

これは VMwareが提供している APIを利用してとってきているオブジェクトであり、これ以外のオブジェクトには対応していないので注意が必要です。
実際にどんなデータを取ってこれるのかは、こちらの [vSphere API Reference](https://www.vmware.com/support/developer/vc-sdk/visdk400pubs/ReferenceGuide/)で確認できます。
左上の[Managed Object Types] をクリックして、沢山あるオブジェクトの中から対象のものを見つけてクリックすると、右側に確認できるFieldが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/a46d48b0-e76b-dd37-ad35-1bf5417df179.png)


### 2-2) vmware-taskevent 
vCenter APIとやりとりして、VMware イベントとタスク情報を取得しているようです。
vCenter上での活動履歴などがわかるので、こちらも重要なデータとなりそうです。

vmware-taskevent に関連する sourcetypeを見ると、予想通り taskと eventの２つがありました。

[vmware:events]
INDEXED_EXTRACTIONS = JSON
KV_MODE = none

[vmware:tasks]
INDEXED_EXTRACTIONS = JSON
KV_MODE = none

ただし、今回の私の環境だと spath しないと field抽出できませんでした。このままだと少し問題あるので、以下のように local/props.confを新規作成しました。

```:$SPLUNK_HOME/etc/apps/Splunk_TA_Infrastructure/local/props.conf
[vmware:events]
DATETIME_CONFIG =
INDEXED_EXTRACTIONS = none
LINE_BREAKER = ([\r\n]+)
NO_BINARY_CHECK = true
disabled = false
KV_MODE = json

[vmware:tasks]
DATETIME_CONFIG =
INDEXED_EXTRACTIONS = none
LINE_BREAKER = ([\r\n]+)
NO_BINARY_CHECK = true
disabled = false
KV_MODE = json
```

以下のように spathなしで Fieldが抽出できていればOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/6403c83f-a76d-6f04-38bd-2ed6757a54d9.png)





### 2-3) vmware-vclog 
vCenter の syslog データを保管しております。

今回は TCP:514 で受信してますが、受け取った後にログの中身によってソースタイプを複数に分けております。
どういう振り分け方法かは、 props.conf と transforms.conf で確認できます。（詳細は省略させていただきます）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/b9d1e20d-dd4c-1ab9-22b8-b64e07c9dd29.png)



### 2-4) vmware-esxilog 
ESXi ホストの syslogデータを保管しております。

こちらも vCenterと同じく、vmw-syslog で受け取ってから、ログの中身に応じて他の２つのソースタイプも適用されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/6d8ff17e-452a-2367-d108-53b0337bc754.png)


### 2-5) ダッシュボードは？
SAIには、VMware用のダッシュボードがないので、上記のログから自分で作る必要があります。

例えばこんな感じで作れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/e777a076-83ce-5741-af2c-e3ae784dd36d.png)



## 3) SAI を触ってみる

お待たせしました。それではようやく、SAIが提供している画面をみてみましょう。

その前に、vCenterから取得したメトリックデータは、Indexの vmware-perf-metrics に格納されます。
メトリックデータは、利用できる SPLが通常と異なっており、限られた SPLを使う必要があります。

中身はこんな感じになってます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/bc31c268-d7a3-1bb3-88a4-d1f2c3092a2b.png)

そこで SAIを使って、簡単にメトリックデータを扱うようにするのです。


### 3-1) Entity 画面

SAIのAppを開いて、一番左の「調査」画面を見ると、対象のvSphere のエンティティのリストと、それぞれ確認できるメトリック情報（Dimension)が確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/4db51c09-07f6-3d24-c455-9ea84a55c02f.png)

対象のエンティティが増えてきたら、サーチでフィルターをかけてグループ作成しておくといいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/45968286-fdee-9715-b26e-44837c732cd0.png)


### 3-2) Overview 画面

vCenter 画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/8596bf1a-b4bd-aea5-55b1-6b579b8aa56f.png)

ESXiホスト
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/cfc84b91-57ca-b65b-8a0f-3ff722563c00.png)

仮想マシン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/c2fefd78-baad-1ac2-0d7a-7bf3bc504446.png)

クラスター
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/26c036cb-8e2d-2f85-0748-bb7a9a37581e.png)


左側の CPUやメモリーなどを押すと、その他のメトリックなどが確認できます。


### 3-3) 分析画面

先ほどの画面は Overviewのため、さっと確認したいときに便利ですが、メトリック情報は他にも沢山あり、トラブル時などはこの情報だけではたりません。
そこで、上の方にある「分析」タブを開くと、他のメトリックや好きなメトリックを並べて確認することができます。

#### 確認したいメトリックを並べて表示 ( cpu.usage , memory.consumed, datastore.totalReadLatency ) 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/2a637caa-2d8b-c122-4106-0ba11f19b514.png)


#### 仮想マシン毎に比較
右の「分割基準」から、name を選択すると、仮想マシン名毎に表示してくれます。また topN　表示により、仮想マシン数が多くても制限して表示してくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/6e440eaa-1108-207c-30be-6e9ea67c2a9c.png)

#### 過去のデータと比較
右のペインで、画面の通り複製をします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/7083b732-1b5a-3ea3-13ad-eb087d9d6b12.png)

複製された画面で、「タイムシフト」から比較したい過去の時間を選択します。
すると、過去のデータとグラフが重なり比較ができます。(色が薄くて見辛いですが、点線で過去データが表示されております）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/7dd58cd4-2e59-e69e-8754-6e9b462a51a9.png)


#### 時間指定 & 自動更新
上の方に、時間範囲の指定や、自動更新ボタンがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/7e7c8bce-51b3-383b-7ee5-7de80bb05115.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/c6c1f88d-6955-b850-9a6a-d134dfacad80.png)


#### ログデータと一緒に比較

下記のように、メトリックデータと一緒にイベントログの出力数を一緒に表示できます。表示されているイベントの種類はソースタイプになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/7ddb95b5-b26c-a408-91d7-a0cc3e037a7f.png)


さらに、ログのグラフの右上にある、「パネルの最大化」を押すと、実際のログの中身を表示できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/67323789-39d8-51f3-2b35-8356bec9fc0c.png)

トラブルシューティングの時などは非常に便利ですよね。

#### アラート作成、サーチ画面や、ダッシュボード保存、CSV保存、PNG保存　などなど

さらに、グラフの右上をクリックすると、他にも色々と機能があります。　おー、お腹いっぱい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/aa85f4bb-01db-8135-2e6a-f65c6dbcaa03.png)



### 3-4) ダッシュボード

個別グラフをダッシュボードに追加できますし、まとめて追加も可能です。普段の運用でもみたいメトリックやイベントだけをみたい場合など便利です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/2e860fdb-d065-9c62-80cd-a206c63d4811.png)

これにより、通常のダッシュボードにメトリック情報も含めて確認することが可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/520ea986-0ac9-e4c2-16d9-e9a1c53d34c8.png)



### 3-5) アラート

最後に、アラート機能を紹介しておきます。

グラフの右上から、アラート設定ができましたが、実際のデータをみながら閾値などを設定したり、アラートアクションなどを選択できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/c7fe25e4-cd52-bda4-9c97-47a1af1afc1d.png)

アラートアクションは、「設定」画面で予め設定しておく必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392303/67177f1c-e9fe-ab7a-4cb0-be345cf0c964.png)




## 4) その他
Setup編でもご紹介しましたが、OS内の情報は、今回のVMwareモジュールだけでは取れないので、別途OS上に UFなどを入れて取得する必要があります。メトリック情報もcollectdなどを使いSAIで管理できるため統合運用を試しては如何でしょうか？

こちらは Linux環境を SAIに取り込むための参考記事です。 (by saeoshi さん)
https://qiita.com/saeoshi/items/ba05da112b17ae893709



## まとめ

VMware専用のダッシュボードがないため、従来の App for VMwareと比べると物足りなく感じますが、VMwareだけでなく、他のクラウド環境や OS/Appまで含めた統合管理ができると考えると非常に便利です。

またメトリック情報は通常のSplunkだと扱いにくいのですが、SAIだと簡単に可視化できていいですね。