Filtrer efficacement les données dans Elasticsearch peut être complexe pour de nombreux utilisateurs.
Sans les bons outils, trier et accéder aux données pertinentes devient fastidieux et chronophage.
Le Kibana Query Language (KQL) offre une approche simplifiée et intuitive pour créer des requêtes efficaces, rendant le filtrage de données accessible même aux débutants.
Devenez expert dans l'utilisation d'Elastic pour analyser les données !
Kibana Query Language (KQL) expliqué
Le Kibana Query Language (KQL) est une syntaxe simple permettant de filtrer les données dans Elasticsearch en utilisant soit une recherche en texte libre, soit une recherche basée sur des champs spécifiques. Il est conçu pour être accessible et intuitif, même pour ceux qui ne sont pas experts en requêtes.
- KQL est uniquement utilisé pour filtrer les données et ne gère ni le tri ni l’agrégation.
- Il propose des suggestions automatiques pour les noms de champs, les valeurs, et les opérateurs lors de la saisie, ce qui facilite la construction de requêtes complexes.
Exemple simple de requête KQL
Commençons par une requête simple en recherchant des événements contenant winlogbeat. Il est important de bien configurer la plage de temps pour être certain que les logs que vous recherchez sont dans la période sélectionnée. Voici un exemple :
Le terme winlogbeat sera mis en évidence dans les résultats et affiché en jaune.
Recherche par motif avec KQL
Il est possible d’utiliser un joker (*) pour rechercher tout ce qui commence par un terme particulier, comme dans cet exemple ( win*), Cela affichera tous les éléments qui commencent par win, tels que windows ou winlogbeat :
KQL fournit des suggestions automatiques pendant que vous tapez votre requête, ce qui peut vous aider à trouver rapidement le champ ou la valeur correcte.
Opérateurs logiques dans KQL
Vous pouvez affiner vos requêtes en utilisant des opérateurs spécifiques . Par exemple, pour chercher des systèmes d’exploitation, vous pouvez écrire une requête sur un champ particulier, tel que host.os.family, et utiliser des opérateurs comme :, and, or :
On va choisir host.os.family : windows et aura ces résultats : Le résultat montrera uniquement les documents où le champ host.os.family est égal à « windows ».
Les résultats affichés respectent strictement les critères définis dans la requête.
KQL : Filtrer par plages de valeurs
Pour tester des requêtes KQL sur des données spécifiques, vous pouvez injecter manuellement des documents dans Elasticsearch via l’API DevTools . Par exemple, voici une série de requêtes pour ajouter des documents avec différents ports de destination :
POST /your_index/_bulk
{ "index" : { "_index" : "your_index", "_id" : "1" } }
{ "source.ip": "192.168.1.1", "destination.port": 80, "event.time": "2024-10-12T12:00:00" }
{ "index" : { "_index" : "your_index", "_id" : "2" } }
{ "source.ip": "192.168.1.2", "destination.port": 443, "event.time": "2024-10-12T13:00:00" }
{ "index" : { "_index" : "your_index", "_id" : "3" } }
{ "source.ip": "192.168.1.3", "destination.port": 8080, "event.time": "2024-10-12T14:00:00" }
Et voici comment on peut visualiser les destination.port ajouté :
Maintenant on va essayer de plus filtrer par le choix d’un interval dans la recherche avec
destination.port >= 80 and destination.port <1000
Cela affichera uniquement les logs où le port de destination est compris entre 80 et 999.
Filtrage manuel dans Kibana
En plus de KQL, Kibana permet d’appliquer des filtres manuellement. Pour filtrer les résultats par destination.port, vous pouvez :
- Cliquer sur le bouton « + » à côté de destination.port.
- Sélectionner « Add filter ».
- Configurer manuellement les conditions du filtre.
Le filtrage manuel vous permet d’obtenir les mêmes résultats que ceux générés par une requête KQL, mais avec une interface graphique intuitive.
Grâce à ces différentes approches, vous pouvez explorer efficacement vos données, que ce soit via des requêtes KQL ou des filtres manuels dans Kibana.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment fonctionne le Kibana Query Language (KQL) ?
Quelles sont les fonctionnalités de KQL pour les requêtes ?
Comment écrire une requête simple avec KQL ?
Comment utiliser les opérateurs dans KQL ?
Comment filtrer les données manuellement dans Kibana ?
Conclusion
En maîtrisant KQL, vous pouvez transformer votre manière de filtrer et d’explorer les données dans Elasticsearch. Comment allez-vous intégrer ces techniques dans vos projets actuels ?