Kinesisを使おうとして、Producerにfluentd以外に
最近「Kinesis エージェント」というものがある事を知ったので試してみる。
エージェントインストール
http://docs.aws.amazon.com/ja_jp/kinesis/latest/dev/writing-with-agents.html
こちらを参考にして進めたが、若干分かりづらい所もあったのでメモする。
アプリケーションサーバ(EC2)に、エージェントをインストールする。
sudo yum install –y aws-kinesis-agent
エージェント設定
/etc/aws-kinesis/agent.json
を編集する。
{
"cloudwatch.emitMetrics": true,
"cloudwatch.endpoint": "monitoring.ap-northeast-1.amazonaws.com",
"kinesis.endpoint": "https://kinesis.ap-northeast-1.amazonaws.com",
"awsAccessKeyId": "ACCESSKEY",
"awsSecretAccessKey": "SECRETKEY",
"flows": [
{
"filePattern": "/tmp/app.log*",
"kinesisStream": "yourkinesisstream"
}
]
}
-
kinesis.endpoint
を設定していないと、ログに下記の内容が出力されてパースまでは行うが送信しないで終わる。XXX records parsed (XXX bytes), and 0 records sent successfully to destinations
-
cloudwatch.emitMetrics
cloudwatch.endpoint
を設定しておけば
CloudWatchのカスタムメトリクスという所に、AWSKinesisAgentという項目が選択出来るようになって
BytesSent、RecordSendAttempts、RecordSendErrors、ServiceErrorsなどのメトリクスが取れる。
http://docs.aws.amazon.com/ja_jp/kinesis/latest/dev/agent-health.html -
awsAccessKeyIdで設定したユーザには、AmazonKinesisFullAccessのようなポリシー権限が必要。
エージェント実行
/etc/aws-kinesis/agent.json
のケツカンマに注意して、編集が終わったらサービスを起動する。
sudo service aws-kinesis-agent start
/var/log/aws-kinesis-agent/aws-kinesis-agent.log
ここにログが出力される。
Kinesis Streamsの設定は省略したけど
ストリーム名と、シャード数の設定だけなので、そんなにハマるポイントはない。
Happy Kinesising!!