我上周遇到了Fluentd。我一开始喜欢它(仍然这样),但似乎有一些漏洞阻止我使用它。
我正在尝试将我们的日志转发到两个不同的位置 - 一个用于存档的S3存储桶,以及一个用于使用kibana进行分析的Elasticsearch数据库。我查看了fluent-forest-plugin
,但我发现由于this而无效。我尝试使用copy
插件,但是我收到了这个错误:
[error]: config error file="/etc/td-agent/td-agent.conf" error="Other 's3' plugin already use same buffer_path: type = s3, buffer_path = /tmp/fluent-plugin-s3"
使用此配置
<source>
type tail
path /var/log/nginx/web__error.log
pos_file /var/tmp/nginx_web__error.pos
tag web__error
format /^(?<time>[^ ]+ [^ ]+) \[(?<log_level>.*)\] (?<pid>\d*).(?<tid>[^:]*): (?<message>.*)$/
</source>
<match web__error>
type copy
<store>
type s3
aws_key_id ACC_KEY
aws_sec_key SEC_KEY
s3_bucket log-bucket
path web__error/
buffer_path /tmp/fluent-plugin-s3
s3_object_key_format %{path}%{time_slice}_%{index}.%{file_extension}
time_slice_format %Y-%m-%d/%H
flush_interval 15s
utc
</store>
<store>
type elasticsearch
logstash_format true
logstash_prefix web__error
flush_interval 15s
include_tag_key true
utc_index true
</store>
</match>
根据我的阅读,一旦一个事件被一个匹配块捕获,它就不会被任何后续事件捕获。作为最后的手段,我需要知道是否有任何方法可以做到这一点,我还没有找到?
答案 0 :(得分:0)
这不是问题 - 我忘了我在其他配置文件中使用了相同的buffer_path
,这导致了这个错误。