Recherche d'interrogation

Oracle Log Analytics vous permet de filtrer et d'analyser de vastes quantités de données de journal dans vos bases de données d'entreprise, au moyen d'un affichage unique, unifié et personnalisable, facile à lire et à parcourir. Utilisez la fonction de recherche intégrée pour filtrer toutes les données de journal disponibles et retourner des entrées de journal spécifiques.

Oracle Log Analytics Search vous aide à forer des entrées de journal spécifiques, permettant ainsi une analyse et une surveillance ciblées dans l'ensemble de votre entreprise. Utilisez le langage d'interrogation Oracle Log Analytics pour formuler vos interrogations de recherche, qui extrairont les entrées de journal propres au problème que vous dépannez.

Le langage d'interrogation pour l'analyse des journaux vous permet de spécifier l'action à effectuer sur les résultats de recherche. Les commandes peuvent être des commandes de recherche ou des commandes de statistiques. Les commandes de recherche sont celles qui filtrent davantage les entrées de journal disponibles. Les commandes statistiques effectuent des opérations statistiques sur les résultats de recherche. Pour la liste complète des commandes, leur syntaxe et des exemples pour les utiliser, voir Informations de référence sur les commandes du service de langue d'interrogation.

Le langage d'interrogation Oracle Log Analytics vous permet d'effectuer les opérations suivantes :

  • Filtrer et explorer toutes les données de journal disponibles

  • Effectuer une analyse des causes fondamentales

  • Exécuter une analyse statistique sur les entités sélectionnées

  • Générer des rapports

  • Enregistrer des interrogations de recherche pour une utilisation ultérieure

  • Extraire des recherches enregistrées pour créer des tableaux de bord

Vous pouvez construire votre interrogation de recherche en faisant glisser des éléments depuis le panneau Champ et en les déposant dans les sections appropriées de la colonne Visualiser, ou en entrant directement votre interrogation dans le champ Rechercher. Pour plus d'informations sur l'utilisation de l'interface utilisateur pour formuler vos interrogations, voir Formuler des interrogations à l'aide de l'interface utilisateur Log Analytics.

Pour écrire des interrogations exécutantes à l'aide de la commande regex, consultez la syntaxe RE2J à l'adresse Implémentation Java de RE2.

Utiliser l'assistant d'aide sur les interrogations

Log Analytics vous offre désormais une aide active pour apprendre rapidement à écrire des interrogations et fournit également un vaste ensemble d'exemples d'interrogations pour l'analyse avancée.

Cliquez sur l'icône d'aide Icône d'aide sur l'interrogation à côté de la barre d'interrogation dans l'explorateur de journaux pour ouvrir l'assistant d'aide sur les interrogations. En quelques minutes, vous pouvez comprendre le format et la syntaxe des interrogations que vous pouvez composer. Exécutez les exemples d'interrogations à partir de la recherche de base à l'analyse avancée et familiarisez-vous avec la référence de l'interrogation. L'assistant vous donne quelques conseils et raccourcis pour rendre votre recherche efficace. Vous pouvez également afficher le résultat de l'exécution de certaines commandes communes pour leurs cas d'utilisation typiques.

Effectuer des recherches dans les journaux à l'aide de mots clés et d'expressions

Vous utilisez des commandes pour extraire les données de journal et les manipuler. La première commande (implicite) d'une interrogation est la commande search. Une recherche est une série de commandes délimitées par une barre verticale (|). La première chaîne avec espaces qui suit la barre verticale identifie la commande à utiliser. La barre verticale indique que les résultats de la commande doivent être utilisés comme entrée pour la commande suivante.

Par exemple, pour rechercher tous les messages d'erreur de base de données, entrez l'expression logique suivante dans la barre de recherche d'Oracle Log Analytics :

Severity = 'error' AND 'Entity Type' = 'Database Instance'

