Hoja de referencia rápida de Splunk a Kusto
Este artículo sirve de ayuda para que los usuarios que están familiarizados con Splunk obtengan información sobre el lenguaje de consulta Kusto para escribir consultas de registro con Kusto. Las comparaciones directas se realizan entre los dos para resaltar las diferencias clave y las similitudes, por lo que puede basarse en sus conocimientos existentes.
Estructura y conceptos
En la tabla siguiente se comparan los conceptos y las estructuras de datos entre los registros de Splunk y Kusto:
Concepto | Splunk | Kusto | Comentario |
---|---|---|---|
unidad de implementación | cluster | cluster | Kusto permite consultas arbitrarias entre clústeres. Splunk no. |
cachés de datos | cubos | Almacenamiento en caché y directivas de retención | Controla el período y el nivel de almacenamiento en caché de los datos. Esta configuración afecta directamente al rendimiento de las consultas y al costo de la implementación. |
partición lógica de datos | índice | database | Permite la separación lógica de los datos. Ambas implementaciones permiten uniones y la combinación de estas particiones. |
metadatos de eventos estructurados | N/D | table | Splunk no expone el concepto de metadatos de eventos al lenguaje de búsqueda. Los registros de Kusto tienen el concepto de una tabla, que tiene columnas. Cada instancia de un evento se asigna a una fila. |
registro | event | fila | Solo cambio de terminología. |
atributo record | campo | columna | En Kusto, esta configuración está predefinida como parte de la estructura de la tabla. En Splunk, cada evento tiene su propio conjunto de campos. |
types | tipo de datos | tipo de datos | Los tipos de datos de Kusto son más explícitos porque se establecen en las columnas. Ambos tienen la capacidad de trabajar dinámicamente con tipos de datos y aproximadamente un conjunto equivalente de tipos de datos, incluida la compatibilidad con JSON. |
consulta y búsqueda | búsqueda | Query | Los conceptos básicamente son los mismos entre Kusto y Splunk. |
tiempo de ingesta de eventos | hora del sistema | ingestion_time() |
En Splunk, cada evento obtiene una marca de tiempo del sistema de la hora en que se indizó el evento. En Kusto, puede definir una directiva denominada ingestion_time que expone una columna del sistema a la que se puede hacer referencia a través de la función ingestion_time(). |
Functions
En la tabla siguiente se especifican las funciones de Kusto equivalentes a las funciones de Splunk.
Splunk | Kusto | Comentario |
---|---|---|
strcat |
strcat() |
(1) |
split |
split() |
(1) |
if |
iff() |
(1) |
tonumber |
todouble() tolong() toint() |
(1) |
upper lower |
toupper() tolower() |
(1) |
replace |
replace_string() , replace_strings() o replace_regex() |
(1) Aunque replace las funciones toman tres parámetros en ambos productos, los parámetros son diferentes. |
substr |
substring() |
(1) Tenga en cuenta también que Splunk utiliza índices con base uno. Kusto señala índices de base cero. |
tolower |
tolower() |
(1) |
toupper |
toupper() |
(1) |
match |
matches regex |
(2) |
regex |
matches regex |
En Splunk, regex es un operador. En Kusto, es un operador relacional. |
searchmatch |
== | En Splunk, searchmatch permite buscar la cadena exacta. |
random |
rand() rand(n) |
La función de Splunk devuelve un número entre cero y 231-1. Kusto devuelve un número comprendido entre 0,0 y 1,0, o si se proporciona un parámetro, entre 0 y n-1. |
now |
now() |
(1) |
relative_time |
totimespan() |
(1) En Kusto, el equivalente de Splunk de relative_time(datetimeVal, offsetVal) es datetimeVal + totimespan(offsetVal) .Por ejemplo, search | eval n=relative_time(now(), "-1d@d") se convierte en ... | extend myTime = now() - totimespan("1d") . |
(1) En Splunk, la función se invoca mediante el eval
operador . En Kusto, se usa como parte de extend
o project
.
(2) En Splunk, la función se invoca mediante el eval
operador . En Kusto, se puede usar con el where
operador .
Operadores
En las secciones siguientes se proporcionan ejemplos de cómo usar diferentes operadores en Splunk y Kusto.
Nota
En los ejemplos siguientes, el campo rule
Splunk se asigna a una tabla de Kusto y la marca de tiempo predeterminada de Splunk se asigna a la columna Logs Analytics ingestion_time()
.
Search
En Splunk se puede omitir la palabra clave search
y especifique una cadena sin comillas. En Kusto, debe iniciar cada consulta con find
, una cadena sin comillas es un nombre de columna y el valor de búsqueda debe ser una cadena entre comillas.
Producto | Operador | Ejemplo |
---|---|---|
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) |
Filtrar
Las consultas de registro de Kusto comienzan desde un conjunto de resultados tabulares en el que filter
se aplica. En Splunk, el filtrado es la operación predeterminada del índice actual. También puede usar el where
operador en Splunk, pero no se recomienda.
Producto | Operador | Ejemplo |
---|---|---|
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) |
Obtener n eventos o filas para la inspección
Las consultas de registro de Kusto también admiten take
como alias para limit
. En Splunk, si se ordenan los resultados, head
devuelve los primeros n resultados. En Kusto, limit
no está ordenado, pero devuelve las primeras n filas que se encuentran.
Producto | Operador | Ejemplo |
---|---|---|
Splunk | head |
Event.Rule=330009.2 | head 100 |
Kusto | limit |
Office_Hub_OHubBGTaskError | limit 100 |
Obtener los primeros n eventos o filas ordenados por un campo o columna
Para los resultados inferiores, en Splunk, se usa tail
. En Kusto, puede especificar la dirección de ordenación mediante asc
.
Producto | Operador | Ejemplo |
---|---|---|
Splunk | head |
Event.Rule="330009.2" | sort Event.Sequence | head 20 |
Kusto | top |
Office_Hub_OHubBGTaskError | top 20 by Event_Sequence |
Extender el conjunto de resultados con nuevos campos o columnas
Splunk tiene una eval
función, pero no es comparable al eval
operador de Kusto. Tanto el eval
operador de Splunk como el extend
operador de Kusto solo admiten funciones escalares y operadores aritméticos.
Producto | Operador | Ejemplo |
---|---|---|
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") |
Cambiar nombre
Kusto usa el operador para cambiar el project-rename
nombre de un campo. En el project-rename
operador , una consulta puede aprovechar los índices creados previamente para un campo. Splunk tiene un rename
operador que hace lo mismo.
Producto | Operador | Ejemplo |
---|---|---|
Splunk | rename |
Event.Rule=330009.2 | rename Date.Exception as execption |
Kusto | project-rename |
Office_Hub_OHubBGTaskError | project-rename exception = Date_Exception |
Dar formato a los resultados y la proyección
Splunk usa el table
comando para seleccionar las columnas que se van a incluir en los resultados. Kusto tiene un project
operador que hace lo mismo y mucho más.
Producto | Operador | Ejemplo |
---|---|---|
Splunk | table |
Event.Rule=330009.2 | table rule, state |
Kusto | project |
Office_Hub_OHubBGTaskError | project exception, state |
Splunk usa el field -
comando para seleccionar las columnas que se van a excluir de los resultados. Kusto tiene un project-away
operador que hace lo mismo.
Producto | Operador | Ejemplo |
---|---|---|
Splunk | fields - |
Event.Rule=330009.2 | fields - quota, hightest_seller |
Kusto | project-away |
Office_Hub_OHubBGTaskError | project-away exception, state |
Agregación
Consulte la lista de funciones de agregación de resumen que están disponibles.
Operador Splunk | Ejemplo de Splunk | Operador Kusto | Ejemplo de Kusto |
---|---|---|---|
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
en Splunk tiene limitaciones sustanciales. La subconsulta tiene un límite de 10 000 resultados (establecido en el archivo de configuración de implementación) y hay disponible un número limitado de tipos de combinación.
Producto | Operador | Ejemplo |
---|---|---|
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 |
Sort
En Splunk, para ordenar en orden ascendente, debe usar el reverse
operador . Kusto también admite la definición de dónde colocar valores NULL, ya sea al principio o al final.
Producto | Operador | Ejemplo |
---|---|---|
Splunk | sort |
Event.Rule=120103 | sort Data.Hresult | reverse |
Kusto | order by |
Office_Hub_OHubBGTaskError | order by Data_Hresult, desc |
Expansión de varios valores
El operador expand de varios valores es similar en Splunk y Kusto.
Producto | Operador | Ejemplo |
---|---|---|
Splunk | mvexpand |
mvexpand solutions |
Kusto | mv-expand |
mv-expand solutions |
Facetas de resultado, campos interesantes
En Log Analytics en Azure Portal, solo se expone la primera columna. Todas las columnas están disponibles a través de la API.
Producto | Operador | Ejemplo |
---|---|---|
Splunk | fields |
Event.Rule=330009.2 | fields App.Version, App.Platform |
Kusto | facets |
Office_Excel_BI_PivotTableCreate | facet by App_Branch, App_Version |
Desduplicar
En Kusto, puede usar summarize arg_min()
para invertir el orden del que se elige el registro.
Producto | Operador | Ejemplo |
---|---|---|
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 |
Contenido relacionado
- Recorra un tutorial sobre el Lenguaje de consulta Kusto.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de