elasticsearch - Logstash 忽略多个日期过滤器
问题描述
我正在制作一个logstash .conf,在我的过滤器上,我需要提取两个时间戳的工作日,但Logstash 表现得好像他只做一个匹配,例如:
Timestamp 1: Mar 7, 2019 @ 23:41:40.476 . => Thursday
Timestamp 2: Mar 1, 2019 @ 15:22:47.209 . => Thu
预期产出
Timestamp 1: Mar 7, 2019 @ 23:41:40.476 . => Thursday
Timestamp 2: Mar 1, 2019 @ 15:22:47.209 . => Fri
这些是我的过滤器:
date {
match => ["[system][process][cpu][start_time]", "dd-MM-YYYY HH:mm:ss", "ISO8601"]
target => "[system][process][cpu][start_time]"
add_field => {"[Weekday]" => "%{+EEEEE}"}
}
date {
match => ["[FechaPrimero]", "dd-MM-YYYY HH:mm:ss", "ISO8601"]
target => "[FechaPrimero]"
add_field => {"[WeekdayFirtsDay]" => "%{+EE}"}
}
解决方案
这是因为默认情况下%{+EEEEE}和%{+EE}考虑到@timestamp字段,并且没有用户制作的字段(不知道它是否写在文档中)
据我所知,这样做的唯一方法是使用 ruby 代码的一部分来提取星期几,如下所示:
ruby {
code => 'event.set("Weekday", Time.parse(event.get("[system][process][cpu][start_time]").to_s).strftime("%A"))'
}
ruby {
code => 'event.set("FechaPrimero", Time.parse(event.get("FechaPrimero").to_s).strftime("%a"))'
}
推荐阅读
- css - 如果两个元素都存在于同一级别,则切换规则 - SCSS
- javascript - 如何修复:forEach 函数中的 setTimeout 函数未遵循正确的超时
- javascript - 如何让 React 开发工具在本地工作?
- apache-spark-sql - 在 spark sql 中获取以分钟或秒为单位的时差
- java - 在 cdi 范围内使用 keycloak 角色授权时出现问题
- sumo - 如何在自定义场景中添加额外的设施?
- tkinter - 如何将焦点设置到 ttk.Entry 小部件?
- python - 使用地图创建数据框导致酸洗错误
- java - 内部存储:为什么 getFilesDir() 给了我错误的文件夹?
- javascript - 地图组件 .getWidth() 不是函数(GeoExt3、MapFish、OpenLayers 4)