Logstashは、ログ管理用のオープンソースソフトウェアであり、ELKスタックの一部として広く使用されています。
Logstashには、多くのソースからデータを収集、フィルタリング、保存し、多くの宛先に送信するための多数のプラグインが存在します。Treasure Dataプラグインを作成することで、LogstashからTreasure Dataにデータを取り込むことができます。
Logstash用のTreasure Dataプラグインをインストールできます。以下の例では、Logstashがすでにインストールおよび設定されていることを前提としています。
$ cd /path/of/logstash
$ bin/plugin install logstash-output-treasure_data
Validating logstash-output-treasure_data
Installing logstash-output-treasure_data
Installation successfulLogstashをTreasure Dataサービスで設定します。Logstashデータのインポート先となるdatabaseとtableの名前を指定する必要があります。APIキーは、TD Consoleのプロファイルから取得できます。write-onlyキーを使用してください。
input {
# ...
}
output {
treasure_data {
apikey => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
database => "dbname"
table => "tablename"
endpoint => "api-import.treasuredata.com"
}
}設定ファイルを使用してLogstashを起動します。
$ bin/logstash -f your.confTD Consoleでデータの行を確認できます。ログメッセージテキストはmessageカラムに保存され、追加のカラム(例: time、host、version)が存在します。

ログはテーブルに保存されます。2つ以上のテーブルにデータを挿入する場合は、設定ファイルに2つ以上のセクションを作成してください。
Logstash設定では、以下のオプションを指定できます:
- apikey(必須)
- database(必須)
- table(必須)
- auto_create_table [true]: テーブルが存在しない場合にテーブルを作成します
- endpoint [api.treasuredata.com]
- use_ssl [true]
- http_proxy [none]
- connect_timeout [60s]
- read_timeout [600s]
- send_timeout [600s]
プラグインはほとんどの場合、デフォルト値で動作しますが、一部のパラメータは不安定なネットワーク環境で役立つ場合があります。
このプラグインは、データを最大5分間メモリバッファにバッファリングします。Logstashプロセスがクラッシュすると、バッファリングされたデータは失われます。インポート中のデータ損失を回避するには、Logstashプラグインと共にtd-agentを使用することをお勧めします。
Logstashプラグインは、バッファリング、保存されたテーブル仕様、およびパフォーマンスの面で制限されています。
より柔軟で高性能なデータ転送には、Treasure Agent(td-agent)を使用できます。これを行うには、logstash-output-fluentdを使用します。
[host a]
-> (logstash-output-fluentd) -+
[host b] |
-> (logstash-output-fluentd) -+- [Treasure Agent] -> [Treasure Data]
[host c] |
-> (logstash-output-fluentd) -+Logstashをtd-agentノードにログを送信するように設定でき、そのtd-agentがすべてのデータをTreasure Dataに保存します。
# Configuration for Logastash
input {
# ...
}
output {
fluentd {
host => "your.host.name.example.com"
port => 24224 # default
tag => "td.database.tablename"
}
}
# Configuration for Fluentd
<source>
@type forward
port 24224
</source>
<match td.*.*>
type tdlog
endpoint api-import.treasuredata.com
apikey YOUR_API_KEY
auto_create_table
buffer_type file
buffer_path /var/log/td-agent/buffer/td
use_ssl true
num_threads 8
</match>Fluentd tdlogプラグインは、td.dbname.tablenameを解析することで、多くのdatabase-tableの組み合わせにデータを保存できます。Logstash設定ファイルで任意のdatabaseとtableのペアを設定できます。