使用 fluentd 收集数据时的毫秒数

Posted

技术标签:

【中文标题】使用 fluentd 收集数据时的毫秒数【英文标题】:Milliseconds are removed from time when data collected using fluentd 【发布时间】:2015-08-14 12:06:05 【问题描述】:

我使用 fluentd 作为数据收集器。但是从时间开始的毫秒数被删除了。您能否建议一个解决方案以在生成的输出中保持毫秒。

只有当我将 logstash_format 指定为 true 时才会解析时间。但是由于这个索引被创建为“Logstash **”,即使我指定了索引名称。如果我没有指定 'logstash_format true ',那么除了时间字段之外的所有内容都会被解析。

这是我的fluentd配置文件,

<source> 
    type tail 
    tag json.nwdata 
    path /etc/td-agent/access.log 
    pos_file /etc/td-agent/access.log.pos 
    format json
    time_format %Y/%m/%d %H:%M:%S.%L
    read_from_head true 
    time_key time 
    include_time_key true
</source>   

<match json.**> 
  type elasticsearch
  logstash_format true 
  time_key time 
  flush_interval 10s # for testing 
  index_name jsonlog 
  type_name jsonlogtype
</match> 

【问题讨论】:

【参考方案1】:

您应该在 time_format 参数中指定毫秒,或者使用这种格式(如果毫秒用点分隔)

time_format %Y/%m/%d %H:%M:%S.%L

或者这个(如果毫秒用逗号分隔)

time_format %Y/%m/%d %H:%M:%S,%L

【讨论】:

您好,我修改了我的问题。即使我以时间格式指定毫秒,解析的时间也不包含毫秒。 那我猜是因为这个open issue,不幸的是。【参考方案2】:

不幸的是,截至 2015 年 8 月,Fluentd 不支持毫秒时间。由于很多人都在询问这个功能,这里有一个正在进行的工作。

https://github.com/fluent/fluentd/pull/653

【讨论】:

以上是关于使用 fluentd 收集数据时的毫秒数的主要内容,如果未能解决你的问题,请参考以下文章

万能日志数据收集器 Fluentd - 每天5分钟玩转 Docker 容器技术(91)

Nginx容器日志收集方案fluentd+elasticsearch+kilbana

rancher使用fluentd-pilot收集日志分享

使用Fluentd收集Docker容器日志

再见 Logstash,是时候拥抱下一代开源日志收集系统 Fluentd 了

EFK(Elasticsearch + Fluentd + Kibana)方式进行Docker日志收集检索展示