En encadrant les mots entre guillemets et en les incluant dans la chaîne d'interrogation sous forme d'expression (‘Database Instance’, par exemple), vous verrez que seuls les journaux contenant l'expression ‘Database Instance’ sont retournés. En outre, les recherches par mots clés dont la sous-chaîne pourrait être interprétée comme une directive distincte doivent être spécifiques entre guillemets. Par exemple, pour rechercher la chaîne and, vous devez entrer la chaîne entre guillemets simples (‘and’) afin d'empêcher le système d'utiliser sa signification booléenne.

Pour plus d'exemples et de détails sur l'utilisation du langage d'interrogation pour rechercher les journaux, voir Écrire des interrogations de recherche.

Lister les recherches récentes

Oracle Log Analytics vous permet de sélectionner et d'exécuter une recherche récemment utilisée. Lorsque vous cliquez sur le champ Rechercher ou que vous entrez du texte dans le champ Rechercher, Oracle Log Analytics affiche la liste des recherches récemment utilisées. Vous pouvez ainsi accéder rapidement aux commandes de recherche récemment utilisées. Vous pouvez sélectionner l'une des commandes répertoriées et cliquer sur Exécuter pour exécuter la commande de recherche sélectionnée.

Note

La liste récemment utilisée est disponible sur une base par session. Ainsi, si vous déconnectez d'Oracle Log Analytics, puis vous reconnectez, la liste de la session précédente n'est pas affichée. Une nouvelle liste de recherches récentes est créée pour votre session.

Utiliser la fonction de suggestion automatique

Lorsque vous entrez une interrogation dans le champ Rechercher , la fonction de suggestion automatique d'Oracle Log Analytics suggère automatiquement des termes que vous pouvez utiliser dans votre interrogation. Oracle Log Analytics affiche une liste des suggestions, en fonction du texte que vous avez entré dans le champ Rechercher. Par exemple, si vous avez entré le nom d'un champ ou d'une action de recherche, la fonction de suggestion automatique affiche uniquement les valeurs possibles pour ce champ ou la liste des actions disponibles.

Écrire des interrogations de recherche

Vous pouvez spécifier des entités, des mots clés, des expressions ou des caractères génériques, des opérateurs de comparaison, des expressions booléennes, des fonctions et des heures pour créer votre interrogation de recherche Oracle Log Analytics.

Pour utiliser la fonction de recherche dans Oracle Log Analytics, vous devez formuler une interrogation de recherche et l'entrer dans le champ Rechercher.

Utiliser l'interface utilisateur Log Analytics

L'interface utilisateur Oracle Log Analytics vous permet de formuler votre interrogation de recherche.

Vous pouvez utiliser les éléments suivants de l'interface utilisateur pour formuler votre interrogation de recherche :

  • Barre de recherche : Votre interrogation de recherche s'affiche ici. Vous pouvez modifier directement le texte de ce champ pour préciser davantage vos résultats de recherche.

    La barre de recherche augmente ou diminue en fonction du nombre de lignes ajoutées à l'interrogation. Elle peut comporter un maximum de 21 lignes et un minimum de 1 ligne. Certains raccourcis personnalisés sont disponibles :

    • Ctrl + i : Indenter toutes les lignes de texte présentes dans l'éditeur. Notez que la majuscule I ouvre le débogueur.
    • Ctrl + Enter : Exécuter l'interrogation affichée dans l'éditeur
    • Ctrl + Space : Afficher la liste des options avec remplissage automatique en fonction de la position du curseur
    • Ctrl + Z : Annuler la dernière modification
    • Ctrl + Y : Rétablir la dernière modification
    • Ctrl + D : Supprimer la ligne courante

    Note : Ne pas utiliser la touche SHIFT sauf indication contraire.

    Positionnez le curseur dans les crochets ouvrants ou fermants pour afficher l'élément correspondant mis en surbrillance. Les éléments qui peuvent être mis en surbrillance sont ( ) et [ ].

    La barre de recherche prend en charge deux thèmes différents, la couleur et l'échelle de gris. Vous pouvez modifier dynamiquement les thèmes en changeant l'option dans la fenêtre contextuelle d'aide.

  • Champ : Le panneau Champ comprend les sections suivantes :

    • Les attributs Épinglé vous permettent de filtrer les données des journaux en fonction des éléments suivants :

      • Sources de journaux, telles que les journaux de base de données, les journaux Oracle WebLogic Server, etc.

      • Entités de journal, qui sont les noms réels des fichiers journaux.

      • Étiquettes, qui sont des marqueurs ajoutés aux entrées de journal lorsque les entrées de journal correspondent à des conditions définies spécifiques.

      • Noms de chargement des données de journal chargées sur demande.

      Par défaut, les entités et les détails de la collecte sont disponibles dans le seau Épinglé du panneau Champs pour le filtrage. Vous pouvez épingler des champs supplémentaires dans le seau Épinglé en fonction de votre utilisation. Une fois épinglés, les champs sont déplacés vers le seau Épinglé. Vous pouvez désépingler n'importe quel champ pour le retirer du seau Épinglé et le replacer dans le seau Intéressant ou Autre.

    • En fonction de vos recherches et de vos interrogations, Oracle Log Analytics ajoute automatiquement des champs au seau Intéressant pour vous offrir une référence rapide. Vous pouvez épingler un champ disponible sous le seau Intéressant. Le champ épinglé est alors déplacé vers le seau Épinglé.

    • Vous pouvez épingler n'importe quel champ du seau Autre et le déplacer vers le seau Épinglé. Si vous utilisez un champ du seau Autre dans votre recherche ou votre interrogation, il est déplacé vers le seau Intéressant.

      Les options sélectionnées sont automatiquement ajoutées à l'interrogation dans la barre de recherche.

  • Visualiser : Dans ce volet, vous pouvez sélectionner la façon dont vous préférez afficher les résultats de recherche. Dans le champ Regrouper par, vous pouvez choisir les mesures selon lesquelles regrouper les résultats.

  • Enregistrer : Utilisez ce bouton pour enregistrer l'interrogation de recherche actuellement dans le champ Rechercher, à exécuter ultérieurement.

  • Ouvrir : Utilisez ce bouton pour voir les interrogations de recherche enregistrées précédemment. Vous pouvez exécuter ces interrogations et obtenir les résultats courants, ou vous pouvez les utiliser pour créer des tableaux de bord.

  • Nouveau : Utilisez ce bouton pour lancer une nouvelle interrogation de recherche.

  • Exporter : Utilisez ce bouton pour exporter le résultat de l'interrogation de recherche courante dans un fichier au format Comma-separated Values(CSV) ou JavaScript Object Notation(JSON).

  • Exécuter : Utilisez ce bouton pour exécuter l'interrogation qui se trouve actuellement dans le champ Rechercher.

  • Sélecteur de temps : Utilisez le sélecteur de temps pour spécifier la période.

  • Volet de visualisation : Les résultats de l'interrogation de recherche s'affichent dans ce volet. Les informations filtrées de ce volet se chargent lorsque l'interrogation du champ Rechercher est exécutée. En cliquant sur une zone du graphique dans le volet de visualisation, vous pouvez forer l'interrogation de recherche et la mettre à jour.

Utiliser des mots clés, des expressions et des caractères génériques

Les interrogations de chaîne peuvent inclure des mots clés et des expressions. Un mot clé représente un seul mot (par exemple, database), tandis qu'une phrase référence plusieurs mots, entre guillemets simples (‘ ‘) ou doubles (“ “) (par exemple, ‘database connection’). Si vous spécifiez un mot clé ou une expression dans votre interrogation, toutes les entrées de journal contenant le mot clé ou l'expression spécifié sont retournées après l'exécution de l'interrogation.

Le langage de recherche Oracle Log Analytics prend également en charge le mappage de modèles spéciaux. En d'autres termes, vous pouvez utiliser des caractères génériques, tels que l'astérisque (*), le point d'interrogation (?) et le pourcentage (%), pour compléter les mots clés.

Le tableau suivant répertorie les caractères génériques pris en charge et fournit une brève description de chacun.

Caractère générique Description

?

Utilisez ce caractère pour faire correspondre exactement un caractère des possibilités au mot clé. Par exemple, si vous entrez host?, le mot clé host1 est considéré comme une correspondance alors que host.foo.bar ne l'est pas.

