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 |
