Cheat Sheet für die Übersetzung von Splunk in Kusto
Dieser Artikel unterstützt Benutzer, die mit Splunk vertraut sind, beim Erlernen der Kusto-Abfragesprache, um Protokollabfragen mit Kusto schreiben zu können. Es werden direkte Vergleiche zwischen den beiden durchgeführt, um wichtige Unterschiede und Ähnlichkeiten hervorzuheben, damit Sie auf Ihrem vorhandenen Wissen aufbauen können.
Struktur und Konzepte
In der folgenden Tabelle werden Konzepte und Datenstrukturen zwischen Splunk- und Kusto-Protokollen verglichen:
Konzept | Splunk | Kusto | Kommentar |
---|---|---|---|
Bereitstellungseinheit | cluster | cluster | Kusto ermöglicht beliebige clusterübergreifende Abfragen. Splunk nicht. |
Datencaches | buckets | Zwischenspeicherungs- und Aufbewahrungsrichtlinien | Steuert den Zeitraum und die Cachingebene für die Daten. Diese Einstellung wirkt sich direkt auf die Leistung von Abfragen und die Kosten der Bereitstellung aus. |
logische Datenpartition | Index | database | Ermöglicht die logische Trennung der Daten. Beide Implementierungen ermöglichen partitionsübergreifende Unions und Verknüpfungen. |
Strukturierte Ereignismetadaten | – | table | Splunk macht das Konzept der Ereignismetadaten nicht für die Suchsprache verfügbar. Kusto-Protokolle weisen das Konzept einer Tabelle auf, die Spalten enthält. Jede Ereignisinstanz ist einer Zeile zugeordnet. |
Datensatz (record) | Ereignis | row | Nur Terminologieänderung. |
record-Attribut | Feld | column | In Kusto ist diese Einstellung als Teil der Tabellenstruktur vordefiniert. In Splunk hat jedes Ereignis einen eigenen Satz von Feldern. |
types | datatype | datatype | Kusto-Datentypen sind expliziter, da sie für die Spalten festgelegt sind. Beide haben die Möglichkeit, dynamisch mit Datentypen und ungefähr gleichwertigen Datentypen zu arbeiten, einschließlich JSON-Unterstützung. |
Abfrage und Suche | search | Abfrage | Die Konzepte zwischen Kusto und Splunk sind im Wesentlichen identisch. |
Ereigniserfassungszeit | Systemuhrzeit | ingestion_time() |
In Splunk erhält jedes Ereignis einen Systemzeitstempel des Zeitpunkts, zu dem das Ereignis indiziert wurde. In Kusto können Sie eine Richtlinie namens ingestion_time definieren, die eine Systemspalte verfügbar macht, auf die über die funktion ingestion_time() verwiesen werden kann. |
Functions
In der folgenden Tabelle sind Funktionen in Kusto angegeben, die Splunk-Funktionen entsprechen.
Splunk | Kusto | Kommentar |
---|---|---|
strcat |
strcat() |
(1) |
split |
split() |
(1) |
if |
iff() |
(1) |
tonumber |
todouble() tolong() toint() |
(1) |
upper lower |
toupper() tolower() |
(1) |
replace |
replace_string() , replace_strings() oder replace_regex() |
(1) Obwohl replace Funktionen in beiden Produkten drei Parameter verwenden, unterscheiden sich die Parameter. |
substr |
substring() |
(1) Beachten Sie auch, dass Splunk einsbasierte Indizes verwendet. Kusto notiert nullbasierte Indizes. |
tolower |
tolower() |
(1) |
toupper |
toupper() |
(1) |
match |
matches regex |
(2) |
regex |
matches regex |
In Splunk ist regex ein Operator. In Kusto handelt es sich um einen relationalen Operator. |
searchmatch |
== | In Splunk ermöglicht searchmatch eine Suche nach der exakten Zeichenfolge. |
random |
rand() rand(n) |
Die Splunk-Funktion gibt eine Zahl zwischen null und 231-1 zurück. Kusto gibt eine Zahl zwischen 0,0 und 1,0 oder bei Angabe eines Parameters zwischen 0 und n-1 zurück. |
now |
now() |
(1) |
relative_time |
totimespan() |
(1) In Kusto entspricht datetimeVal + totimespan(offsetVal) Splunk relative_time(datetimeVal, offsetVal) .Wird z. search | eval n=relative_time(now(), "-1d@d") B. zu ... | extend myTime = now() - totimespan("1d") . |
(1) In Splunk wird die Funktion mithilfe des eval
-Operators aufgerufen. In Kusto wird es als Teil von extend
oder project
verwendet.
(2) In Splunk wird die Funktion mithilfe des eval
-Operators aufgerufen. In Kusto kann es mit dem where
Operator verwendet werden.
Operatoren
Die folgenden Abschnitte enthalten Beispiele für die Verwendung verschiedener Operatoren in Splunk und Kusto.
Hinweis
In den folgenden Beispielen wird das Splunk-Feld rule
einer Tabelle in Kusto zugeordnet, und der Standardzeitstempel von Splunk wird der Spalte Logs Analytics ingestion_time()
zugeordnet.
Suchen,
In Splunk können Sie das Schlüsselwort search
auslassen und eine Zeichenfolge ohne Anführungszeichen eingeben. In Kusto müssen Sie jede Abfrage mit find
starten, eine Zeichenfolge ohne Anführungszeichen ist ein Spaltenname, und der Nachschlagewert muss eine Zeichenfolge in Anführungszeichen sein.
Produkt | Operator | Beispiel |
---|---|---|
Splunk | search |
search Session.Id="c8894ffd-e684-43c9-9125-42adc25cd3fc" earliest=-24h |
Kusto | find |
find Session.Id=="c8894ffd-e684-43c9-9125-42adc25cd3fc" and ingestion_time()> ago(24h) |
Filter
Kusto-Protokollabfragen beginnen mit einem tabellarischen Resultset, in das filter
angewendet wird. In Splunk ist Filtern der Standardvorgang für den aktuellen Index. Sie können den where
Operator auch in Splunk verwenden, aber wir empfehlen ihn nicht.
Produkt | Operator | Beispiel |
---|---|---|
Splunk | search |
Event.Rule="330009.2" Session.Id="c8894ffd-e684-43c9-9125-42adc25cd3fc" _indextime>-24h |
Kusto | where |
Office_Hub_OHubBGTaskError | where Session_Id == "c8894ffd-e684-43c9-9125-42adc25cd3fc" and ingestion_time() > ago(24h) |
Abrufen von n Ereignissen oder Zeilen zur Überprüfung
Kusto-Protokollabfragen unterstützen take
auch als Alias für limit
. Wenn die Ergebnisse in Splunk sortiert sind, head
werden die ersten n Ergebnisse zurückgegeben. In Kusto limit
ist nicht sortiert, aber es werden die ersten gefundenen n Zeilen zurückgegeben.
Produkt | Operator | Beispiel |
---|---|---|
Splunk | head |
Event.Rule=330009.2 | head 100 |
Kusto | limit |
Office_Hub_OHubBGTaskError | limit 100 |
Abrufen der ersten n Ereignisse oder Zeilen, die nach einem Feld oder einer Spalte sortiert sind
Für die unteren Ergebnisse verwenden tail
Sie in Splunk . In Kusto können Sie die Reihenfolge mithilfe asc
von angeben.
Produkt | Operator | Beispiel |
---|---|---|
Splunk | head |
Event.Rule="330009.2" | sort Event.Sequence | head 20 |
Kusto | top |
Office_Hub_OHubBGTaskError | top 20 by Event_Sequence |
Erweitern des Resultsets mit neuen Feldern oder Spalten
Splunk verfügt über eine eval
Funktion, ist aber nicht mit dem eval
Operator in Kusto vergleichbar. Sowohl der eval
Operator in Splunk als auch der extend
Operator in Kusto unterstützen nur skalare Funktionen und arithmetische Operatoren.
Produkt | Operator | Beispiel |
---|---|---|
Splunk | eval |
Event.Rule=330009.2 | eval state= if(Data.Exception = "0", "success", "error") |
Kusto | extend |
Office_Hub_OHubBGTaskError | extend state = iff(Data_Exception == 0,"success" ,"error") |
Umbenennen
Kusto verwendet den project-rename
Operator, um ein Feld umzubenennen. project-rename
Im Operator kann eine Abfrage alle Indizes nutzen, die für ein Feld vorkonfiguriert sind. Splunk verfügt über einen rename
Operator, der dasselbe tut.
Produkt | Operator | Beispiel |
---|---|---|
Splunk | rename |
Event.Rule=330009.2 | rename Date.Exception as execption |
Kusto | project-rename |
Office_Hub_OHubBGTaskError | project-rename exception = Date_Exception |
Formatieren von Ergebnissen und Projektion
Splunk verwendet den table
Befehl, um auszuwählen, welche Spalten in die Ergebnisse eingeschlossen werden sollen. Kusto verfügt über einen project
Operator, der dasselbe und mehr ausführt.
Produkt | Operator | Beispiel |
---|---|---|
Splunk | table |
Event.Rule=330009.2 | table rule, state |
Kusto | project |
Office_Hub_OHubBGTaskError | project exception, state |
Splunk verwendet den field -
Befehl, um auszuwählen, welche Spalten aus den Ergebnissen ausgeschlossen werden sollen. Kusto verfügt über einen project-away
Operator, der dasselbe tut.
Produkt | Operator | Beispiel |
---|---|---|
Splunk | fields - |
Event.Rule=330009.2 | fields - quota, hightest_seller |
Kusto | project-away |
Office_Hub_OHubBGTaskError | project-away exception, state |
Aggregation
Weitere Informationen finden Sie in der Liste der verfügbaren Aggregationsfunktionen .
Splunk-Operator | Splunk-Beispiel | Kusto-Operator | Kusto-Beispiel |
---|---|---|---|
stats |
search (Rule=120502.*) | stats count by OSEnv, Audience |
summarize |
Office_Hub_OHubBGTaskError | summarize count() by App_Platform, Release_Audience |
evenstats |
... | stats count_i by time, category | eventstats sum(count_i) AS count_total by _time_ |
join |
T2 | join kind=inner (T1) on _time | project _time, category, count_i, count_total |
Join
join
in Splunk weist erhebliche Einschränkungen auf. Die Unterabfrage hat einen Grenzwert von 10.000 Ergebnissen (festgelegt in der Bereitstellungskonfigurationsdatei), und eine begrenzte Anzahl von Join-Varianten ist verfügbar.
Produkt | Operator | Beispiel |
---|---|---|
Splunk | join |
Event.Rule=120103* | stats by Client.Id, Data.Alias | join Client.Id max=0 [search earliest=-24h Event.Rule="150310.0" Data.Hresult=-2147221040] |
Kusto | join |
cluster("OAriaPPT").database("Office PowerPoint").Office_PowerPoint_PPT_Exceptions | where Data_Hresult== -2147221040 | join kind = inner (Office_System_SystemHealthMetadata | summarize by Client_Id, Data_Alias)on Client_Id |
Sortieren
In Splunk müssen Sie den reverse
Operator verwenden, um in aufsteigender Reihenfolge zu sortieren. Kusto unterstützt auch die Definition, wo NULL-Werte entweder am Anfang oder am Ende platziert werden sollen.
Produkt | Operator | Beispiel |
---|---|---|
Splunk | sort |
Event.Rule=120103 | sort Data.Hresult | reverse |
Kusto | order by |
Office_Hub_OHubBGTaskError | order by Data_Hresult, desc |
Erweiterung für mehrere Werte
Der mehrwertige Erweiterungsoperator ist sowohl in Splunk als auch in Kusto ähnlich.
Produkt | Operator | Beispiel |
---|---|---|
Splunk | mvexpand |
mvexpand solutions |
Kusto | mv-expand |
mv-expand solutions |
Ergebnisfacetten, interessante Felder
In Log Analytics im Azure-Portal wird nur die erste Spalte verfügbar gemacht. Alle Spalten stehen über die API zur Verfügung.
Produkt | Operator | Beispiel |
---|---|---|
Splunk | fields |
Event.Rule=330009.2 | fields App.Version, App.Platform |
Kusto | facets |
Office_Excel_BI_PivotTableCreate | facet by App_Branch, App_Version |
Deduplizieren
In Kusto können Sie verwenden summarize arg_min()
, um die Reihenfolge des ausgewählten Datensatzes umzukehren.
Produkt | Operator | Beispiel |
---|---|---|
Splunk | dedup |
Event.Rule=330009.2 | dedup device_id sortby -batterylife |
Kusto | summarize arg_max() |
Office_Excel_BI_PivotTableCreate | summarize arg_max(batterylife, *) by device_id |
Verwandte Inhalte
- Führen Sie ein Tutorial zum Kusto-Abfragesprache durch.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für