logstash - Logstash 如果字段包含值
问题描述
我正在使用 Filebeat 将日志转发到 Logstash。例如,我的文件名中包含“v2”:
C:\logs\Engine\v2.latest.log
我想对这些文件执行不同的 grok。我尝试了以下两种方法:
filter{
if "v2" in [filename] {
grok {
.....
.....
}
}
}
或者
filter{
if [filename] =~ /v2/ {
grok {
.....
.....
}
}
}
解决方案
好吧,我的问题是“文件名”字段是在过滤器之后生成的。所以我的语法是正确的,但它根本没有捕捉到任何东西,因为它不存在。但是,从 6.7 版开始,他们添加了一个“log.file.path”字段,这是我之前生成的“文件名”字段。
推荐阅读
- java - 编译 gremlin 遍历查询的响应
- c++ - 假想CPU解码指令
- python - 如何通过 OCR 将扫描的 PDF 转换为 Excel?
- json - Elasticsearch.NET (NEST) 在版本 7.x 中无法反序列化我的 POCO JSON
- laravel - 适用于 Windows 10 上 PHP 7.3 的 Apache Cassandra 驱动程序,带有 Laravel 5.8
- selenium - isDisplayed() 不工作,正在使用 pagefactory
- ios - 如何在 UICollectionViewHeader 中添加 UIView (swift 5)
- django - 'QueryDict' 对象没有属性 'first_name'
- python - 裁剪多边形并将其转换为灰度
- java - Maven version:update 不更新给定版本,它与 repo 比较并更新到最新而不是给定版本