SplunkでMetricsデータを可視化してみる
最近Datadogしかり、Mackrelしかり、stackdriverしかり、prometheusしかり、metricsデータを可視化して
モニタリングできるツールが数多くあるので、splunkでもやってみようと思う。
Splunk側準備
collectdでデータを集める場合、HTTPのPOSTでsplunk側にデータをpushする形になる。
client(collectd) →splunk (HEC)
そのため、splunk側でHECを有効化する。
HEC設定
Setting→Data inputsを選択。
Local inputのHTTP Event Collectorを設定する。
右端にあるNew Tokenをclickして、Nameのみ入力してNext
Sourcetypeにcollectd_httpを選択。
indexは、metrics用のindexを作成する必要があるので、下記の通り設定。
default indexの右からcreate new indexをClick
IndexName:適当
Index Data Type: Meticsを選択
作成完了すると、tokenが発行されるので、memoしておく。
再度、HECの設定画面にもどって、Global Settingの追加。
Enableに変更して、save(httpsで通信したい場合は、httpsのcheck boxをOn)
HECの取り込み確認
curlでデータをPOSTしてみる。
[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]#
さっき入れたデータが見えること確認。
Splunk側の設定はこれで完了。
Install collectd
# ec2にcollectd installする
[root@ip-172-31-16-110 ec2-user]# yum install collectd collectd-write_http.x86_64
collectdの設定追加
[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起動
[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)を見てみる。
このままだと見づらいので、appを入れる。
https://splunkbase.splunk.com/app/4192/
Installすると、Search&ReportingのAppsの中にMeticsタブが作成されて、いままで取り込んだmeticsを見れる様になる。
左端のMetics箇所で、meticsを選択することで、右のグラフが生成される。
右側にあるAggrigationでMin/Maxなどの選択もできる。
Alertも見てみる
特定条件を設定して、Alertを送ることも可能。
パネルの...をClickして、Save as Alertを選択。
特定の閾値でメールや、webhook、slackにも通知可能。