繁体   English   中英

如何在 Yaml 文件中使用正则表达式进行 Logstash 翻译过滤器?

[英]How to use regex in Yaml file for Logstash Translate filter?

我正在尝试使用 Logstash 翻译过滤器来丰富 bro 正在生成的网络数据,并且我正在将这些数据摄取到我的 ELK 堆栈中。 例如,这是我手动丰富数据的方式:

translate {
field => "id.orig_h"
destination => "src_comp_name"
dictionary => [
    "192.168.1.1", "Home_Router",
    "192.168.1.150", "My_Laptop",
    "192.168.1.210", "My_Desktop"
    ]
}

虽然这有效,但它并不能满足我最终需要它的用途。 所以我试图将我的字典移动到一个 yaml 文件并使用正则表达式来匹配 IP 地址来为它们分配标签。 所以我编辑了我的翻译功能:

translate {
field => "id.orig_h"
destination => "src_comp_name"
dictionary_path => '/etc/logstash/config/compNames.yaml'
}

下面是我在yaml文件中做的大致内容:

'^192\.168\.1\.[1-2]$': "Home_Routers"
'^192\.168\.1\.1[0-9]{2}$': "Home_Laptops"
'^192\.168\.1\.2[0-9]{2}$': "Home_Desktops"

这将导致192.168.1.1/2被标记为路由器,在任何.100-199范围内被标记为Home_Laptops,并从任何.200-255被标记为"Home_Desktops" 我已经尝试了多种在 Yaml 文件中使用正则表达式的方法,但我要么收到了类似的错误

“LogStash::Filters::Translate:在 /etc/logstash/config/compNames.yaml 加载字典文件时无法将数组转换为哈希”*

或者 logstash 正确启动但没有标记应该匹配的流量。

关于如何在 yaml 文件中实现正则表达式匹配以通过 Logstash 翻译过滤器进行数据丰富的任何指导?

将此添加到翻译功能:

    "exact" => true,
    "regex" => true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM