带有错误时间戳和时间键的日志被忽略

时间:2019-05-07 15:17:02

标签: amazon-s3 fluentd

我想将我的保险柜日志发送到s3。基于这个issue,我这样做了:

/router/index.js

我希望每30分钟将日志发送到S3,并在目录中将其格式化为## vault input <source> @type tail path /var/log/vault_audit.log pos_file /var/log/td-agent/vault.audit_log.pos <parse> @type json </parse> tag s3.vault.audit </source> ## s3 output <match s3.*.*> @type s3 s3_bucket vault path logs/ <buffer time> @type file path /var/log/td-agent/s3 timekey 30m timekey_wait 5m chunk_limit_size 256m </buffer> time_slice_format %Y/%m/%d/%H%M </match>

实际上,我的日志平均每2到3分钟发送一次,并且S3中的输出时间格式从纪元开始,即:logs/2019/05/01/1030

(时间已在我的系统上正确设置)

1 个答案:

答案 0 :(得分:1)

这是示例配置,对我来说效果很好。

您需要确保将time传递到缓冲区部分,并尝试提供应明确显示的format类型。

通过检查代理启动日志来检查您的匹配表达式是否工作正常。另外,请尝试使用<match s3.**>

<match>
  @type s3

  s3_bucket somebucket
  s3_region "us-east-1"
  path "logs/%Y/%m/%d/%H"
  s3_object_key_format "%{path}/%{time_slice}_%{index}.%{file_extension}"
  include_time_key true
  time_format "%Y-%m-%dT%H:%M:%S.%L"

  <buffer tag,time>
    @type file
    path /fluentd/buffer/s3
    timekey_wait 5m
    timekey 30m
    chunk_limit_size 64m
    flush_at_shutdown true
    total_limit_size 256m
    overflow_action block
  </buffer>
  <format>
    @type json
  </format>
  time_slice_format %Y%m%d%H%M%S
</match>