* ou %

Utilisez l'un ou l'autre de ces caractères pour faire correspondre 0 ou plusieurs des caractères des possibilités au mot clé. Par exemple, si vous entrez host* ou host%, host1 et host.foo.bar sont considérés comme correspondant au mot clé. De même, si vous entrez %host%, ahostb et myhost sont considérés comme correspondant au mot clé spécifié.

Vous pouvez spécifier plusieurs mots clés. Par exemple, database et connection. Les journaux contenant les mots database et connection (mais pas nécessairement ensemble) sont retournés. Cependant, les occurrences de ces mots ne doivent pas nécessairement être consécutives. Toutefois, en insérant les mots entre guillemets et en les incluant dans la chaîne d'interrogation sous forme d'expression (‘database connection’, par exemple), seuls les journaux contenant l'expression ‘database connection’ sont retournés. Pour voir comment utiliser plusieurs mots clés, voir Utiliser des expressions booléennes.

Lorsque vous spécifiez un mot clé ou une expression, tenez compte de ce qui suit :

  • Les mots clés et les chaînes d'expression ne sont pas sensibles à la casse.

  • Les mots clés qui ne sont pas entre guillemets doivent contenir uniquement des caractères alphanumériques, des traits de soulignement (_) et des caractères génériques (*, % et ?).

  • Les recherches par mots clés dans lesquelles la sous-chaîne peut être interprétée comme une directive distincte doivent être spécifiques entre guillemets. Par exemple, pour rechercher la chaîne and, vous devez l'entrer entre guillemets simples (‘and’) afin d'empêcher le système d'utiliser sa signification booléenne.

Note

Pour utiliser des caractères génériques avec le champ message, vous devez également utiliser LIKE ou LIKE IN. Voici des exemples d'utilisation de caractères génériques avec message.
ORA-* AND message LIKE 'connection* error*'
ORA-* AND message LIKE IN ('tablesp*','connection* error*')

Utiliser des opérateurs de comparaison

Les opérateurs de comparaison sont des conditions que vous indiquez pour établir une relation entre un champ et sa valeur. Les champs sans valeur sont considérés comme nuls.

Le tableau suivant répertorie les opérateurs de comparaison pris en charge et fournit une brève description de chacun.

Opérateur de comparaison Description
< Si vous utilisez cet opérateur dans votre interrogation, toutes les entrées de journal dont la valeur, pour le champ correspondant, est inférieure à la valeur indiquée, sont retournées.
<= Si vous utilisez cet opérateur dans votre interrogation, toutes les entrées de journal dont la valeur, pour le champ correspondant, est inférieure ou égale à la valeur indiquée, sont retournées.
> Si vous utilisez cet opérateur dans votre interrogation, toutes les entrées de journal dont la valeur, pour le champ correspondant, est supérieure à la valeur indiquée, sont retournées.
>= Si vous utilisez cet opérateur dans votre interrogation, toutes les entrées de journal dont la valeur, pour le champ correspondant, est supérieure ou égale à la valeur indiquée, sont retournées.
= Si vous spécifiez cet opérateur dans votre interrogation, toutes les entrées de journal dont la valeur, pour le champ correspondant, est égale à la valeur indiquée, sont retournées.
!= Si vous spécifiez cet opérateur dans votre interrogation, toutes les entrées de journal dont la valeur, pour le champ correspondant, est différente de la valeur indiquée, sont retournées.

Utilisez ces opérateurs pour rechercher des journaux avec des champs ayant des valeurs spécifiques. Par exemple, spécifiez Severity=’ERROR’ pour rechercher dans les journaux disponibles ceux où la valeur du champ Severity est ERROR. De même, Severity!=NULL retourne tous les journaux où la valeur du champ Severity n'est pas nulle (en d'autres termes, où la gravité a été spécifiée).

Note

La valeur à droite de l'opérateur de comparaison doit être indiquée entre guillemets si la valeur n'est pas numérique ou NULL.

Utiliser des expressions booléennes

