きっかけ
- fluent-plugin-dynamodbを使っていたら躓いてしまい原因を調査したのでメモ
症状
発生条件
- Apache のログを解析時
- td-agent の
format
でapache2
を指定している場合
ちなみに下図のように format
が apache
だと症状は発生しない。
内容
- DynamoDB にログが記録されない
- td-agent.log に以下が記録される
切り分け memo
- ちなみに Apache のログは以下の通り
access.log
- fluent-plugin-dynamodb は AWS SDK を介して DynamoDB にアクセスしている
- td-agent の
apache2
format でuser
の列の値が-
だった場合にnull
が返ってきている - ちなみに out type が
text
やmongodb
の場合には下記の場合null
のまま記録される
text の場合
mongodb の場合
見解
- AWS SDK が
null
をよろしく解釈してくれずにDynamoDB
に記録出来ない - fluentd の
parser.rb
をもう少し詳しく読み解く必要がある
その他、気になった点
プロセスの個数
fluent-plugin-dynamodb
を使っている(td-agent.conf で type で指定してある)場合、td-agent
のプロセスが 4 つになっている(通常は 2 つという認識)
fluent-plugin-dynamodb 適用
fluent-plugin-dynamodb 非適用