Introduction
Les données de logs représentent un aspect très important de tout système de production. La collecte de ces données permet d’avoir une vue d’ensemble sur les logs et de gagner du temps lors de l’analyse.
Parmi les avantages de la gestion et la surveillance des logs nous retrouvons :
- La centralisation des données de logs
- La surveillance rapide
- L’identification et le diagnostic des erreurs d’exécution
- Le dépannage efficace des problèmes
- L’évaluation de la santé des applications
- L’améliorer des performances du système
Afin d’assurer le suivi des exécutions au sein de sa plateforme, Talend met à disposition 2 types de logs :
- Journaux d’exécution : les journaux de tâche et de plan fournissent des détails sur l’exécution, tels que les messages, la gravité, les horodatages et les versions. Ces journaux peuvent être utilisés pour analyser et déboguer des tâches ou des plans.
- Journaux du moteur : peuvent être configurés pour ajuster le niveau de détails techniques fourni par le journal : INFO, WARN, ERROR ou FATAL.
Il est également possible de générer des logs personnalisés, basés sur des règles de gestions opérationnelles ou fonctionnelles en adéquation avec les besoins du métier et du technique.
Ces journaux sont accessibles de plusieurs manières. Cet article présente un exemple de redirection et d’exploitation des logs avec la suite Elsatic : redirection des logs vers Filebeat et exemple de Dashboard pour surveiller l’exécution des jobs Talend.
Les outils utilisés de la suite Elastic
Filebeat est un agent de transfert léger qui permet de centraliser les données logs. Il surveille les fichiers journaux ou les emplacements que vous spécifiez, collecte les événements et les transmet à Elasticsearch pour indexation.
Elasticsearch est l’un des moteurs de recherche de contenu moderne qui fournit à la fois le support de stockage NoSQL, l’indexation et l’analytics.
Kibana est l’interface graphique d’Elasticsearch, Elle permet aux utilisateurs de faire différents types de visualisation, de tableaux de données et d’exploration. Sur le terrain du monitoring ou de l’observabilité informatique, cet outil est utilisé pour analyser les logs et la cybersécurité. Il permet aussi de mesurer la performance des infrastructures de containers logiciels et des applications.
Les outils utilisés de la suite Elastic
Les moteurs distants (ou Remote Engine) sont utilisés pour exécuter des artefacts, des préparations, des pipelines et des tâches (jobs, routes et services) utilisant des applications et des bases de données on-premises.
Les moteurs distants peuvent être appairés avec votre machine locale ou déployés dans votre fournisseur cloud (Microsoft Azure ou AWS). La communication entre Talend Management Console et Talend Remote Engine est entièrement sécurisée, puisque les données ne sont pas stockées.
Il est possible d’utiliser Filebeat pour rediriger les logs techniques du moteur distant vers Elasticsearch. Pour cela, il suffit d’installer et de configurer ces outils tout en spécifiant le chemin des données logs du Remote Engine pour avoir par la suite tous les logs.
Depuis la TMC de la Talend Data Fabric chaque nouvelle exécution d’un job Talend généra un dossier dans les logs du Remote Engine contenant alors deux fichiers logs. Pour cet exemple, nous nous sommes intéressés aux logs techniques qui seront par la suite redirigés vers Elasticsearch.
Nous pouvons avoir un aperçu de ces messages ainsi que le temps d’importation des logs et le chemin des fichiers. Nous pouvons aussi importer les logs en temps réel dès qu’une tâche a été exécuté elle sera redirigée vers Elasticsearch.
Ci-dessous, nous retrouvons un exemple de données de logs provenant du Remote Engine et analysé sur Elasticsearch (Kibana).
Kibana permet d’effectuer des filtres sur la recherche, que ce soit au niveau de la date, en spécifiant la période (année, jour, mois, heure), ou en saisissant des mots clés dans la barre de recherche.
Intégration des logs générés par le studio Talend
Avec Talend Studio, il est possible de stocker l’exécution des Jobs, des statistiques, des informations de performances et des logs techniques détaillés. Ces journaux peuvent être stockés dans des fichiers plats ou dans des tables de bases de données.
Pour stocker ces données générées lors des exécutions de jobs, il faut ajouter un composant tlogcatcher dans le job ou bien d’activer ce paramètre au niveau du projet.
Une fois les données disponibles dans un fichier, vous pouvez importer ce dernier dans Elasticsearch et créer des tableaux de bord avec Kibana ou un autre outil de datavisualisation.
Ci-dessous, un exemple de tableau de bord de monitoring reposant sur les données de logs collectées avec Talend studio.
Ce Tableau de bord nous permet notamment d’identifier et d’analyser les messages d’erreurs, les types d’erreurs, le nombre des jobs, le suivi des exécutions des jobs…
CONCLUSION DE L’EXPERT
En résumé, cet article présente différentes solutions pour centraliser et restituer les logs de Talend. Nous pouvons rediriger les données de logs à Elasticsearch à l’aide de Filebeat pour les centraliser et les analyser. Nous pouvons aussi activer les statistiques sur l’exécution du Job (tLogCatcher) au niveau du projet ou du Job dans Talend Studio, puis les enregistrer pour en faire du monitoring à l’aide des outils de visualisation.
Grâce à ces solutions, nous pourrons identifier rapidement nos jobs en erreurs et les types d’erreurs fréquentes. Nous pourrons aussi créer des alertes avec ces informations pour notifier les développeurs s’il y a une anomalie au niveau des exécutions des jobs.