Cuando necesitas limitar aún más los resultados de una búsqueda de log, utiliza subconsultas para comparar tus resultados con un grupo secundario de logs, o filtra tus logs utilizando datos de tus Tablas de referencia.
Filtrar logs con subconsultas
Utiliza subconsultas cuando desees filtrar los resultados de una consulta basándote en los resultados de una consulta secundaria. Consulta ejemplos de subconsultas para ver dos escenarios de ejemplo.
Introduce una consulta en la barra de búsqueda para filtrar tus logs. Esta es la consulta principal.
Haz clic en + Add (+ A?adir).
En la sección Add Query Filter (A?adir filtro de consulta), selecciona Logs.
Esto introduce nuevos elementos en el editor de consultas:
En el campo where (dónde), utiliza el menú desplegable para seleccionar el atributo con el que deseas establecer la correlación. Los atributos disponibles son los de logs devueltos por la consulta principal.
Define tu filtro de subconsulta en el campo from (de).
En el menú desplegable Select Column (Seleccionar columna) que precede al filtro de la subconsulta, selecciona el atributo por el que deseas agrupar y ordenar los resultados de la subconsulta.
Selecciona si deseas utilizar el operador IN o NOT IN:
Los resultados del operador IN solo incluyen logs cuando el valor del atributo también se encuentra en los resultados de la subconsulta. Por ejemplo, si solo deseas ver logs generados por service:a y está asociado a un usuario que también es uno de los principales usuarios de service:b.
Los resultados del operador NOT IN excluyen logs donde se encuentra el valor del atributo en los resultados de la subconsulta. Por ejemplo, si solo deseas ver logs status:error, pero también deseas filtrar logs status:error donde los usuarios asociados a esos logs acaben finalmente con un log status:success. Consulta Filtrar logs desactualizados o sustituidos para ver un ejemplo detallado.
Opcionalmente, reduce el número de valores de atributos de subconsulta con los que comparar. El valor por defecto y máximo es 1000. Elige entre top (principal) (valores de mayor frecuencia) o bottom (inferior) (valores de menor frecuencia).
Ejemplos de subconsultas
Los siguientes son escenarios en los que necesitas utilizar subconsultas para obtener la información que necesitas de tus logs.
Filtrar logs obsoletos o sustituidos
Supongamos que gestionas una plataforma de comercio electrónico. Se genera un log cada vez que uno de tus clientes intenta realizar un pedido. Deseas analizar tus logs para conocer el valor total de las compras potenciales perdidas debido a un problema continuo con tu sitio web.
Sin embargo, te das cuenta de que un pedido puede fallar varias veces antes de completarse con éxito: lo que significa que para ese ID de pedido en particular, hay entradas de log en los resultados de búsqueda, tanto para logs status:error como para logs status:success. Si extrajeras listas de ID de pedido únicas de las dos consultas, este ID de pedido aparecería en ambas. Con las subconsultas, puedes obtener una lista mutuamente excluyente.
En este ejemplo, solo estás interesado en logs para los pedidos que finalmente no tuvieron éxito. Para excluir los pedidos que finalmente tuvieron éxito utilizando la función de subconsulta:
Define una subconsulta para logs status:success.
Selecciona el operador NOT IN para excluir los pedidos del conjunto de resultados de la subconsulta.
Correlación entre diferentes fuentes de log
Supón que tienes un servicio llamado network_directory que supervisa todos los recursos internos de red y el acceso a esos recursos dentro de tu organización. Los eventos de log generados por este servicio incluyen atributos estándar (como host, service, source) y atributos personalizados como la dirección IP del cliente.
Además, tienes otro servicio device-manager que rastrea todos los activos internos (infraestructura, dispositivos de los empleados, etc.).
Estás investigando un ataque en curso y observas que hay un aumento significativo de solicitudes de API en casi todos tus endpoints. En primer lugar, deseas identificar las direcciones IP asociadas a volúmenes de solicitudes anómalos para poder bloquearlas en el cortafuegos. Sin embargo, tus servicios internos son algunos de los mayores consumidores de estos endpoints y necesitas excluirlos de tus resultados de consulta para evitar bloquearlos por error.
En este ejemplo, utiliza service:network_directory como consulta principal y, a continuación, define un filtro de subconsulta para tu servicio device-manager para filtrar los resultados de los dispositivos reconocidos.
Filtrar logs a partir de tablas de referencia
Reference Tables containing over 1,000,000 rows cannot be used to filter events. See Add Custom Metadata with Reference Tables for more information on how to create and manage Reference Tables.
Reference Tables allow you to combine metadata with logs, providing more information to resolve application issues. Add a query filter based on a Reference Table to perform lookup queries. For more information on creating and managing this feature, see the Reference Tables guide.
To apply a query filter with Reference Tables, click the Add button next to the query editor and select Join with Reference Table.
Select your reference table in the dropdown menu.
Select the log field to join on.
Select the IN or NOT IN operator to filter in or out matching logs.
Select the Reference Table column to join on.
(Optional) Select Reference Table columns used to enrich logs.
(Optional) Filter logs by directly querying data in Reference Table columns.
In the following example, a Reference Table containing product information is used to filter and enrich logs: