修改Logstash中的时区



我有从MySQL表获取数据的logstash。数据包含一个时间戳字段,该字段保存在MySQL数据库的时区中,即UTC。因此,如果我从我的应用程序中保存"10:27:15"作为时间,DB中的行包含"08:27:15Z",因为我在欧洲/罗马,时间偏移了2小时
当我用MySQL插件将其放入logstash/es时,记录再次被"去分区",我的数据包含"06:27:15Z"
我正在尝试将正确的TZ应用于我的数据,以便在ES中获得"08:27:15Z"。我尝试在Logstash中转换时间戳时区作为输出索引名称,即复制一个字段并应用TZ重新解析它。
问题是我得到了一个"_dateparsefailure"解析
"tztstamp" => "2016-03-31T06:17:47.000Z"
使用
match => ["tztstamp", "ISO8601"]
这是正确的格式。我还尝试了其他为此目的构建的格式,但没有成功
服务器使用欧洲/罗马时区运行。"@timezone"字段会自动填充正确的UTC时间(即现在的2小时)
有什么想法可以让我的时间正确进入ES吗
要添加一个"可视化"示例,请在数据库中执行此操作
MySQL成为
Logstash如果我什么都不做

据我所知,logstash正在"欧洲/罗马"时区的机器上运行。在您的示例中,tstamp(2016-03-31 08:17:47)字段没有时区信息,因此logstash认为它在"欧洲/罗马"中。要让Logstash知道正确的时区,您必须为date过滤器指定timezone选项:

date {
    match => [ "tstamp", "yyyy-MM-dd HH:mm:ss"]
    timezone => "UTC"
}

此外,由于tstamp不是ISO8601格式,因此您将获得_dateparsefailure

相关内容

  • 没有找到相关文章

最新更新