準確而言,我正在處理一個擁有近百萬條記錄的日誌文件。由於它是帳單摘要日誌,因此客戶信息將以特定順序記錄。
我正在使用customized GROK Patterns
和logstash XML filter plugin
來提取足以跟蹤的數據。要跟蹤個人客戶活動,我使用「Customer_ID」作爲唯一密鑰。所以,即使我用多Logstash文件,多神交模式,所有他的信息可以使用以下界/聚集了他的「CUSTOMER_ID」(唯一鍵)將數據從Filebeats發送到多個Logstash文件時面臨問題
這裏是我的日誌文件的樣本,
7-04-2017 08:49:41 INFO abcinfo (ABC_RemoteONUS_Processor.java52) - Customer_Entry :::<?xml version="1.0" encoding="UTF-8"?><ns2:ReqListAccount xmlns:ns2="http://vcb.org/abc/schema/"/"><Head msgId="1ABCDEFegAQtQOSuJTEs3u" orgId="ABC" ts="2017-04-27T08:49:51+05:30" ver="1.0"/><Cust id="ABCDVFR233cd662a74a229002159220ce762c" note="Account CUST Listing" refId="DCVD849512576821682" refUrl="http://www.ABC.org.in/" ts="2017-04-27T08:49:51+05:30"
我神交模式,
grok {
patterns_dir => "D:\elk\logstash-5.2.1\vendor\bundle\jruby\1.9\gems\logstash-patterns-core-4.0.2\patterns"
match => [ "message" , "%{DATESTAMP:datestamp} %{LOGLEVEL:Logseverity}\s+%{WORD:ModuleInfo} \(%{NOTSPACE:JavaClass}\)%{ABC:Customer_Init}%{GREEDYDATA:Cust}"]add_field => { "Details" => "Request" }remove_tag => ["_grokparsefailure"]}
其存儲內部Pattern_dir我的自定義模式,
ABC (- Customer_Entry :::)
我的XML過濾器插件,
xml {
source => "Cust"
store_xml =>false
xpath => [
"//Head/@ts", "Cust_Req_time",
"//Cust/@id", "Customer_ID",
"//Cust/@note", "Cust_note", ]
}
所以,無論細節背後來** - Customer_Entry ::: **,我將能夠使用XML插件過濾,提取它(將存儲類似於多線編解碼器)。我已經編寫了5個不同的Logstash文件,用5種不同的Grok模式提取不同的客戶活動。它會告訴,
1.Customer_Entry
2.Customer_Purchase
3.Customer_Last_Purchase
4.Customer_Transaction
5.Customer_Authorization
上述所有神交模式具有不同的一組信息,這將被分組正如我前面所說的,通過Customer_ID。
我可以通過使用具有不同日誌文件的自定義模式,在Kibana中清楚地提取信息並將其可視化,而沒有任何缺陷。
由於我有100個日誌文件,每個日誌文件放入logstash,我選擇了Filebeats,但Filebeats只運行一個端口「5044」。我試圖用5個不同的端口運行5個不同的logstash文件,但那是行不通的,只有一個5的logstash文件被加載其餘的配置文件被閒置。
這裏是我的樣品filebeat output.prospector,
output.logstash:
主機: 「本地主機:5044」]
output.logstash:
主機: 「本地主機:5045」 ]
output.logstash:
主機: 「本地主機:5046」]
我不能添加所有的神交PATT erns在一個logstash配置文件中,因爲XML Filter插件需要源「GREEDYDATA」。在這種情況下,我將有5種不同的Source=>
5種不同的格羅克模式。 我甚至也試過,但那不起作用。
尋找更好的方法。
是的這是工作..!但我想確保,負載均衡解析日誌每一行?因爲正如我在我的問題中提到的,我有不同模式的多個配置文件。我不希望負載平衡留下任何這些模式。也可以介紹一下globbing?以及當我持有多個配置文件時globbing會如何增加並行性。因爲我在Input Prospector中使用了通配符。 –