当前位置: 首页 > 面试题库 >

fluentd损失了毫秒,现在日志消息在elasticsearch中被无序存储

充星腾
2023-03-14
问题内容

我正在使用fluentd将日志消息集中在elasticsearch中,并使用kibana对其进行查看。当我查看日志消息时,在同一秒内发生的消息是乱序的,@
timestamp中的毫秒数全为零

2015-01-13T11:54:01.000-06:00   DEBUG   my message

我如何流利地存储毫秒?


问题答案:

fluentd当前不支持亚秒级分辨率:https :
//github.com/fluent/fluentd/issues/461

我通过使用record_reformer向所有日志消息添加新字段来存储自纪元以来的纳秒来解决此问题

例如,如果您的流利性输入如下:

#
# Syslog
#
<source>
    type syslog
    port 5140
    bind localhost
    tag syslog
</source>

#
# Tomcat log4j json output
#
<source>
    type tail
    path /home/foo/logs/catalina-json.out
    pos_file /home/foo/logs/fluentd.pos
    tag tomcat
    format json
    time_key @timestamp
    time_format "%Y-%m-%dT%H:%M:%S.%L%Z"
</source>

然后将其更改为如下所示,并添加一个record_reformer,该记录添加一个纳秒级的字段

#
# Syslog
#
<source>
    type syslog
    port 5140
    bind localhost
    tag cleanup.syslog
</source>

#
# Tomcat log4j json output
#
<source>
    type tail
    path /home/foo/logs/catalina-json.out
    pos_file /home/foo/logs/fluentd.pos
    tag cleanup.tomcat
    format json
    time_key @timestamp
    time_format "%Y-%m-%dT%H:%M:%S.%L%Z"
</source>

<match cleanup.**>
    type record_reformer
    time_nano ${t = Time.now; ((t.to_i * 1000000000) + t.nsec).to_s}
    tag ${tag_suffix[1]}
</match>

然后将time_nano字段添加到您的kibana仪表板中,并使用它而不是@timestamp进行排序,一切都会井井有条。



 类似资料:
  • 我在windows上安装了ELK stack,并将Logstash配置为读取Apache日志文件。我似乎看不到Elasticsearch的输出。我对麋鹿很陌生。 环境设置 Elasticsearch:http://localhost:9200/ Logstash: Kibana:http://localhost:5601/ 以上三个应用程序都是作为服务运行的。 我创建了一个名为“logstash.

  • 我使用Log4J来记录应用程序运行时进程。这是我的log4j。属性文件: 我已经在Tomcat上部署了应用程序,并调用了一些它的方法来获取日志消息。在这些操作之后,在${CATALINA_HOME}/logs文件夹中,我得到了一些. log文件: 卡塔琳娜。2017-02-12.日志(没有我的应用信息) 在我的应用程序中,我得到的记录器为: 我还尝试用INFO和ERROR级别记录消息。 结果,我得

  • 在我的Android应用程序中,我收到使用Firebase发送的消息,问题不是所有消息都到达,有时消息到达非常慢。 在我的服务器端,我跟踪我发送到FCM的消息,我总是收到成功:来自FCM的1个响应,仍然有我在Android应用程序中没有收到的消息。 我认为FCM消息日志在上面描述的情况下会有很大的帮助,但我不确定是否存在此选项。 有办法浏览Firebase消息日志吗?

  • 问题内容: 我在截断数据时遇到了一些麻烦。我正在使用SQL的GETDATE()函数来获取当前日期和时间,并将它们输入数据库。但是,我只想保存日期和时间直到分钟。换句话说,我希望在输入新数据时保存dd/ mm / yyyy hh:mm:00.000或dd / mm / yyyy hh:mm。我该怎么做呢? 我应该注意我正在使用MS-SQL。 问题答案: 有许多方法可以做到这一点。 例如,您可以将生成

  • 我试图设置EFK堆栈与流利位在docker容器。虽然我可以将日志从Fluent-bit推送到elasticsearch,但当我试图集成Fluentd时,我遇到了问题。这是确切的错误msg: 意外错误\u class=Errno::EADDRNOTAVAIL error=“地址不可用-绑定(2)”端口24224的“流畅位” 我的docker中的服务组成文件 之前,我直接将日志从fluent bit推

  • 你好,我看到的日志信息只在某些类,不知道在哪里看。是我的原木模式搞错了还是?这是我的log4j配置,我将它与sfl4j一起使用: null 我创建的记录器是这样的,类字段: 和日志记录,如: 有什么想法吗? 更新 根据Petar Minchev的回答改为信息,但我仍然没有得到任何东西。 更新II 现在,在添加了一些依赖项之后,它可以在一些类上工作(仍然不能在其他一些类上工作)。有一些实现runna