logstash - 如何在logstash中转换格式“yyyy-MM-dd HH:mm:ss
问题描述
我通过 Oracle 获取数据,数据库有一个字段 updated_at,格式为“ yyyy-MM-dd HH:mm:ss ”。但是,它在logstash 中已自动更改为ISO8601 格式。因此,我尝试更改格式“ yyyy-MM-dd HH:mm:ss ”,但出现类似 _dateparsefailure 的错误。这是我的配置文件。问题是什么?
input {
jdbc {
jdbc_validate_connection => true
jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/ojdbc8.jar"
jdbc_driver_class => "Java::oracle.jdbc.OracleDriver"
jdbc_connection_string => <connection string>
jdbc_user => <my username>
jdbc_password => <my password>
use_column_value => true
statement => "SELECT * FROM IP_INFO"
schedule => "*/1 * * * *"
charset => "UTF-8"
enable_metric => false
}
}
filter {
date {
match => [
"updated_at", "yyyy-MM-dd HH:mm:ss"
]
target => "updated_at"
}
}
output {
stdout {
codec => rubydebug
}
}
结果
{
"@timestamp" => 2020-10-14T07:34:03.755Z,
"updated_at" => 2020-10-14T04:44:37.000Z,
"tags" => [
[0] "_dateparsefailure"
],
"created_at" => 2020-09-29T15:56:37.000Z
}
所以,我只是将 updated_at 和 created_at 字段转换为“ yyyy-MM-dd HH:mm:ss ”。你能帮助我吗?
解决方案
日期过滤器的用途是解析时间戳并生成 Elasticsearch 自动将其视为日期的 ISO8601 时间戳。其他任何内容都不会被标识为日期,因此您将无法在查询中将该字段视为日期。
推荐阅读
- python - 如何使“Python / C API”中的函数可用?
- r - 替换 NA 值
- java - 测试在本地 Windows 机器上工作,但在 Linux 服务器上失败
- jsoup - 如何阻止 jsoup.clean 取消转义 € 和其他特殊字符
- python-3.x - 正则表达式使用 match 方法匹配 python3 中的模式
- c - 使用 Tcl C API 的 Lib 崩溃可能是由于错误的 refCount 使用
- prolog - Prolog:过滤目标列表并保留成功的目标
- javascript - 如何将 .content().filter 方法从 jquery 转换为 vanilla javascript
- swift - 最小化 macOS 应用程序 + 分布式通知中心(macOS 上的后台模式)
- c++ - qt中的弹出小部件