[英]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.