Skip to content
Last updated

Scribeプロトコルを使用したログ保存のためのTD Agent

Treasure Agent(td-agent)はScribeプロトコル(Thriftベース)を理解します。td-agentは、既存のScribeインフラストラクチャと共存または置き換えることができます。

fluent-plugin-scribeを参照してください。このpluginはScribe _output_もサポートしています。

前提条件

  • TD Toolbeltを含むTreasure Dataの基本的な知識。

  • td-agentの基本的な知識。

Scribe入力の使用の指定

以下の設定により、Scribe入力pluginが有効になります:

<source>
  type scribe
  port 1463
</source>

Scribeプロトコルのcategoryフィールドは、td-agentのtagとして使用されます。test_db database内のwww_access tableにデータを保存する場合は、以下のようにLogEntryを送信してください(Ruby例)。

LogEntry.new
entry.category = 'td.test_db.www_access'
entry.message = 'abcde'
client.Log([entry])

このメッセージは次のように編成されます。

{
  message => 'abcde'
}

JSON文字列としてのメッセージ

半構造化データのメッセージフィールドには、多くの場合JSON文字列が含まれます。td-agentは_msg_format_オプションを使用して、JSON文字列をその場で解析します。

<source>
  type scribe
  port 1463
  msg_format json
</source>

以下のようにレコードを送信してください。entry.messageがJSON文字列であることに注意してください。

entry = LogEntry.new
entry.category = 'td.test_db.www_access'
entry.message = {'a' => 'b', 'c' => d}.to_json
client.Log([entry])

このメッセージは次のように編成されます。

{
  'a' => 'b',
  'c' => 'd',
}

その他のフォーマット

_msg_format_オプションは、textjsonurl_paramをサポートしています。url_paramのフォーマットは次のとおりです。

key1=val1&key2=val2&key3=val3