Créer un parser personnalisé
Aperçu
Lakewatch est en aperçu privé. Pour demander l’accès, contactez l’équipe de votre compte Databricks.
Lakewatch fournit des analyseurs intégrés pour les sources de logs de sécurité courantes. Écrivez un analyseur personnalisé lorsque vous importez une source non couverte par les analyseurs intégrés, ou lorsque vous souhaitez adapter les colonnes, les validateurs ou les observables produits par un analyseur intégré.
Un analyseur est une spécification versionnée qui décrit les colonnes de sortie d’une source de log. Vous le construisez dans l’éditeur d’analyseur en mode UI (un constructeur guidé de type pointer-cliquer) ou en mode YAML , et il est créé dans votre environnement Lakewatch actuel. Pour obtenir la syntaxe complète (attributs de champ, types, Timestamp, validateurs et observables), consultez la référence de l’analyseur.
Ouvrir l'éditeur d'analyseur
Dans la barre latérale Lakewatch, sélectionnez Parseurs , puis Créer un parseur . La liste des analyseurs affiche également tous les analyseurs intégrés et personnalisés de votre environnement, avec leur type, leurs sources de données associées et leur dernière version.
Pour start à partir d’un analyseur intégré au lieu d’un analyseur vide, trouvez-le dans la liste, ouvrez son menu d’actions ⋮ et sélectionnez Cloner . Le clonage copie la définition dans un nouvel analyseur personnalisé modifiable (version 1) et ne modifie pas l’analyseur intégré.
Définir le parser
Sur la page Ajouter un nouvel analyseur , donnez à l’analyseur un nom d’analyseur et une description optionnelle. Le nom est un nom d’affichage et peut contenir des espaces.
Créez les colonnes de sortie sous Champs et observables , en mode UI ou YAML . Vous pouvez passer de l’un à l’autre à tout moment.
Choisir des données d’échantillon
Sélectionnez Choisir des données d’exemple et choisissez les enregistrements bruts auxquels ce parseur est destiné, afin que les champs proviennent de données réelles. Vous pouvez échantillonner une source de données , un emplacement externe , un volume ou une table .
Une fois les données d'exemple choisies, vous pouvez éventuellement sélectionner Créer un analyseur avec Genie : Genie lit l'exemple et rédige l'heure et les champs de l'événement pour que vous puissiez les consulter et les ajuster.
Définir l’heure de l’événement et les champs
- Heure de l'événement (obligatoire) : le timestamp de chaque événement. Chaque analyseur doit en avoir un avant de pouvoir être enregistré. En YAML, il s’agit du bloc
timede haut niveau (il ne s’agit pas d’un champ) car il détermine le clustering et les performances des query. Voir Heure de l'événement. - Champs : colonnes de la table analysée et emplacement à partir duquel chacune d’elles est lue. Pour chaque champ, définissez
name,typeet (lorsque la clé source diffère du nom de colonne)path; marquez les champs qui doivent être présents avecrequired: true; ajoutezvalidatepour contraindre un champSTRINGetobservablespour extraire des valeurs (telles queipouemail) dans la colonne partagéelw_observables. Exprimez les objets imbriqués sous la formeVARIANTavec desfieldsinternes, et les listes sous la formeARRAYavec unelement.
Définissez vos champs avec soin. Pendant la classification, un événement ne correspond que lorsque ses champs requis sont présents, que ses champs typés sont convertis en types déclarés et que tous les validateurs réussissent. Un événement qui ne correspond à aucun analyseur attaché est acheminé vers un sentinel de lettre morte au lieu de faire échouer le pipeline, de sorte qu’un analyseur trop strict supprime silencieusement les événements.
Prévisualiser et enregistrer
Dans le panneau Aperçu des données , sélectionnez Aperçu pour exécuter l’analyseur sur votre échantillon de données et confirmer que les colonnes, les types et les observables extraits correspondent à vos attentes. Une fois que tout semble correct, sélectionnez Enregistrer . En enregistrant, vous stockez la définition en tant que version 1, vous vous enregistrez comme propriétaire et vous créez l’analyseur dans votre environnement actuel. Un document d’analyseur fait au plus 256 Ko.
Attacher le parser à une source de données
Attachez l’analyseur personnalisé à une source de données de la même manière que vous attachez un analyseur intégré. Vous pouvez attacher plus d’un analyseur à une source de données ; les événements entrants sont mis en correspondance dans l’ordre de déclaration et sont placés dans le premier analyseur auquel ils correspondent. Voir Attacher des analyseurs.
Tester et itérer
Une fois la source de données exécutée, confirmez que l’analyseur se comporte comme prévu :
- Query la table analysée pour vérifier que les colonnes, les types et les observables extraits correspondent à ce que vous avez défini.
- Recherchez des événements dans la sentinelle de lettre morte. Les événements y aboutissent lorsqu'ils ne correspondent à aucun analyseur attaché : généralement parce qu'un champ
requiredest manquant, qu'une valeur ne se convertit pas en son type déclaré ou qu'un validateur échoue.
Pour affiner l'analyseur, modifiez-le et enregistrez-le. L'édition ajoute une nouvelle version immuable ; les versions antérieures ne sont jamais modifiées et les numéros de version ne sont jamais réutilisés. Une nouvelle version conserve le nom de l’analyseur et modifie uniquement la définition. Une source de données pin une version spécifique, alors mettez à jour la source de données pour récupérer votre nouvelle version : voir Modifier la version d'un analyseur. Les données déjà analysées ne sont pas retraitées ; la nouvelle version s'applique aux événements ingérés après l'enregistrement de la modification.
Ressources supplémentaires
- Référence de l’analyseur: la syntaxe YAML complète
- Créer et gérer des sources de données: attacher, modifier et gérer des analyseurs sur une source de données
- Logs pris en charge: les sources couvertes par les analyseurs intégrés