Splunkでmetricsデータを可視化してみる

# SplunkでMetricsデータを可視化してみる
最近Datadogしかり、Mackrelしかり、stackdriverしかり、prometheusしかり、metricsデータを可視化して
モニタリングできるツールが数多くあるので、splunkでもやってみようと思う。

##Splunk側準備
collectdでデータを集める場合、HTTPのPOSTでsplunk側にデータをpushする形になる。

client(collectd) →splunk (HEC)

そのため、splunk側でHECを有効化する。

###HEC設定
Setting→Data inputsを選択。

![Screen Shot 2019-03-23 at 9.18.47 PM.jpg](https://qiita-image-store.s3.amazonaws.com/0/190656/ccb16383-0419-f642-15cf-4197f3345a14.jpeg)

Local inputのHTTP Event Collectorを設定する。

![Screen Shot 2019-03-23 at 9.19.33 PM.jpg](https://qiita-image-store.s3.amazonaws.com/0/190656/19ee0661-3d53-b988-9c5c-abe75bc7701e.jpeg)

右端にあるNew Tokenをclickして、Nameのみ入力してNext

![Screen Shot 2019-03-23 at 9.21.21 PM.jpg](https://qiita-image-store.s3.amazonaws.com/0/190656/50f37de9-1be5-57a3-5a46-c00023b08441.jpeg)

Sourcetypeにcollectd_httpを選択。

![Screen Shot 2019-03-23 at 9.22.53 PM.jpg](https://qiita-image-store.s3.amazonaws.com/0/190656/aa5152ec-2024-cd56-6738-1343cf3426cb.jpeg)



indexは、metrics用のindexを作成する必要があるので、下記の通り設定。
default indexの右からcreate new indexをClick

IndexName:適当
Index Data Type: Meticsを選択

![Screen Shot 2019-03-23 at 9.25.58 PM.jpg](https://qiita-image-store.s3.amazonaws.com/0/190656/4e0bc1e6-e4db-eed0-d001-1e8f57e195f1.jpeg)

作成完了すると、tokenが発行されるので、memoしておく。

再度、HECの設定画面にもどって、Global Settingの追加。

![Screen Shot 2019-03-23 at 9.28.17 PM.jpg](https://qiita-image-store.s3.amazonaws.com/0/190656/d18dcdd9-d88a-d21a-f6df-05a3f015a41b.jpeg)

Enableに変更して、save(httpsで通信したい場合は、httpsのcheck boxをOn)

![Screen Shot 2019-03-23 at 9.29.22 PM.jpg](https://qiita-image-store.s3.amazonaws.com/0/190656/907115b8-1938-e3a1-a1f9-9ee9ceb57d7e.jpeg)


###HECの取り込み確認
curlでデータをPOSTしてみる。

```ruby

[root@suda-demo01 ec2-user]# curl -k http://localhost:8088/services/collector/raw?sourcetype=collectd_http   -H "Authorization: Splunk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"                                      -d '[{"values":[164.9196798931339196],"dstypes":["derive"],"dsnames":["value"],"time":1505356687.894,"interval":10.000,"host":"collectd","plugin":"protocols","plugin_instance":"IpExt","type":"protocol_counter","type_instance":"InOctets"}]'
{"text":"Success","code":0}[root@suda-demo01 ec2-user]#

```

さっき入れたデータが見えること確認。

![Screen Shot 2019-03-23 at 9.42.37 PM.jpg](https://qiita-image-store.s3.amazonaws.com/0/190656/fdadf1a1-02ab-f2bc-15f8-19ab63736bdc.jpeg)


Splunk側の設定はこれで完了。

## Install collectd
```ruby

#ec2にcollectd installする
[root@ip-172-31-16-110 ec2-user]# yum install collectd collectd-write_http.x86_64

```

### collectdの設定追加

```ruby

[root@ip-172-31-16-110 ec2-user]# vim /etc/collectd.conf

#write httpで書き込むので、コメント解除
#さっき発行したtokenを入力

LoadPlugin write_http

<Plugin write_http>
    <Node "ip-172-31-16-110">
        URL "http://172.31.17.248:8088/services/collector/raw"
        Header "Authorization: Splunk XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX"
        Format "JSON"
        VerifyPeer false
        VerifyHost false
        Metrics true
        StoreRates true
    </Node>
</Plugin>

```

###collectd起動

```ruby

[root@ip-172-31-16-110 ec2-user]# /etc/init.d/collectd start
Starting collectd:                                         [  OK  ]
[root@ip-172-31-16-110 ec2-user]# ps axu | grep collectd
root      3015  0.0  0.1   4352  1356 ?        Ss   12:43   0:00 collectdmon -P /var/run/collectdmon.pid -c /usr/sbin/collectd -- -C /etc/collectd.conf
root      3030  0.0  0.2 110528  2208 pts/0    S+   12:43   0:00 grep --color=auto collectd
[root@ip-172-31-16-110 ec2-user]#

```

##splunkで確認してみる。
mcatalogコマンドで今取り込んでいるkey:value(metrics)を見てみる。

![Screen Shot 2019-03-23 at 10.02.31 PM.jpg](https://qiita-image-store.s3.amazonaws.com/0/190656/5393eaca-7197-3f7b-7f1a-e0f2d84ae80f.jpeg)

このままだと見づらいので、appを入れる。
https://splunkbase.splunk.com/app/4192/

Installすると、Search&ReportingのAppsの中にMeticsタブが作成されて、いままで取り込んだmeticsを見れる様になる。
左端のMetics箇所で、meticsを選択することで、右のグラフが生成される。
右側にあるAggrigationでMin/Maxなどの選択もできる。

![Screen Shot 2019-03-23 at 10.08.45 PM.jpg](https://qiita-image-store.s3.amazonaws.com/0/190656/c61d7a1a-d67b-2930-de32-73993d626faa.jpeg)


###Alertも見てみる
特定条件を設定して、Alertを送ることも可能。
パネルの...をClickして、Save as Alertを選択。

![Screen Shot 2019-03-23 at 10.11.07 PM.jpg](https://qiita-image-store.s3.amazonaws.com/0/190656/c3c6faa2-c42d-40a3-e8a4-f6244bbaf656.jpeg)

特定の閾値でメールや、webhook、slackにも通知可能。

![Screen Shot 2019-03-23 at 10.11.36 PM.jpg](https://qiita-image-store.s3.amazonaws.com/0/190656/2a0cf025-8614-ffa7-6131-5353e03e6467.jpeg)