La fonction Oracle Log Analytics Search a les capacités LIKE et REGEX, conformément aux conventions standard. Les expressions booléennes peuvent avoir une valeur true ou false.

Le tableau suivant répertorie les expressions booléennes prises en charge, ainsi qu'une brève description de chacune.

Expression booléenne Description
AND Utilisez cette expression pour afficher uniquement les journaux qui contiennent les deux paramètres spécifiés.
NOT IN ou IN Utilisez cette expression pour rechercher les données qui se trouvent dans un sous-jeu spécifique de données disponibles. Par exemple, ‘Entity Type’ IN (‘Database Instance’,‘Automatic Storage Management’,’Listener’,’Cluster’) considère d'abord uniquement les journaux qui contiennent ‘Database Instance’, ‘Automatic Storage’, Listener ou Cluster, puis identifie les journaux contenant ‘Entity Type’. En revanche, lorsque vous utilisez NOT IN, les entrées de journal avec le mot clé ou l'expression spécifié sont retournées, à l'exclusion des entrées spécifiées. Par exemple, ‘Entity Type’ NOT IN (‘Database Instance’,’Automatic Storage Management’,’Listener’,’Cluster’) filtre d'abord les entrées de journal avec ‘Database Instance’, ‘Automatic Storage Management’, Listener et Cluster, puis retourne ces entrées de journal dont la valeur de ‘Target Type’ n'est pas une des valeurs spécifiées.

Le mot réservé NULL est pris en charge avec cet opérateur booléen.

NOT LIKE ou LIKE Utilisez cette expression pour rechercher les données qui correspondent ou qui ne correspondent pas au modèle de caractères spécifié. Le modèle de caractère est une chaîne pouvant contenir un ou plusieurs caractères génériques.
NOT LIKE IN ou LIKE IN Comme pour [NOT] IN, cette expression vous permet d'utiliser une forme abrégée pour exprimer plusieurs clauses LIKE.
OR Utilisez cette option pour afficher les journaux contenant l'un des paramètres indiqués.

Le langage Oracle Log Analytics Search prend en charge l'imbrication d'expressions Boolean dans d'autres expressions Boolean. Prenons par exemple l'interrogation suivante :

fatal ('order' OR host LIKE '*.oracle.com')

L'exécution de cette interrogation retourne tous les journaux qui contiennent fatal et qui contiennent le mot clé order ou proviennent d'un hôte dont le nom se termine par .oracle.com.

Formuler des interrogations à l'aide de l'interface utilisateur Log Analytics

Vous pouvez utiliser l'interface utilisateur Oracle Log Analytics pour formuler votre interrogation de recherche.

Par défaut, l'interrogation * | stats count by ‘log source’ est indiquée dans le champ Rechercher.

Pour voir des données pour des Entités spécifiques, procédez comme suit :

  1. Ouvrez le menu de navigation et cliquez sur Observabilité et gestion. Sous Log Analytics, cliquez sur Explorateur de journaux.

  2. Sous l'en-tête Entités du panneau Champs, sélectionnez Entité ou Type d'entité, selon la façon dont vous souhaitez voir les entités. Les bases de données enregistrées sont regroupées en fonction de la sélection effectuée. Par exemple, si vous sélectionnez Type d'entité, les entités sélectionnées sont regroupées en fonction de leur type.

  3. Sélectionnez l'entité ou le type d'entité pour lequel vous souhaitez afficher les données.

  4. Cliquez sur Soumettre.

    Le bouton Effacer apparaît à côté de l'entité que vous avez sélectionnée et les données s'affichent dans le volet de visualisation.

Pour voir les données d'un champ spécifique, procédez comme suit :

  1. Sélectionnez le type de champ dans le panneau Champs et sous les attributs, le seau Épinglé, Intéressant ou Autre.

  2. Sélectionnez l'étiquette, l'entité de journal, la source de journaux, le responsable ou le nom du chargement pour lesquels vous souhaitez voir les données. Vous pouvez sélectionner plusieurs étiquettes, entités de journal, sources de journaux, responsables ou noms de chargement.

  3. Cliquez sur Soumettre.

    Les données du champ sont chargées dans le volet de visualisation.

Spécifier l'intervalle de temps dans votre interrogation

En général, l'intervalle de temps que vous sélectionnez dans l'explorateur de journaux n'est pas inclus dans la chaîne d'interrogation. Vous pouvez spécifier l'intervalle de temps dans votre interrogation à l'aide du modificateur Temps absolu ou Temps relatif de la commande search.

Note

Dans le cas d'une recherche enregistrée, l'intervalle de temps sélectionné dans l'explorateur de journaux lors de la création de la recherche enregistrée est stocké comme l'un des composants de la recherche enregistrée. Lorsque vous utilisez la recherche enregistrée, vous pouvez modifier l'heure à l'aide du sélecteur d'intervalle de temps dans l'explorateur de journaux.

D'autre part, lorsque l'intervalle de temps est spécifié dans une interrogation, l'intervalle sélectionné dans l'explorateur de journaux est ignoré. L'intervalle de temps inclus dans l'interrogation est utilisé pour l'analyse des journaux. Lorsque vous enregistrez cette interrogation en tant que recherche enregistrée, l'intervalle de temps spécifié dans l'interrogation est pris en compte pour les tâches de recherche enregistrée et non pas l'heure spécifiée dans l'explorateur de journaux.

Exemples dans lesquels un intervalle de temps peut être spécifié dans l'interrogation :

  • Retourne tous les journaux d'erreurs ORA-600 détectés au cours des dernières 24 heures :

    Message like 'ORA-600%' and time > dateRelative(24h)
  • Retourne le nombre de journaux pour la cible d'hôte myHost au cours des 90 derniers jours :

    'Host Name (Server)' = myHost and Time > dateRelative(90day) | stats count as 'Num Host Logs'

Fonctions basées sur le temps pouvant être utilisées avec la commande search

Les fonctions basées sur le temps suivantes ne peuvent être utilisées qu'avec la commande search :

  • toDate : Heure absolue, par exemple 2014-07-15T16:24:51.000Z ou '2014-07-12', 'yyyy-MM-dd'.

    Syntaxe pour toDate : toDate(<time>).

  • dateRelative : Crée une date relative à la date courante, par exemple 12h ou 2d, day.

    Syntaxe pour dateRelative : dateRelative(<timespan>, <rounding interval>) où l'arrondissement est basé sur l'heure UTC.

  • dateadd : Ajoute des unités de temps à la date spécifiée, par exemple, ajoutez Day, 2 à toDate('2024-05-12', 'yyyy-MM-dd')

    Syntaxe pour dateadd : dateadd(<date>, <unit>, <amount>).

  • dateset : Modifie une date en fonction des unités de temps. Par exemple, toDate('2015-08-12', 'yyyy-MM-dd') a été modifié avec year, 2014, month, 7

    Syntaxe pour dateset : dateset(<date>, <unit>, <value> [, <unit>,<value>]).

  • now : Date et heure courantes.

    Syntaxe pour now : now().

Les critères de temps peuvent être exprimés à l'aide des opérateurs de comparaison =, !=, <, <=, >, >= et de l'opérateur logique and.

Unités de temps prises en charge

  • All Time

    Exemple JSON équivalent : "timeFilter": { "type" : "relative", "timeUnit" : "allTime" }

  • Deuxième : s, sec, secs, seconde, secondes

  • Minute : m, min, mins, minute, minutes

    Exemple : Last 60 minutes

    Exemple JSON équivalent : "timeFilter": { "type" : "relative", "duration" : "60", "timeUnit" : "minutes" }

  • Heure : h, hr, heures, heure, heures, heures

  • Jour : d, jour, jours

  • Semaine : w, semaine, semaines

  • Mois : mon, mois, mois

  • Année : année, année, années

Un exemple pour la date absolue au format JSON est "timeFilter": { "type" : "absolute", "startTime" : "2015-04-26T08:00:00.000Z", "endTime" : "2015-04-27T08:00:00.000Z" }.

