Yeni bir kullanıcıyım, ELK stack. UWSGI'yi sunucum olarak kullanıyorum. Grows kullanarak benim uwsgi günlükleri ayrıştırmak ve sonra bunları analiz etmeliyim.Logstash Growst uwsgi günlükleri için filtre
İşte benim günlükleri biçimi şöyledir: -
[pid: 7731|app: 0|req: 357299/357299] ClientIP() {26 vars in 511 bytes} [Sun Mar 1 07:47:32 2015] GET /?file_name=123&start=0&end=30&device_id=abcd&verif_id=xyzsghg => generated 28 bytes in 1 msecs (HTTP/1.0 200) 2 headers in 79 bytes (1 switches on core 0)
benim filtreyi oluşturmak için
this link kullanılan, ancak bilgilerin çoğunu ayrıştırmak etmedi.
yukarıdaki bağlantısı tarafından oluşturulan filtre Burada
%{SYSLOG5424SD} %{IP}() {26 vars in 511 bytes} %{SYSLOG5424SD} GET %{URIPATHPARAM} => generated 28 bytes in 1 msecs (HTTP%{URIPATHPARAM} 200) 2 headers in 79 bytes (1 switches on core 0)
benim logstash-conf dosyasıdır. tarihin doğru biçimlendirilmiş
{
"message" => "[pid: 7731|app: 0|req: 357299/357299] ClientIP() {26 vars in 511 bytes} [Sun Mar 1 07:47:32 2015] GET /?file_name=123&start=0&end=30&device_id=abcd&verif_id=xyzsghg => generated 28 bytes in 1 msecs (HTTP/1.0 200) 2 headers in 79 bytes (1 switches on core 0)",
"@version" => "1",
"@timestamp" => "2015-03-01T07:57:02.291Z",
"host" => "cube26-Inspiron-3542",
"tags" => [
[0] "_grokparsefailure"
]
}
- Bu conf dosyası ile logstash çalışan üzerine
input { stdin { } }
filter {
grok {
match => { "message" => "%{SYSLOG5424SD} %{IP}() {26 vars in 511 bytes} %{SYSLOG5424SD} GET %{URIPATHPARAM} => generated 28 bytes in 1 msecs (HTTP%{URIPATHPARAM} 200) 2 headers in 79 bytes (1 switches on core 0)" }
}
date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
}
}
output {
stdout { codec => rubydebug }
}
, ben belirten bir hata mesajı alabilirsiniz. Nasıl böyle benim query parameters(filename, start,end, deviceid etc)
ve ClientIP
Ayrıca Response code
vb
, orada olduğu gibi, benim günlükleri diğer bilgileri ayıklamak yapmak herhangi yerleşik UWSGI günlük ayrıştırıcı kullanılabilecek böyle apache ve syslog için inşa biri olarak?
DÜZENLEME başıma bu yazdım, ama aynı hatayı atar:
%{SYSLOG5424SD} %{IP:client_ip}() {%{NUMBER:vars} vars in %{NUMBER:bytes} bytes} %{SYSLOGTIMESTAMP:date} %{WORD:method} %{URIPATHPARAM:request} => generated %{NUMBER:generated_bytes} bytes in {NUMBER:secs} msecs (HTTP/1.0 %{NUMBER:response_code}) %{NUMBER:headers} headers in %{NUMBER:header_bytes} (1 switches on core 0)
DÜZENLEME 2
Sonunda kendim çatlak edebiliyorum. Ben
**
- ?? grop filtreyi log uwsgi herhangi bir varsayılan vardır:
\[pid: %{NUMBER:pid}\|app: %{NUMBER:app}\|req: %{NUMBER:req_num1}/%{NUMBER:req_num2}\] %{IP:client_ip} \(\) \{%{NUMBER:vars} vars in %{NUMBER:bytes} bytes\} %{SYSLOG5424SD} %{WORD:method} /\?file_name\=%{NUMBER:file_name}\&start\=%{NUMBER:start}\&end\=%{NUMBER:end} \=\> generated %{NUMBER:generated_bytes} bytes in %{NUMBER:secs} msecs \(HTTP/1.0 %{NUMBER:response_code}\) %{NUMBER:headers} headers in %{NUMBER:header_bytes}
Ama sorularım hala kalır: Yukarıdaki günlüğü için Grok filtresi olacak Farklı sorgu parametreleri için farklı eşlemeler uygulanmaktadır. Grok'da farklı sorgu parametrelerini tek başına getiren herhangi bir şey var mı?