2017-05-12 2 views
0

Hatte meinen Kopf gegen die Wand über diese - begann mit Logstash und Grok vor 2 Tagen und machte ein bisschen Fortschritte, aber ich habe festgestellt, auf dieses besondere Problem den ganzen Abend.Grok Parsing negative Zahlen in Kibana benutzerdefinierte Felder

Ich habe die folgenden Zeilen der Eingabe von einer Protokolldatei in logstash aufgenommen.

'John Pence ':' Abnahme': - 0,01: -1,03093: 0,96: 0,97

'Dave Pound': 'Erhöhung': 0,04: 1,04000: 0,97: 0,93

mit dem folgenden grok Filter passt:

match => { "message" => "%{QS:name}:%{QS:activity}:%{BASE16FLOAT:Change}:%{BASE16FLOAT:Percentage}: %{BASE16FLOAT:CurrentPrice}: %{BASE16FLOAT:PreviousPrice}" } 
match => { "message" => "%{QS:Name}:%{QS:Activity}:-%{BASE16FLOAT:Change}:-%{BASE16FLOAT:Percentage}: %{BASE16FLOAT:CurrentPrice}: %{BASE16FLOAT:PreviousPrice}" } 

Dies erzeugt die folgende Ausgabe in Kibana: enter image description here

Wie Sie sehen können - ich kann nicht die negativen Zahlen richtig angezeigt bekommen, wie würde man das Minuszeichen in einem grok Filter richtig zeigen? Wäre sehr dankbar für einige Hilfe!

Antwort

1

können Sie einfach das Muster NUMBER grok anstelle von BASE16FLOAT

Die folgenden grok Muster funktionieren perfekt auf Ihrer Eingabe:

grok { 
    "match" => {"message" => "%{QS:name}:%{QS:activity}:%{NUMBER:Change}:%{NUMBER:Percentage}: %{NUMBER:CurrentPrice}: %{NUMBER:PreviousPrice}"} 
} 
+0

Perfect, dank Val! Unsicher, warum der grok Debugger mir das nicht gegeben hat ... – LLB3000

+0

Ich habe Mühe herauszufinden, wie ich diese benutzerdefinierten Felder aggregierbar machen könnte - ich würde mich über jede Hilfe freuen, die Sie anbieten können. – LLB3000

+0

Froh, dass es geholfen hat! Fühlen Sie sich frei, eine neue Frage zu diesem letztgenannten Thema zu erstellen. – Val