Exemples d'intervalle de temps dans les interrogations

L'interrogation suivante recherche tout entre 2 dates absolues spécifiées dans le format standard ISO :

time between '2014-07-15T16:24:51.000Z' and '2014-07-17T18:14:16.000Z'

Voir ISO 8601 : FORMAT DE DATE ET DE TEMPS.

L'interrogation suivante recherche tous les éléments basés sur 2 dates absolues qui ne sont pas au format standard ISO :

time between toDate('2014-07-12', 'yyyy-MM-dd') and toDate('2014-07-15', 'yyyy-MM-dd')

L'interrogation suivante recherche tous les éléments sauf les 12 dernières heures (* à gauche de l'expression between représente nouvelle date(0), * à droite est maintenant) :

time between * AND dateRelative(12h)

L'interrogation suivante recherche tous les éléments des 12 dernières heures :

time > dateRelative(12h)

L'interrogation suivante recherche tous les éléments des 30 dernières minutes arrondis au début de l'heure :

time > dateRelative(30min, hour)

L'interrogation suivante recherche les enregistrements datés d'avant le 12 juillet 2014 :

time < dateAdd(toDate('2014-07-22', 'yyyy-MM-dd'), day, -10)

L'interrogation suivante recherche les enregistrements datés après le 10 juin 2010 :

time > dateSet(toDate('2015-08-10', 'yyyy-MM-dd'), year, 2010, month, 6)

L'interrogation suivante recherche les enregistrements dont la dernière date de connexion est antérieure à l'heure courante :

'Upload Name' = idcs_dev8_dormant_upload and 'Last Login Date' < now()

L'interrogation suivante recherche les données des 24 dernières heures :

time between daterelative(1d) and now()

L'interrogation suivante recherche entre un horodatage absolu et maintenant :

time between '2015-06-15T00:00:00.000Z' and now()

Écrire des sous-interrogations

Les sous-interrogations permettent à l'interrogation enfant de fournir un filtre dynamique à ses interrogations parents. Les sous-interrogations sont évaluées en premier et le résultat est ensuite utilisé dans l'interrogation parent.

  • Vous pouvez imbriquer des sous-interrogations les unes dans les autres, ainsi qu'une interrogation particulière comportant plusieurs sous-interrogations au même niveau.
  • Par défaut, les sous-interrogations héritent de l'intervalle de temps global, mais vous pouvez le remplacer à l'aide de la syntaxe time between T1 and T2, si nécessaire.
  • Les sous-interrogations sont limitées pour retourner uniquement les 2 000 premières correspondances en entrée de leur parent. Les autres résultats sont tronqués.
  • La temporisation maximale est de 30 secondes.
  • Tous les champs retournés par une sous-interrogation doivent correspondre aux champs de l'interrogation parent par leur nom. Sinon, une erreur sera générée.
  • Vous ne pouvez utiliser des sous-interrogations que dans une commande de recherche.
  • Vous pouvez utiliser toutes les commandes d'une sous-interrogation, sauf cluster, clustersplit, clustercompare, fieldsummary, delete, classify, highlight et highlightrows.

Exemples :

  • Planifier le trafic depuis la liste noire d'adresses IP au fil du temps :
    [searchlookup table=ip_blacklist | distinct ip | rename ip as 'host address'] | timestats count
  • Lister les produits les plus achetés pour les utilisateurs principaux d'un site de commerce électronique :
    'Log Source'='WLS Access Logs' status=200 action=purchase ['Log Source'='WLS Access Logs' status=200 action=purchase | stats count by 'Host (Client Address)' | top limit=1 'Host(Client Address)' | fields -*, 'Host (Client Address)'] | lookup table=products select 'product name' using productid | stats count, distinctcount(productId), unique('product name') by 'Host (Client Address)'
  • Rechercher les 4 principaux ID de processus du système d'exploitation avec la somme la plus élevée :
    [ *|stats sum('OS Process ID') as OSprocessidSum by 'OS Process ID' | top 4 OSprocessidSum | fields -OSprocessidSum ] | stats count by 'OS Process ID', 'Log Source', 'Host Name(Server)'
  • Afficher tous les journaux de la cible avec les journaux ayant la gravité la plus fatale :
    * and [ Severity = fatal | stats count by Target | top limit = 1 Count | fields -Count]

