Introduction



  1. Définition
    Elastic Common Schéma(ECS) est une spécification open source qui va vous aider à structurer vos données. Le standard est conçu pour Elasticsearch mais vous pouvez très bien l'utiliser dans d'autres domaines. ECS a par exemple fusionné avec SemConv de Opentelemetry ce qui rend de facto Elasticsearch compatible avec Opentelemetry.



  2. Pourquoi utiliser ECS
    Comme vous pouvez le voir sur ce schéma, on essaye de récupérer les éléments liés à un utilisateur dont l'IP est 10.42.42.42.

    Dans le premier bloc, sans ECS on remarque que la requête est assez complexe car il n y a pas de norme défini sur le nom du champ qui contient l'IP de notre utilisateur.

    Dans le second bloc, avec ECS on remarque que la requête est beaucoup plus simple car on a utilisé ECS pour normaliser le champ qui contient l'IP quelque soit sa source. Et la norme va bien au delà du simple nom de champ :
    • Le type de la donnée
    • Les valeurs autorisées
    • La hiérarchie

    Lorsqu'on collecte de la donnée, le but final est de mettre des alertes, construire des tableaux de bords... Quand vous êtes sans ECS en général vous devez les modifier à chaque nouvel ajout de données alors que cela est transparent si vous êtes en mode ECS.

Le fonctionnement



  1. Quel aide au démarrage ?
    Cela peut sembler compliqué de mettre en place ou du moins initialiser ECS dans une entreprise. Mais la réalité est toute autre. En effet, les intégrations dans Elastic stack peuvent envoyer vos données au format ECS de manière native.



  2. Et ensuite ? logstash
    De nombreuses entreprises utilisent la technologie beats et ou Elastic agent pour envoyer les logs, metrics... directement vers un serveur/cluster Elasticsearch en mode ECS. Mais pour les données qui ne proviennent pas de ces derniers, vous pouvez utiliser la solution logstash. Ce dernier pendant les phases d'enrichissement peut rendre compatible vos données avec le standard. Dans ce scénario il vous faudra sans doute plus de configurations.

Le test


Il peut êtrre nécessaire de tester manuellement votre configuration. C'est par exemple le cas quand vous faites du grok dans logstash. Vous pouvez donc vous servir de ces outils pour tester la compatibilité de vos configurations:

  1. Dev Tools
    Depuis de nombreuses versions le Dev Tools présent dans Kibana vous permet de tester des patterns Grok.



  2. Grok Constructor
    Cet outil est accessible à cette addresse https://grokconstructor.appspot.com/. Elle permet de tester des patterns grok avec ECS. Il y a un autre outils plus populaire https://grokdebugger.com/.

Pour aller plus loin


Vous pouvez construire vos propres champs basés sur le standard ECS si vous ne les trouvez pas dans le standard ECS. Si vous êtes sur des configurations qui sont standardisées et donc réutilisables par d'autres, vous pouvez les proposer à la communauté via le canal Slack de la communauté.

Date de publication: 2024-05-03T20:40:00+08:00
Date de modification: 2024-08-11T13:21:39
Auteur: