splunk> Beispiele
Ergebnisse Filtern | |
Ergebnisse filtern die explizit „fail“ in
ihrem Text beeinhalten Status=0 sind |
… | search fail status=0 |
Duplikate der Ergebnisse mit demselben
Host filtern |
… | dedup host |
Nur solche Ergebnisse erfasssen dessen
Feld „_raw“ non-routable IP Adressen der Klasse A (10.0.0.0/8) beinhalten |
… | regex_raw=“(?<!\d)10.\d{1,3}\.\d{1,3}\.\d{1,3}(?!\d)“ |
Ergebnisse gruppieren | |
Ergebnisse bündeln, nach „cluster_count“
Werten sortieren und danach die 20 größten Cluster (in Datengröße) zurückgeben. |
… | cluster t=0.9 showcount=true | sort limit=20 -cluster_count |
Ergebnisse mit demselben „host“ und „cookie“
gruppieren, die innerhalb 30 Sek. nacheinander auftauchen und keine Pause von mehr als 5 Sek. zwischen jedem Ereignis aufweisen und zu einer Transaktion zusammenfassen. |
… | transaction host cookie maxspan=30s maxpause=5s |
Ergebnisse mit derselben IP-Adresse (clientip)
gruppieren bei denen das erste Ergebnis „signon“ und das letzte Ergebnis „purchase“ beinhaltet. |
… | transaction clientip startwith=“signon“ endswith=“purchase“ |
Ergebnisse anordnen | |
Gib die ersten 20 Ergebnisse zurück | … | head 20 |
Drehe die Reihenfolge der Ergebnisse um | … | reverse |
Sortiere Ergebnisse nach IP Werten in aufsteigender
Reihenfolge und danach nach „url“ Werten in absteigender Reiehenfolge |
… | sort ip,-url |
Gib die letzten 20 Ergebnisse zurück, in
umgekehrter Reihenfolge |
… | tail 20 |
Reporting | |
Gibt Ereignisse zurück mit ungewöhnlichen Werten | … | anomalousvalue action=filter ptrresh=0.02 |
Gibt das Maximum von „delay“ nach „size“ zurück,
wobei „size“ runtergebrochen wird auf ein Maximum von 10 gleichgroßen Buckets |
… | chart max(delay) by size bins=10 |
Gibt max(delay) für jeden Wert von foo gesplittet
nach den Werten von bar |
… | chart max(delay) over foo by bar |
Gibt max(delay) für jeden Wert von foo zurück | … | chart max(delay) over foo |
Entfernt alle numerischen, randständigen Werte | … | outlier |
Entfernt Duplikate von Ergebnissen mit denselben
„host“ Werten und gibt die Gesamtzahl der verbleibenden Ergebnisse zurück |
… | stats dc(host) |
Gibt den Durchschnitt jeder Stunde zurück, für jedes
einheitliche Feld das mit dem String „lay“ endet. (z.B. delay, xdeley, relay usw.) |
… | stats avg(*lay) by date_hour |
Berechne jede Minute den durchschnittlichen „CPU“ Wert
pro „host“ |
… | timechart span=1m avg(CPU) by host |
Erzeuge ein „timechart“ für den Zähler von „web“
Quellen nach „host“ |
… | timechart count by host |
Gibt die 20 häufigsten Werten für das Feld „url“ zurück | … | top limit=20 url |
Gib die seltensten Werte für das Feld „url“ zurück | … | rare url |
Felder hinzufügen | |
Setze Geschwindigkeit auf Distanz/Zeit | … | eval velocity=distance/time |
Extrahiere „from“ und „to“ Felder durch reguläre Ausdrücke.
Falls ein Ereignis „From: Susan To: David“ enthält, dann sind from=Susan und to=David |
… | rex field=_raw „From: (?.*) To: (?.*)“ |
Speichere das laufende Total von „count“ in einem Feld mit
Namen „total_count“ |
… | accum count as total_count |
Für jedes Ereignis in dem „count“ vorkommt soll die Differenz
zwischen count und seinem vorherigen Wert berechnet und gespeichert werden im Ergebnis „countdiff“ |
… | delta count as countdiff |
Felder filtern | |
Erhalte die „host“ und „ip“ Felder und stelle sie in der
Reihenfolge „host“ + „ip“ |
… | fields + host, ip |
Entferne die „host“ und „ip“ Felder | … | fields – host, ip |
Felder verändern | |
Benenne das Feld „ip“ um in „IPAddress“ | … | rename_ip as IPAddress |
Ändere jeden „host“ Wert der mit „localhost“ endet in
„mylocalhost“ um |
… | replace *localhost with mylocalhost in host |
Multiwertfelder (Multi-Valued) | |
Kombiniere die multiplen Werte des Empfängerfeldes in
einen einzelnen Wert |
… | nomv recipients |
Separiere die Werte des „recipient“ Feldes in Multifeldwerte
und stelle die Top-Empfänger dar |
… | makemv delim=“,“ recipients | top recipients |
Erzeuge neue Ergebnisse für jeden Wert des Multiwertfeldes
„recipient“ |
… | mvexpand recipients |
Kombiniere jedes identische Ergebnis, außer für RecordNumber
und bestimme RecordNumber zu einem Multiwertfeld mit allen variierenden Ergebnissen. |
… | fields EventCode, Category, RecordNumber | mvcombine delim“,“ RecordNumber |
Finde die Zahl der Empfängerwerte | … | eval to_count=mvcount(recipients) |
Finde die erste E-Mail Adresse im Empfängerfeld | … | eval to_first=mvindex(to,0) |
Finde alle Empfängerwerte die mit .net oder .org enden | … | eval netorg_recipients=mvfilter(match(recipient,“\.net$“) OR match(recipient,“\,org$)) |
Finde die Kombination der Werte foo, bar und baz | … | eval newval=mvappend(foo, bar, baz) |
Finde den Index des ersten Empfängerwertes der auf
„\org$“ zutrifft |
… | eval orgindex=mvfind(recipient,“\.org$“) |
Lookup Tabellen | |
Schlage den Wert für das „user“ Feld jedes einzelnen Ereignisses
in der Lookup Tabelle „usertogroup“ nach und besetze damit das „group“ Feld des Ereignisses |
… | lookup usertogroup user output group |
Schreibe das Suchergebnis in die Lookup-Datei „users.csv“ | … | outputlookup users.csv |
Lese in der Lookup Tabelle „users.csv“ als Suchergebnis |