簡體   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