Help us understand the problem. What is going on with this article?

Amazon Kinesisのデータをtd-agentで取り出す

More than 3 years have passed since last update.

Amazon Kinesisに入力されたデータをtd-agentで取り出します。

Untitled.png

Amazon Kinesisのデータの取り出しには、kinpiraさんが作ったfluent-plugin-in-kinesis( http://qiita.com/kinpira/items/cefaf9050429325498aa )というプラグインを使わせて頂きます。

今回の環境

今回は以下の環境を使います。
1.Amazon Kinesis
 ・ストリーム名:test-stream
2.Amazon EC2
 ・Ubuntu 14.04
 ・「1」で作成したストリームを操作可能なIAM Roleを付与
 ・AWS CLIをインストール

以降の操作はすべて「2」で作成したEC2上で実施します。

td-agentインストール

まずEC2にtd-agentをインストールします。

$ curl -L http://toolbelt.treasuredata.com/sh/install-ubuntu-trusty-td-agent2.sh | sh
$ td-agent --version
 td-agent 0.12.20

fluent-plugin-in-kinesisインストール

Amazon Kinesisのデータを取得するプラグイン「fluent-plugin-in-kinesis」をインストールします。

$ sudo td-agent-gem install fluent-plugin-in-kinesis
$ td-agent-gem list --local |grep fluent-plugin-in-kinesis
 fluent-plugin-in-kinesis (0.0.2)

td-agent.confを書き換え

td-agent.confを下記のように書き換え

/etc/td-agent/td-agent.conf
<source>
  type kinesis
  stream_name test-stream
  region ap-northeast-1
  load_records_limit 1000 # 一度に取得できるレコード数
  load_shard_interval 10  # 対象のストリームに存在するシャード一覧を確認する間隔(10秒に1回シャード一覧を確認する)
  load_record_interval 1  # データを取得する間隔
  tag test.stream
  state_dir_path /var/log/td-agent/save # Kinesisのデータを何処まで読み込んだか記録しておく為のディレクトリ
  format json
</source>

<match test.stream>
  type file
  path /var/log/td-agent/test-stream
</match>

state_dir_pathで指定したディレクトリを作成し、td-agentを再起動

$ sudo mkdir /var/log/td-agent/save
$ sudo chown td-agent.td-agent /var/log/td-agent/save
$ sudo service td-agent restart
$ sudo service td-agent status
 * td-agent is running

Amazon Kinesisからtd-agentでデータを取り出し

AWS CLIを使ってKinesisにデータを投入し
投入したデータをtd-agentで取得出来ている事を確認します。

Kinesisにデータ投入

$ aws kinesis put-record --stream-name test-stream --data '{"data":"test-data"}' --partition-key test-key --region ap-northeast-1
 {
     "ShardId": "shardId-000000000000", 
     "SequenceNumber": "49559397709724644070674617403929989783736592900930142210"
 }

td-agentでデータが取得出来ているか確認します。

$ tail -f /var/log/td-agent/test-stream.20160221.b52c48f9481c0ca59
 2016-02-21T15:00:15+00:00    test.stream {"data":"test-data2"}
gumi
Python、Erlang、Elixir などちょっと変わった技術でゲームをつくったりする会社。プログラマだけじゃなく、企画、デザイン、イラストなど開発全般揃ってます。
http://gu3.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした