Logstash 日志存储日期不适用于HH:mm:ss.SSS,但适用于HH:mm:ss,SSS
当我检查elasticsearch输出时,它显示的时间戳似乎不正确 对于HH:mm:ss.SSS(工作不正常)->apache.logLogstash 日志存储日期不适用于HH:mm:ss.SSS,但适用于HH:mm:ss,SSS,logstash,Logstash,当我检查elasticsearch输出时,它显示的时间戳似乎不正确 对于HH:mm:ss.SSS(工作不正常)->apache.log "message" : "[DEBUG] 2020-12-05 12:26:18.254... "@timestamp" : "2021-01-11T03:31:10.314Z", 对于HH:mm:ss,SSS(工作正常)->eai\u new.log "timestamp&quo
"message" : "[DEBUG] 2020-12-05 12:26:18.254...
"@timestamp" : "2021-01-11T03:31:10.314Z",
对于HH:mm:ss,SSS(工作正常)->eai\u new.log
"timestamp" : "2020-11-23 06:05:05,297",
"message" : "2020-11-23 06:05:05,297
"@timestamp" : "2020-11-22T22:05:05.297Z"
除此之外,timestamp和@timestamp有什么区别
下面是我的日志代码
filter {
if [name_of_log] in ["apache"] {
grok {
match => { "message" => "\[%{LOGLEVEL:level}\] %{TIMESTAMP_ISO8601:timestamp} %{GREEDYDATA:msg}" }
}
date {
match => [ "timestamp" , "yyyy-MM-dd HH:mm:ss.SSS" ]
}
} else {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{GREEDYDATA:msg}" }
}
date {
match => [ "timestamp" , "yyyy-MM-dd HH:mm:ss,SSS" ]
}
}
}
logstash中的日期过滤器有一个目标字段,它将刚刚解析的值放在该字段中。默认字段的名称为@timestamp 因此,当数据解析正常时,解析过程的结果保存在@timestamp字段中。 您有关于logstash的日期筛选器的更多详细信息 如果解析操作不起作用,@timestamp由elsaticsearch自己和插入日期对应的值放入elasticsearch端。如果在elasticsearch示例中未设置特定配置(用于映射),则这是默认行为 时间戳字段在grok操作期间设置。在您的代码中,这将在logstash筛选器配置的这一部分中设置时间戳字段{timestamp_ISO8601:timestamp}:
grok {
match => { "message" => "\[%{LOGLEVEL:level}\] %{TIMESTAMP_ISO8601:timestamp} %{GREEDYDATA:msg}" }
}