Sintaxis de búsqueda de logs
Un filtro de consulta se compone de términos y operadores.
Existen dos tipos de términos:
Un término único es una sola palabra, como test
o hello
.
Una secuencia es un grupo de palabras delimitadas por comillas dobles, como "hello dolly"
.
Para combinar varios términos en una consulta compleja, puedes utilizar cualquiera de los siguientes operadores booleanos que distinguen entre mayúsculas y minúsculas:
| | |
---|
Operador | Descripción | Ejemplo |
AND | Intersección: ambos términos están en los eventos seleccionados (si no se añade nada, se toma AND por defecto). | autenticación AND error |
OR | Unión: cualquiera de los dos términos está en los eventos seleccionados. | autenticación OR contraseña |
- | Exclusión: el término siguiente NO figura en el evento (se aplica a cada búsqueda individual de texto sin formato). | autenticación AND -contraseña |
Búsqueda de texto completo
La función de búsqueda de texto completo solo está disponible en Log Management y funciona en las consultas de monitor, dashboard y notebook. La sintaxis de búsqueda de texto completo no puede utilizarse para definir filtros de índice, filtros de archivo, filtros de pipeline de log ni en Live Tail.
Utiliza la sintaxis *:search_term
para realizar una búsqueda de texto completo en todos los atributos de log, incluido el mensaje de log.
Ejemplo de término único
Sintaxis de búsqueda | Tipo de búsqueda | Descripción |
---|
*:hello | Texto completo | Busca todos los atributos de log para el término hello . |
hello | Texto libre | Busca solo en el mensaje de log el término hello . |
Ejemplo de término de búsqueda con comodín
Sintaxis de búsqueda | Tipo de búsqueda | Descripción |
---|
*:hello | Texto completo | Busca en todos los atributos de log la cadena exacta hello . |
*:hello* | Texto completo | Busca en todos los atributos de log cadenas que empiecen por hello . Por ejemplo, hello_world . |
Ejemplo de términos múltiples con coincidencia exacta
Sintaxis de búsqueda | Tipo de búsqueda | Descripción |
---|
*:"hello world" | Texto completo | Busca todos los atributos de log para el término hello world . |
hello world | Texto libre | Busca solo en el mensaje de log el término hello . |
Ejemplo de términos múltiples sin coincidencia exacta
La sintaxis de búsqueda de texto completo *:hello world
es equivalente a *:hello *:world
. Busca en todos los atributos de log los términos hello
y world
.
Ejemplo de términos múltiples con un espacio en blanco
La sintaxis de búsqueda de texto completo *:"hello world" "i am here"
es equivalente a *:"hello world" *:"i am here"
. Busca en todos los atributos de log los términos hello world
y i am here
.
Caracteres especiales de escape y espacios
Los siguientes caracteres, que se consideran especiales: +
-
=
&&
||
>
<
!
(
)
{
}
[
]
^
"
“
”
~
*
?
:
\
#
y los espacios que requieren ser de escape con el carácter \
.
/
no se considera un carácter especial y no necesita ser de escape.
No se pueden buscar caracteres especiales en un mensaje de log. Puedes buscar caracteres especiales cuando están dentro de un atributo.
Para buscar caracteres especiales, analízalos en un atributo con el Analizador Grok, y busca los logs que contengan ese atributo.
Búsqueda de atributos
Para buscar en un atributo específico, añade @
para especificar que estás buscando en un atributo.
Por ejemplo, si el nombre de tu atributo es url y quieres filtrar por el valor url www.datadoghq.com
, introduce:
Notas:
No es necesario definir una faceta para buscar en los atributos y etiquetas (tags).
Las búsquedas por atributos distinguen entre mayúsculas y minúsculas. Utiliza búsqueda de texto completo para obtener resultados que no distingan entre mayúsculas y minúsculas. Otra opción es utilizar el filtro lowercase
con tu Analizador Grok mientras haces un análisis para obtener resultados que no distingan entre mayúsculas y minúsculas durante la búsqueda.
La búsqueda de un valor de atributo que contenga caracteres especiales requiere un carácter de escape o comillas dobles.
- Por ejemplo, para un atributo
my_attribute
con el valor hello:world
, busca utilizando: @my_attribute:hello\:world
o @my_attribute:"hello:world"
. - Para que coincida con un único carácter especial o espacio, utiliza el comodín
?
. Por ejemplo, para un atributo my_attribute
con el valor hello world
, busca utilizando: @my_attribute:hello?world
.
Ejemplos:
Consulta de búsqueda | Descripción |
---|
@http.url_details.path:"/api/v1/test" | Busca todos los logs que coincidan con /api/v1/test en el atributo http.url_details.path . |
@http.url:/api\-v1/* | Busca todos los logs que contengan un valor en el atributo http.url que empiece por /api-v1/ |
@http.status_code:[200 TO 299] @http.url_details.path:/api\-v1/* | Busca todos los logs que contengan un valor http.status_code entre 200 y 299, y que contengan un valor en el atributo http.url_details.path que empiece por /api-v1/ |
-@http.status_code:* | Busca todos los logs que no contengan el atributo http.status_code |
Buscar utilizando la notación CIDR
Classless Inter Domain Routing (CIDR) es una notación que permite a los usuarios definir un rango de direcciones IP (también llamadas bloques de CIDR) de forma sucinta. CIDR se utiliza normalmente para definir una red (como una VPC) o una subred (como una subred pública/privada dentro de una VPC).
Los usuarios pueden utilizar la función CIDR()
para consultar atributos en logs utilizando la notación CIDR. La función CIDR()
necesita que se le pase un atributo de log como parámetro por el que filtrar, seguido de uno o varios bloques de CIDR.
Ejemplos
CIDR(@network.client.ip,13.0.0.0/8)
coincide y filtra logs que tengan direcciones IP en el campo network.client.ip
que caen bajo el bloque de CIDR 13.0.0.0/8.CIDR(@network.ip.list,13.0.0.0/8, 15.0.0.0/8)
coincide y filtra logs que tengan cualquier dirección IP en un atributo matriz network.ip.list
que pertenezca a los bloques de CIDR 13.0.0.0/8 o 15.0.0.0/8.source:pan.firewall evt.name:reject CIDR(@network.client.ip, 13.0.0.0/8)
coincidiría y filtraría eventos de rechazo desde el firewall de palo alto que se originan en la subred 13.0.0.0/8source:vpc NOT(CIDR(@network.client.ip, 13.0.0.0/8)) CIDR(@network.destination.ip, 15.0.0.0/8)
mostrará todos los logs de VPC que no se originan en la subred 13.0.0.0/8, pero que están designados para la subred de destino 15.0.0.0/8 porque deseas analizar el tráfico de red en tus entornos entre subredes.
La función CIDR()
es compatible con las notaciones CIDR de IPv4 e IPv6 y funciona en Log Explorer, Live Tail, widgets de log en dashboards, monitores de log y configuraciones de log.
Comodines
Puedes utilizar comodines con la búsqueda de texto libre. Sin embargo, solo busca términos en el mensaje de log, el texto de la columna content
en Log Explorer. Consulta búsqueda de texto completo si deseas buscar un valor en un atributo de log.
Comodín de varios caracteres
Para realizar una búsqueda de comodín de varios caracteres en el mensaje de log (la columna content
en Log Explorer), utiliza el símbolo *
como se indica a continuación:
service:web*
coincide con cada mensaje de log que tenga un servicio que empiece por web
.web*
coincide con todos los mensajes de log que empiecen con web
.*web
coincide con todos los mensajes de log que terminan con web
.
Nota: Los comodines solo funcionan fuera de las comillas dobles. Por ejemplo, "*test*"
coincide con un log que tenga la cadena *test*
en su mensaje. *test*
coincide con un log que tenga la test de cadena en cualquier parte de su mensaje.
Las búsquedas con comodines funcionan dentro de etiquetas y atributos (con o sin facetas) con esta sintaxis. Esta consulta devuelve todos los servicios que terminan con la cadena mongo
:
Las búsquedas con comodines también pueden utilizarse para buscar en el texto sin formato de un log que no forme parte de un atributo de log. Por ejemplo, esta consulta devuelve todos los logs con contenido (mensaje) que contengan la cadena NETWORK
:
Sin embargo, este término de búsqueda no devuelve logs que contengan la cadena NETWORK
si se encuentra en un atributo de log y no forma parte del mensaje de log.
Buscar comodín
Cuando busques un valor de atributo o etiqueta que contenga caracteres especiales o requiera caracteres de escape o comillas dobles, utiliza el comodín ?
para que coincida con un único carácter especial o espacio. Por ejemplo, para buscar un atributo my_attribute
con el valor hello world
: @my_attribute:hello?world
.
Valores numéricos
Para buscar en un atributo numérico, primero añádelo como faceta. A continuación, puedes utilizar operadores numéricos (<
,>
, <=
, o >=
) para realizar una búsqueda sobre facetas numéricas.
Por ejemplo, recupera todos los logs que tengan un tiempo de respuesta superior a 100ms con:
Puedes buscar atributos numéricos dentro de un rango específico. Por ejemplo, recupera todos tus errores 4xx con:
@http.status_code:[400 TO 499]
Etiquetas
Tus logs heredan las etiquetas de los hosts y las integraciones que las generan. Pueden utilizarse para buscar y también como facetas:
test
está buscando la cadena “test”.env:(prod OR test)
coincide con todos los logs con la etiqueta env:prod
o la etiqueta env:test
(env:prod AND -version:beta)
coincide con todos los logs que contengan la etiqueta env:prod
y que no contengan la etiqueta version:beta
Si tus etiquetas no siguen las prácticas recomendadas de etiqueta y no utilizan la sintaxis key:value
, utiliza esta consulta de búsqueda:
Matrices
En el ejemplo siguiente, al hacer clic en el valor Peter
de la faceta, se devuelven todos los logs que contiene un atributo users.names
, cuyo valor es Peter
o una matriz que contiene Peter
:
Nota: Buscar también puede utilizarse en atributos de matriz sin facetas utilizando una sintaxis equivalente.
En el siguiente ejemplo, los logs de CloudWatch para Windows contienen una matriz de objetos JSON bajo @Event.EventData.Data
. No se puede crear una faceta sobre una matriz de objetos JSON, pero se puede buscar utilizando la siguiente sintaxis.
@Event.EventData.Data.Name:ObjectServer
coincide con todos los logs con la clave Name
y el valor ObjectServer
.
Búsquedas guardadas
Las Vistas guardadas contienen tu consulta de búsqueda, columnas, horizonte temporal y faceta.
Leer más
Additional helpful documentation, links, and articles: