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

Syslog时间戳没有年份?

长孙知
2023-03-14
问题内容

我正在将日志回填到Elasticsearch中。因此,为了通过时间戳记中的日志日期创建索引,我使用如下date过滤器:

date {
                "locale" => "en"
                match => ["timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss", "ISO8601"]
                target => "@timestamp"
        }

我正在使用来自syslog的日志,并且syslog时间戳格式没有年份:

# Syslog Dates: Month Day HH:MM:SS
SYSLOGTIMESTAMP %{MONTH} +%{MONTHDAY} %{TIME}

因此,在使用日期过滤器之后,创建的索引就像logstash-2015.12.26
我在阅读2014年12月26日的日志一样。由于时间戳记在日志中不可用,因此默认情况下会选择当前年份。

知道如何制作正确的索引吗?


问题答案:

在Joda Time解析的字符串中没有一年的时间,Logstash当前默认为Logstash进程开始的年份。参见github.com/logstash-
plugins/logstash-filter-date错误#3
。作为临时的解决方法,添加一个临时过滤器以将正确的年份(2014)附加到时间戳字段的末尾,并调整日期过滤器模式以包括YYYY。

filter {
  mutate {
    replace => ["timestamp", "%{timestamp} 2014"]
  }
  date {
    locale => "en"
    match => ["timestamp",
              "MMM  d HH:mm:ss YYYY",
              "MMM dd HH:mm:ss YYYY",
              "ISO8601"]
  }
}


 类似资料:
  • 错误[42883]错误:函数datediff(未知,没有时区的时间戳,没有时区的时间戳)不存在提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。职位:36

  • 经过大量搜索,我找到了如何在@RESTController中将java.util.Date字段转换为JSON响应时停止序列化为时间戳。 有人知道为什么这不起作用吗?它把我难倒了!

  • 我知道这是一个非常常见的问题,但我觉得我找到的答案并没有真正解决问题。我将概述我的具体用例,并对来自其他SO答案和网络的信息进行总结。 对于我正在编写的服务,数据库条目被创建并存储在移动设备和我们的网站上,需要以两种方式同步。我们目前的目标是Android和iOS,它们都使用sqlite作为关系数据库。服务器端是使用Django和MySQL在Python中实现的,但将来可能会有其他解决方案取代它。

  • 我有一个Flink程序,它接受两个流,即数据/传感器读数流和警报规则流。我正在广播规则流,并将其连接到数据流以生成动态警报。ProcessingTime的一切都很好,但EventTime却不行。我已经分配了时间戳 > 当两个流(即带有时间戳的流)同时出现时,如何使用“EventTime”生成警报 我是否也必须为我的规则流分配时间戳和水印? 因为我的规则流只有在有任何添加/修改时才会有记录。是否有任

  • 本文向大家介绍sqlite时间戳转时间语句(时间转时间戳),包括了sqlite时间戳转时间语句(时间转时间戳)的使用技巧和注意事项,需要的朋友参考一下 下面是具体的实现代码: