Syntaxe de demande de recherche journal
Lors de la recherche de journaux, vous pouvez créer des requêtes en utilisant un sous-ensemble de syntaxe de requête Lucene pour affiner votre recherche.
La chaîne de requête est analysée en séries de termes et d’opérateurs :
Un terme peut être un mot unique tel que
jane
ousmith
.Un terme peut être une phrase entourée de guillemets (
"customer log"
), qui correspondra à tous les mots de la phrase dans le même ordre.Un terme sans nom de champ ne correspondra qu’à ces champs sélectionnés.
Plusieurs termes peuvent être regroupés entre parenthèses pour former des sous-requêtes.
Tous les champs de recherche sont sensibles aux majuscules/minuscules.
Les opérateurs (
AND
,OR
,NOT
) fonctionnent sur tous les champs de recherche.
Champs pouvant être recherchés
Les champs suivants peuvent être recherchés et sont sensibles aux majuscules/minuscules :
Champ | Description |
---|---|
client_id |
ID client associé à l’événement. |
client_name |
Nom du client lié à l’événement. |
connection |
Nom de connexion lié à l’événement. |
connection_id |
Identifiant de connexion lié à l’événement. |
description |
Description de l’événement. |
date |
Date à laquelle l’événement s’est produit au format AAAA-MM-JJ. |
hostname |
Le nom d’hôte utilisé pour le flux d’authentification. |
ip |
Adresse IP d’où provient la demande à l’origine de l’entrée du journal. |
log_id |
Identifiant du journal de l’événement. |
organization_id |
Identifiant de l’organization lié à l’événement. |
connection_id |
Identifiant de l’utilisateur lié à l’événement. |
user_name |
Nom d’utilisateur lié à l’événement. |
user_agent |
Agent utilisateur lié à l’événement. |
Strategy |
Stratégie de connexion liée à l’événement. |
strategy_type |
Type de stratégie de connexion liée à l’événement. |
type |
Type de l’événement. |
Champs pouvant être recherchés avec des termes nus
Si un terme de recherche est saisi sans nom de champ, la recherche ne portera que sur les champs suivants :
client_name
connection
description
ip
log_id
type
:user_name
Correspondance exacte
Pour trouver des correspondances exactes, utilisez des guillemets doubles : description:"Username invalid"
.
Par exemple, pour trouver les journaux dont la description est Username invalid
, utilisez q=description:"Username invalid"
.
Caractères générique
Les recherches par caractères génériques peuvent être effectuées sur des termes en utilisant le caractère astérisque (*
) pour remplacer zéro ou plusieurs caractères : user_name:john*
. Ils peuvent être utilisés pour la recherche de préfixes, par exemple user_name:j*
Pour les autres utilisations des caractères génériques (par ex., la correspondance de suffixes), les littéraux doivent comporter 3 caractères ou plus. Par exemple, name:*usa
est autorisé, mais name:*sa
ne l’est pas.
Le point d’interrogation (?
) n’est pas pris en charge.
Par exemple, pour trouver tous les journaux des utilisateurs dont le nom commence par john
, utilisez q=user_name:john*
.
Plages
Vous pouvez utiliser des plages dans vos requêtes de recherche de journaux. Pour les intervalles inclusifs, utilisez des crochets : [min TO max]
, et pour les plages exclusives, utilisez des crochets : {min TO max}
.
Les accolades et les crochets peuvent être combinés avec la même expression de plage. Vous pouvez également utiliser les recherches génériques au sein des plages.
Par exemple, pour trouver tous les journaux du 18 décembre 2018 à aujourd’hui, utilisez q=date:[2018-12-18 TO *]
.
Si vous souhaitez rechercher des journaux depuis le début de votre période de conservation jusqu’au 19 décembre 2018 inclus, utilisez q=date:[* TO 2018-12-19}
.
Exemples de requêtes
Ci-dessous se trouvent des exemples de types de requêtes que vous pouvez effectuer avec Management API.
Cas d’utilisation | Requête |
---|---|
Rechercher tous les journaux avec des connexions contenant "Pass" | connection:*pass* |
Rechercher tous les journaux avec un nom d’utilisateur contenant "fred" | user_name:*fred* |
Rechercher tous les journaux avec des ID utilisateur correspondant exactement à "123" | user_ID:"123" |
Rechercher tous les journaux dont le type commence par "s" | type:s* |
Rechercher les noms d’utilisateur qui commencent par "jane" et se terminent par "smith" | user_name:jane*smith |
Rechercher tous les journaux en décembre 2018 | date:[2018-12 TO 2019-01-01} |
Rechercher tous les journaux à partir du 10 décembre 2018 | date:[2018-12-10 TO *] |
Rechercher tous les journaux du 1er janvier 2019 à 1 h, jusqu’au 1er janvier 2019 à 12:23:45 | date:[2019-01-01T01:00:00 TO 2019-01-01T12:23:45} |
Limites
Si vous obtenez l’erreur
414 Request-URI Too Large
, cela signifie que votre chaîne de requête est plus longue que la longueur prise en charge. Dans ce cas, affinez votre recherche.Les champs du journal ne sont pas symbolisés, donc
description:rule
ne correspondra pas à une description avec la valeurCreate a rule
ouUpdate a rule
. Utilisez plutôtdescription:*rule
. Voir les recherches génériques et leurs correspondances exactes.L’extension de champ
.raw
n’est pas prise en charge. Les champs correspondent à l’intégralité de la valeur fournie et ne sont pas transformés en jetons.
Pagination
Lors de l’appel des points de terminaison GET /api/v2/logs
ou GET /api/v2/users/{user_id}/logs
en utilisant le paramètre include_totals
, le résultat est un objet JSON contenant un résumé des résultats et des journaux demandés. L’objet JSON ressemble à ceci :
{
"length": 5,
"limit": 5,
"logs": [...],
"start": 0,
"total": 5
}
Was this helpful?
Lors de la recherche de journaux, le champ totals indique le nombre de journaux renvoyés dans la page (comme le champ length).