お茶の子SAISAI  SAIを使ってresourceを可視化する

この記事はSplunk Advent Calendar 2019、14日目の記事です。

# はじめに
saeoshiです。2回目ですw
意外とみんな知らないSAIを使って、Universalforwarderとagent(collectd）を1ライナーでインストールして
簡単にサーバリソースを可視化するぞ！

SAIって・・・？

Splunk App for Infrastructure っていうApp。

https://splunkbase.splunk.com/app/3975/

Linux/Windows/K8S/Openshift/AWSのリソースを簡単に可視化できて、かつMetrics storeを使うので検索も早いすぐれもの。
Setupめんどくさくね？って思われるけど、実はおちゃのこSAISAIです(錯乱

# SplunkにSAIをインストール

https://splunkbase.splunk.com/app/3975/
https://splunkbase.splunk.com/app/4217/

からappをダウンロードして、GUIでUpしましょう。
インストールが終わるとこんな画面。

<img width="1680" alt="Screen Shot 2019-12-10 at 8.11.02 AM.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/1b10b73b-6ced-e7da-0aa0-0a9d519dbdd6.jpeg">

## HECの設定をつくる
Metricsを集めるとIndexerに送信するのに、HECが必要なので、Settingしてあげる。
Setting → Data inputsから、HECの設定。

New Tokenを選択して、いい感じに設定。
注意点としては、Metrics Storeを使うので、indexにem_metricsを指定。

<img width="797" alt="Screen Shot 2019-12-12 at 11.30.16 AM.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/c6710d5f-5bc1-46f8-86fe-32a11394b140.jpeg">

もう一回、Data inputの画面に移動して、Global Tokenをenable。

<img width="792" alt="Screen Shot 2019-12-10 at 8.17.30 AM.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/c0bbc885-7866-8613-dbdd-b4f0f69d0912.jpeg">

## Receive portをOnにしておく。
Settingから、Forwarding and recivingから、Configure reciveingを選択して、9997ポートをenableしておく。

## ワンライナーを生成する
SAIのAppに移動して、Add DataからLinuxを選択して、必要項目を埋める！

Monitoring Machineは、SAIが入ってるhostね。

<img width="802" alt="Screen Shot 2019-12-12 at 11.31.17 AM.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/1a615141-0b31-27f0-469d-fb1d72aceafd.jpeg">


入力が完了すると、下のほうにワンライナーが生成されるんでコピー。

```bash
export SPLUNK_URL=172.31.22.100 && export HEC_PORT=8088 && export RECEIVER_PORT=9997 && export INSTALL_LOCATION=/opt/  && export HEC_TOKEN=2ab72fc9-69b9-4644-8879-b1fe679d11b8 && export SAI_ENABLE_DOCKER=  && export DIMENSIONS= METRIC_TYPES=cpu,uptime,df,disk,interface,load,memory,processmon METRIC_OPTS=cpu.by_cpu LOG_SOURCES=/etc/collectd/collectd.log%collectd,\$SPLUNK_HOME/var/log/splunk/*.log*%uf,/var/log/syslog%syslog,/var/log/daemon.log%syslog,/var/log/auth.log%syslog AUTHENTICATED_INSTALL=No && wget --no-check-certificate http://172.31.22.100:8000/static/app/splunk_app_infrastructure/unix_agent/unix-agent.tgz && tar -xzf unix-agent.tgz || gunzip -c unix-agent.tgz | tar xvf - && cd unix-agent && bash install_uf.sh && bash install_agent.sh && cd .. && rm -rf unix-agent && rm -rf unix-agent.tgz
```

## クライアント側で実行する
UFとAgentを入れたいサーバにログインして、↑でコピーしたワンライナーを貼り付けると、ufとcollectdが
インストールされる。

```bash
root@ip-172-31-20-242:~/unix-agent# export SPLUNK_URL=172.31.22.100 && export HEC_PORT=8088 && export RECEIVER_PORT=9997 && export INSTALL_LOCATION=/opt/  && export HEC_TOKEN=2ab72fc9-69b9-4644-8879-b1fe679d11b8 && export SAI_ENABLE_DOCK$
R=  && export DIMENSIONS= METRIC_TYPES=cpu,uptime,df,disk,interface,load,memory,processmon METRIC_OPTS=cpu.by_cpu LOG_SOURCES=/etc/collectd/collectd.log%collectd,\$SPLUNK_HOME/var/log/splunk/*.log*%uf,/var/log/syslog%syslog,/var/log/daem$
n.log%syslog,/var/log/auth.log%syslog AUTHENTICATED_INSTALL=No && wget --no-check-certificate http://172.31.22.100:8000/static/app/splunk_app_infrastructure/unix_agent/unix-agent.tgz && tar -xzf unix-agent.tgz || gunzip -c unix-agent.tgz
| tar xvf - && cd unix-agent && bash install_uf.sh && bash install_agent.sh && cd .. && rm -rf unix-agent && rm -rf unix-agent.tgz
--2019-12-12 02:17:16--  http://172.31.22.100:8000/static/app/splunk_app_infrastructure/unix_agent/unix-agent.tgz
Connecting to 172.31.22.100:8000... connected.
HTTP request sent, awaiting response... 303 See Other
Location: http://172.31.22.100:8000/en-US/static/app/splunk_app_infrastructure/unix_agent/unix-agent.tgz [following]
--2019-12-12 02:17:16--  http://172.31.22.100:8000/en-US/static/app/splunk_app_infrastructure/unix_agent/unix-agent.tgz
Reusing existing connection to 172.31.22.100:8000.
HTTP request sent, awaiting response... 200 OK
Length: 234122 (229K) [text/plain]
Saving to: 'unix-agent.tgz'

unix-agent.tgz                                              100%[=========================================================================================================================================>] 228.63K  --.-KB/s    in 0.002s


・
・
・
done.
done.

 Installing any missing dependency...

Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 61 not upgraded.

 Step:Configure agent...

root@ip-172-31-20-242:~/unix-agent#
```

## SAIの画面で確認
5分くらいすると、entityが登録された！ってこんな感じででてくる。

<img width="547" alt="Screen Shot 2019-12-12 at 11.33.22 AM.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/d56b2cca-a494-b50f-1b67-5c3e571684c2.jpeg">

## Metricsを見ていく
Investigateタブをみると、登録したhostがこんな感じで表示されてくる。

<img width="1680" alt="Screen Shot 2019-12-12 at 11.34.42 AM.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/1604b0f2-b9c9-69ca-390e-abf3a022df15.jpeg">

Entity NameのIPをクリックすると、対象hostのoverviewが表示される。
CPU、Memory、プロセスの状態なんかが出てくる。

![FireShot Capture 043 - Metrics Analysis - Splunk App for Infrastructure - 54.199.160.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/bc924b21-e6d1-7d97-c41f-0d5055bec2f5.png)

Analyticsタブを開くと、それぞれのMetricsのDrilldownができる。

<img width="1680" alt="Screen Shot 2019-12-12 at 11.39.41 AM.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/b81d9e9a-eff9-cd05-89bc-17de179c7f8d.jpeg">

左側のMetricsタブで必要なMetricsを選択して、右側のAggregationでAvg,Sum/Split/timeshiftとか選択できる。

<img width="263" alt="Screen Shot 2019-12-12 at 11.45.28 AM.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/453f4748-1ba9-5a0f-53f2-e6b1cd97b34f.jpeg">

<img width="260" alt="Screen Shot 2019-12-12 at 11.45.35 AM.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/aa6f6454-f2c9-7b17-e667-f134a77d0a6c.jpeg">

<img width="259" alt="Screen Shot 2019-12-12 at 11.45.40 AM.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/bb7f9923-ab85-7a20-0c23-89e6342c6ea9.jpeg">

## hostをグルーピングしてみる
investigateの画面で、表示されたhostたちをグルーピングしてみる。
今回はOSで絞って、ubuntuグループを作る。WEBサーバとかでグルーピングできるようになる！

上のバーにos: ubuntuと入力して、save as groupボタンを押す。

<img width="1678" alt="Screen Shot 2019-12-12 at 12.09.56 PM.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/372c4273-bb84-cf03-8dd6-08163ccecbce.jpeg">


グループから対象グループを選択すると、こんな感じでgroupごとのリソースを可視化できる。

<img width="1673" alt="Screen Shot 2019-12-12 at 12.13.03 PM.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/04871200-66da-da22-e020-88b4d0835a87.jpeg">

##Alertもセットしてみる
表示されてるメトリクスの・・・ボタンをクリックすると、こんな感じでalertを作成するっていうダイアログがでるので
クリックしてみると

<img width="416" alt="Screen Shot 2019-12-12 at 12.19.33 PM.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/073fdb71-cba8-bfc1-7a7f-5684a1bd06b9.jpeg">

閾値・通知方法を設定するようにでてくるので、設定しておわり！簡単！

<img width="700" alt="Screen Shot 2019-12-12 at 12.20.13 PM.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190656/0632651e-b80b-7d3e-72cd-39d17cdafb49.jpeg">

#おわりに
こんな感じで簡単にMetricsを収集できるので、splunkでログ分析しつつ、metricsを見てっていうフローが使えるのではと思いました。

設定もcollectdベースなので、etc/collectdの設定を修正すればいけるっすね〜

そんな感じで！今年もお疲れっす！