Skip to content
Last updated

CSV、TSV、LTSVフォーマットを使用したログのインポート

Treasure Agent (td-agent) から CSV、TSV、LTSV 形式のログをインポートして、アクセスログをクラウドに継続的にインポートできます。

td-agentはログローテーションを処理します。td-agentはログの最終位置を記録し、td-agentプロセスがダウンした場合でも各行が正確に1回だけ読み取られることを保証します。ただし、情報はファイルに保持されるため、ファイルが破損すると「exactly once」の保証は無効になります。

前提条件

td-agentはFluentdプロジェクトの下にあります。td-agentはTreasure Data用のカスタムプラグインでFluentdを拡張しています。

td-agentのインストール

アプリケーションサーバーにtd-agentをインストールします。td-agentは、あらゆる種類の時系列データのストリーミングアップロード専用のデーモンプログラムです。td-agentはFluentdプロジェクトの下にあります。td-agentはTreasure Data用のカスタムプラグインでFluentdを拡張しています。

td-agentをセットアップするには、以下の記事を参照してください。Linuxシステム用のdeb/rpmパッケージを提供しています。

td-agent.confの変更

apikeyオプションを設定して認証キーを指定します。APIキーはTD Consoleから確認できます。

/etc/td-agent/td-agent.confにアクセスして、apikeyオプションを設定します。

YOUR_API_KEYは、あなたのAPIキー文字列に置き換えてください。

# Tailing the CSV formatted Logs
<source>
  type tail
  format csv
  path /path/to/log/foo.csv
  pos_file /var/log/td-agent/foo.pos
  tag td.production.foo

  keys key1, key2, key3
  time_key key3
</source>

# Tailing the TSV formatted Logs
<source>
  type tail
  format tsv
  path /path/to/log/bar.tsv
  pos_file /var/log/td-agent/bar.pos
  tag td.production.bar

  keys key1, key2, key3
  time_key key3
</source>

# Tailing the LTSV formatted Logs
<source>
  type tail
  format ltsv
  path /path/to/log/buz.ltsv
  pos_file /var/log/td-agent/buz.pos
  tag td.production.buz

  time_key time_field_name
</source>

# Treasure Data Input and Output
<match td.*.*>
  type tdlog
  endpoint api.treasuredata.com
  apikey YOUR_API_KEY
  auto_create_table
  buffer_type file
  buffer_path /var/log/td-agent/buffer/td
  use_ssl true
</match>

以下の行が配置されたら、agentを再起動します。

$ sudo /etc/init.d/td-agent restart

td-agentはファイルをtailし、ログをバッファリングし(var/log/td-agent/buffer/td)、自動的にログをクラウドにアップロードします。

データインポートの確認

SIGUSR1シグナルを送信すると、td-agentのバッファがフラッシュされ、アップロードがすぐに開始されます。

# append new records to the logs
$ ...

# flush the buffer
$ kill -USR1 `cat /var/run/td-agent/td-agent.pid`

データが正常にアップロードされたことを確認するには、次のようにtd tablesコマンドを実行します。

$ td tables
+------------+------------+------+-----------+
| Database   | Table      | Type | Count     |
+------------+------------+------+-----------+
| production | foo        | log  | 1         |
| production | bar        | log  | 3         |
| production | buz        | log  | 5         |
+------------+------------+------+-----------+

正しく動作しない場合は、/var/log/td-agent.logを確認してください。td-agent:td-agentがログを読み取る権限を持っている必要があります。

次のステップ

従来のRDBMSよりも柔軟なスキーマメカニズムを提供しています。クエリには、Hive Query Languageを活用しています。