Rechercher des fonctions

Vous pouvez utiliser les fonctions suivantes dans vos interrogations de recherche :

Fonction Description Exemple

md5(string)

Recherche la valeur encodée md5

md5("hash my input")

sha1(string)

Recherche la valeur encodée sha1

sha1("hash my input")

sha256(string)

Recherche la valeur encodée sha256

sha256("hash my input")

sha512(string)

Recherche la valeur encodée sha512

sha512("hash my input")

encode64(string)

Recherche la valeur encodée Base64

encode64("my input")

decode64(string)

Recherche la valeur décodée Base64

decode64("encoded input")

anyOf(condition1, condition2, ..., conditionN)

Note : Cela équivaut à (condition1 OU condition2 OU ... conditionN)

Note : Cette option peut également être utilisée dans eval/where

anyof(ERROR, WARNING, FATAL) - Rechercher l'un de ces mots

anyof(Severity = ERROR, ERROR)

allOf(condition1, condition2, ..., conditionN)

Note : Cela équivaut à (condition1 AND condition2 AND ... conditionN)

Note : Cette option peut également être utilisée dans eval/where

allof(ERROR, WARNING, FATAL) - Rechercher les trois mots

allof(Severity = ERROR, ERROR)

anyFields(wildCardExpression) = value

anyFields(wildCardExpression) != value

Note : Cela équivaut à (field1 = valeur OR field2 = valeur OR ...)

Note : Cette option peut également être utilisée dans eval/where

anyFields('Project*) != null

Convertit en ('ID projet'!= nul ou 'Nom du projet'!= nul ou 'Description du projet'!= nul)

allFields(wildCardExpression) = value

allFields(wildCardExpression) != value

Note : Cela équivaut à (field1 = valeur AND field2 = valeur OR ...)

Note : Cette option peut également être utilisée dans eval/where

allFields('Project*) != null

Convertit en ('ID projet'!= nul et 'Nom du projet'!= nul et 'Description du projet'!= nul)

Exemples supplémentaires pour anyof() et allof() :

  • Correspond aux journaux contenant l'un des mots suivants : adm, logoff ou user :

    anyof(adm, logoff, user)
  • Correspond aux journaux contenant tous les mots suivants : adm, logoff ou user :

    allof(adm, logoff, user)
  • Correspond aux journaux qui n'ont PAS les mots oracle ou active et dont la valeur n'est pas nulle pour le champ severity.

    severity != null not anyof(oracle, active)
  • Met en correspondance les journaux qui n'ont PAS les deux mots oracle ou active et qui ont une valeur non nulle pour le champ gravité.

    severity != null not allof(oracle, active)
  • Retourne les valeurs de gravité qui commencent par d ou qui commencent par f :

    * | distinct Severity | where anyof(substr(severity, 0, 1) = d, substr(severity, 0, 1) = f)
  • Retourne les valeurs de gravité qui commencent par f et qui sont not fatal :

    * | distinct Severity | where allof(severity != fatal, substr(severity, 0, 1) = f)

Exemples supplémentaires pour allfields() amd anyfields() :

  • Retourne les journaux où tous les champs commençant par la chaîne tar (par exemple : Cible, GUID cible, Type de cible) ne sont pas nuls :

    allfields(tar*) != null
  • allfields est la fonction par défaut et l'interrogation ci-dessus peut être écrite en bref comme suit :

    'tar*' != null
  • Retourne les journaux où l'un des champs commençant par tar est nul :

    
    anyFields(tar*) = null
  • Correspond aux journaux avec tous les champs numériques se terminant par length (par exemple : Longueur de paquet, Longueur, Longueur de paquet UDP) ayant la valeur 2 :

    allFields(*length) = 2
  • Met en correspondance les journaux avec l'un des champs numériques se terminant par length ayant une valeur 2 :

    anyFields(*length) = 2