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