2013年4月27日土曜日

splunkってなんじゃ?(splunk stormでfluentd)

前回の記事でsplunk enterpriseを利用しましたが、今回はsplunk stormを使用してみます。
enterpriseはインストール型でしたが、stormはサービス型です。
stormでは無料枠ではデータストレージが1GBまでとなっています。

また今回はsplunkのfluentプラグインがあるので、ログをfluentでstormに投げてみたいと思います。

splunk stormに登録して、プロジェクトを作ります。




ストレージ容量を決めます。1GBまでは無料です。



データの入力を設定します。
ここではAPIを利用するように設定します。


APIのリンクをクリックすると、APIの認証とエンドポイントの情報が表示されます。
  • AccessToken
  • API Hostname
  • ProjectID




次に、fluentdの設定です。
splunkのAPIに対してログを送信するBufferedOutputプラグインを作成している方がいたので、それを使ってみます。

fluent-plugin-splunkapi
https://github.com/k24d/fluent-plugin-splunkapi

# /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-splunkapi


ソースやドキュメントを見ながらstorm用の設定を行います。
今回もapacheのログを送信します。

# vi /etc/td-agent/td-agent.conf
<source>
  type tail
  format apache
  path /var/log/httpd/access_log
  tag server1.apache.access
</source>

<match *.apache.*>
  type splunkapi
  access_token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  project_id yyyyyyyyyyyyyyyyyyyyyyy
  protocol storm
  sourcetype fluent
  format text
  flush_interval 10s
  buffer_type memory
  buffer_queue_limit 16
</match>


access_tokenとproject_idには、上述のAPIの情報画面の情報を設定します。
fluentdを起動します。

# /etc/init.d/td-agent start


上の画像の「Explore data」をクリックすると、ログデータのサマリーが表示されます。
ソース欄に、fluentで設定したタグ名が表示されています。



このリンクをクリックすると、収集されたログデータの一覧が表示されます。




enterprise版と同様に、レポートを作成することもできますし、ダッシュボードに各種グラフを表示することもできます。





splunk stormでは、無料枠では1GB制限の他、1プロジェクトまでしか登録できないようです。

サービス型なので、サーバーメンテが必要ないのは良い点ですが、基本的にもっさりしています。
Plan選択画面で、2GB以上の有料枠に「Guaranteed response time for reported issues」とあるので
有料だとパフォーマンスが改善するのかもしれません。

自社でインフラを持ちたくなく、カスタマイズもそこまで必要ないという場合は、このようなサービス型のプロダクトは有効だと思います。

以上です。