T’es IN ? | Rechercher plusieurs valeurs de champ

Tips & Tricks Splunk

Il est maintenant plus facile de rechercher différentes valeurs dans le même champ. Merci Splunk !

Par exemple, imaginez que, dans le champ « error_code », vous voulez localiser uniquement les codes 400, 402, 404 et 406.

Il peut être très fastidieux de saisir chaque paire champ-valeur successivement pour rechercher une simple liste de valeurs dans le même champ. Mais c’est exactement ce qu’il fallait faire avant la version 6.6.0. Il fallait spécifier chaque paire champ-valeur sous la forme d’une condition OR distincte.

    ...error_code=400 OR error_code=402 OR error_code=404 OR error_code=406...

Utiliser IN dans la commande de recherche

L’une des meilleures améliorations apportées à la commande search est l’opérateur IN. Avec l’opérateur IN, vous pouvez indiquer un champ et une liste de valeurs. Par exemple :

    ... error_code IN (400, 402, 404, 406) | ...

Comme la commande search est implicite au début de chaque chaîne de recherche, il vous suffit de spécifier le nom du champ et une liste de valeurs. La syntaxe est simple :

    champ IN (value1, value2, ...)

Remarque : l’opérateur IN doit être saisi en majuscules. Vous pouvez également utiliser un caractère générique dans la liste de valeurs pour rechercher des valeurs similaires. Par exemple :

    ... error_code IN (40*) | ...

Cette recherche examine le champ error_code de vos événements et renvoie tous les événements contenant un code commençant par 40.

Plutôt sympa, non ?

Avec la commande search, cette fonctionnalité est appelée « opérateur IN ». Avec les commandes eval et where, c’est la « fonction IN ».

Utilisation de IN dans les commandes eval et where

Pour utiliser IN dans les commandes eval et where, vous devez utiliser IN comme fonction d’eval. La documentation Splunk l’appelle la « fonction IN ».

Et la syntaxe et l’utilisation sont légèrement différentes qu’avec la commande search.

Voici les options de syntaxe prises en charge :

    ...| eval new_field=if(IN(field,"value1","value2", ...), "value_if_true","value_if_false")
    ...| where field IN("value1","value2", ...)
    ...| where IN(field,"value1","value2", ...)

Remarque : contrairement à l’opérateur IN, la fonction IN peut être saisie en majuscules ou en minuscules. La fonction IN est saisie en majuscules dans cet article, dans la syntaxe et dans les exemples à des fins de clarté.

Commençons par la commande where parce qu’elle est assez simple.

L’exemple suivant utilise la commande where pour renvoyer IN=TRUE si l’une des valeurs du champ status correspond à l’une des valeurs de la liste. Les valeurs du champ status sont des codes de statut HTTP. Comme les codes sont des valeurs de type chaîne (et non des valeurs numériques), vous devez encadrer chaque valeur par des guillemets.

    ... | where status IN("400", "401", "403", "404", "406")

Vous pouvez également spécifier cet exemple comme suit :

    ... | where IN(status,"400", "401", "403", "404", "406")

L’utilisation de la fonction IN avec la commande eval est différente de celle de la commande where. La commande eval ne peut pas accepter les valeurs booléennes, et vous devez donc utiliser la fonction IN dans une autre fonction capable de traiter les valeurs booléennes renvoyées par la fonction IN.

Examinons un exemple où vous allez utiliser la fonction IN comme premier paramètre de la fonction IF. Nous allons utiliser le fichier access.log inclus dans les données du tutoriel de recherche.

Dans l’exemple suivant, la fonction IN est utilisée avec la fonction IF pour évaluer le champ action. Ensuite, la commande stats effectue un calcul.

    sourcetype=access_combined_wcookie 
    | eval activity=if(IN(action, "addtocart","purchase"),"Lié à un achat","Autre") 
    | stats count by activity

Voici ce que fait la recherche :

Les résultats apparaissent dans l’onglet Statistics et indiquent le nombre d’événements contenant une activité liée à un achat ou un autre type d'activité.

Ce tableau de résultats est très pratique. Vous pouvez également présenter les résultats sous forme graphique. Passez à l’onglet Visualization et choisissez le type de graphique « Graphique circulaire ».

Vous pouvez ensuite enregistrer cette recherche sous la forme d'un panneau du tableau de bord ou d'un rapport.

Ressources

Consultez la documentation Splunk suivante pour plus d’informations :

*Cet article est une traduction de celui initialement publié sur le blog Splunk anglais.

Articles similaires

Présentation de la Splunk App for Behavioral Profiling
Trucs & Astuces
7 min de lecture

Présentation de la Splunk App for Behavioral Profiling

Découvrez l’application Splunk pour le profilage comportemental, un ensemble de workflows qui vous permettent d’opérationnaliser la détection et l’évaluation des anomalies comportementales à grande échelle dans des environnements complexes. Ces workflows corrèlent les anomalies aux profils et mettent en évidence les entités qui dégradent la résilience.
Splunk Connect for Syslog : une GDI clé en main et évolutive pour les données syslog – Partie 2
Trucs & Astuces
8 min de lecture

Splunk Connect for Syslog : une GDI clé en main et évolutive pour les données syslog – Partie 2

Deuxième partie d’une série en deux temps sur Splunk Connect for Syslog et sa configuration
Y'a t-il de la lumière dans un frigo fermé ?
Trucs & Astuces
6 min de lecture

Y'a t-il de la lumière dans un frigo fermé ?

C’est peut-être la question existentielle que tout le monde se pose depuis l’invention des « boîtes réfrigérantes » : que se passe-t-il dans un réfrigérateur éclairé lorsque l’on referme la porte ?