Snaží shodit protokoly konci s určitými řetězec logstash

0

Otázka

Snažím se pokles protokoly pro 200 kódů v reakci na Prometheus škrábání. V Kibana to je pole zpráva:

November 17th 2021, 12:37:01.769    10.128.8.31 - - [17/Nov/2021:12:37:01 +0000] "GET /metrics HTTP/1.1" 200 36881 "-" "Prometheus/2.25.0"

Přidal jsem následující filtr v logstash config:

if [message] =~ /.*Prometheus\/2.25.0$/   {  
    drop { }  
  }

Ale záznamy jsou stále procházím, jsem zkoušel mnoho variant, ale nic, zdá se do práce, takže jsem si nejste jisti, co mi chybí?

Díky

elastic-stack elasticsearch elk logstash
2021-11-17 12:48:33
2
0

Když jste požitím logů Apache, můžete se pokusit analyzovat line pomocí předem definované grok vzor a pak jednoduše přetáhněte událost na základě user-agent.

Grokking the Apache log, které jste sdíleli pomocí COMBINEDAPACHELOG vzoru (další vzory lze nalézt zde) by analyzovat message pole takto:

{
  "clientip": [
    [
      "10.128.8.31"
    ]
  ],
  "ident": [
    [
      "-"
    ]
  ],
  "auth": [
    [
      "-"
    ]
  ],
  "timestamp": [
    [
      "17/Nov/2021:12:37:01 +0000"
    ]
  ],
  "verb": [
    [
      "GET"
    ]
  ],
  "request": [
    [
      "/metrics"
    ]
  ],
  "httpversion": [
    [
      "1.1"
    ]
  ],
  "rawrequest": [
    [
      null
    ]
  ],
  "response": [
    [
      "200"
    ]
  ],
  "bytes": [
    [
      "36881"
    ]
  ],
  "referrer": [
    [
      ""-""
    ]
  ],
  "agent": [
    [
      ""Prometheus/2.25.0""
    ]
  ]
}

Takže teď vše, co musíte udělat, je drop akce na základě hodnoty agent pole:

filter {
  # first grok the Apache log
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  # then drop if you want to ignore a given user-agent 
  if [agent] == "Prometheus\/2.25.0" {
    drop {}
  }
}
2021-11-17 13:01:52

štěstí s tím?
Val
0

Uvedení podívejte se na drop uvnitř if, kde jsem byl zkontrolovat kubernetes názvů děl jsem.e

if "example-namespace" in [kubernetes][namespace] {
mutate { add_field => { "proj_index" => "example-namespace"} }                    json {
  source => "message"
} 
if [message] =~ /.*Prometheus\/2.25.0"$/ {
drop { }
  }
 }
}

Nefungovalo uvedení drop podmíněné uvnitř filtru, ale mimo jakýkoliv konkrétní obor názvů tak to by se vztahovat na všechny z nich z nějakého důvodu.

2021-11-17 14:06:45

Jsi stále mnohem lépe grokking vaše záznamy, jak je znázorněno na mou odpověď, místo plnění regexp na ně.
Val

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................