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
Bookmark and Share