ビックデータブームって
ビックデータブームって、一昔前のデータウェアハウスブームと同じような臭いがする。で、こういったものは、とにかくデータがないと始まらない。分析しようと思ってからデータを集め始めても、遅いのだ。
とはいうものの、分析対象とするデータをいろいろと集めるのもシンドイ作業。手元にあるデータで手っ取り早く試してみたい。
もう1つの問題は、データをどこに集めるのかということ。集めるための大容量のサーバを用意すべきなんだろうけど、手軽に試すという範疇を超えてしまう。
Treasure Data
こういった問題を解決する方法があった。Hadoop-based Big Data as a Service on the Cloud | Treasure Dataというのがあり、容量の制限はあるものの、試してみることができる。データは、syslogで収集しているものを使えばよい。とにかくまずは使ってみて、そこから何に適用できるかを考える。
td-agent
Treasure Dataに登録すると、そのままデータ登録・操作のプログラムのインストールとチュートリアルに進むようになっているので、その手順に従う。td-agentは、乱暴に言うと、fluentdの安定版。従って、td-agentが提供されていないOSでは、fluentdを使う。他にも、fluent-agent-liteというのがあるけど、手軽に試してみる段階では考えなくてよさそう。
td-agent(fluentd)は
- データを受け取って
- フォーマットの整形とかして
- 保存先に送信する
- データはsyslog
- フォーマットの整形はなし
- 保存先はTreasure Data
syslogからのデータ取得
td-agentは、syslogのようにデータを受け取ることが可能なので、<source>
type syslog
port 5140
bind 127.0.0.1
tag td
</source>
のように記述しておくと、port 5140で動いているsyslogdのように見える。なので、syslogd.confに
*.* @127.0.0.1:5140
と書いておくと、今のsyslogが受信している内容をすべてtd-agentに渡すことができる。Treasure Dataへ保存
<match td.*.*>
type tdlog
apikey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
auto_create_table
buffer_type file
buffer_path /var/log/td-agent/buffer/td
use_ssl true
flush_interval 10s
</match>
と記述しておくと、自動でfacility名でデータベースを作り、priority名でテーブルを作ってくれる。
td-agentを起動してエラーが出てなければ、syslogdにシグナルを送ってsyslogd.confの再読み込みをさせて、準備OK。