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...
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 ».
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.
Consultez la documentation Splunk suivante pour plus d’informations :
*Cet article est une traduction de celui initialement publié sur le blog Splunk anglais.
La plateforme Splunk élimine les obstacles qui séparent les données de l'action, pour donner aux équipes d'observabilité, d'IT et de sécurité les moyens de préserver la sécurité, la résilience et le pouvoir d'innovation de leur organisation.
Fondée en 2003, Splunk est une entreprise internationale. Ses plus de 7 500 employés, les Splunkers, ont déjà obtenu plus de 1 020 brevets à ce jour, et ses solutions sont disponibles dans 21 régions du monde. Ouverte et extensible, la plateforme de données Splunk prend en charge les données de tous les environnements pour donner à toutes les équipes d'une entreprise une visibilité complète et contextualisée sur l'ensemble des interactions et des processus métier. Splunk, une base solide pour vos données.