とある社内ツールのnginxのログを, fluentd経由でElasticsearchに格納して, Kibanaで可視化するようにしていたのですが, 更にfluentdからNorikraに投げたいなー, と思い, td-agent.confを次のように書き換えました.
# Input
<source>
type tail
path /var/log/myapp/nginx/access.log
...
tag myapp.nginx.access
</source>
# Output
<match myapp.nginx.access>
type norikra
norikra xxx.xxx.xxx.xxx:xxxxx
...
</match>
<match myapp.nginx.access>
type elasticsearch
host xxx.xxx.xxx.xxx
port xxxx
...
</match>
...が, この書き換えてしまうと, 上に書かれたtype norikra
の設定は有効になるのですが, 下のtype elasticsearch
の設定は一切反映されず, fluentdからElasticsearchに対してログが送られなくなってしまいます.
こういう場合は, fluentdのcopyプラグインを使って, 次のように書けば期待通りに動いてくれます.
# Output
<match myapp.nginx.access>
type copy
<store>
type norikra
norikra xxx.xxx.xxx.xxx:xxxxx
...
</store>
<store>
type elasticsearch
host xxx.xxx.xxx.xxx
port xxxx
...
</store>
</match>
...というので小一時間ハマったので, 戒めのために記録を残しておきます.