[TP] Installation Filebeat
Ce que vous allez apprendre dans ce TP :
- Installer Filbeat
- Identifier les fichiers et repertoires importants
- Utilisation des modules
- Utilisation avancée des labels
- Déployer un registre Harbor
- Importer une image dans un registre
- Rechercher des vulnérabilités sur une image
- Mettre en place la surcharge d'un fichier docker compose
- Utilisation avancée des labels (Mise en place dans le Projet 2)
Introduction
Ce que vous allez apprendre dans cette section :Nous allons procéder à l'installation de Filebeat en utilisant la technologie Docker.
- Installer Filbeat
- Identifier les fichiers et repertoires importants
- Utilisation des modules
- Utilisation avancée des labels
-
Procédure
Vous devez fournir le lien pour retrouver toutes les procédures d'installation de Filbeat ainsi que celle pour l'installer sur un OS de type Linux.
Docker
Nous allons procéder à l'installation de Filebeat sur Docker avec un fichier docker compose.-
Les dossiers
Vous devez fournir la liste des dossiers nécessaire au bon fonctionnement de Filebeat en environnement DOocker. -
Mode SWARM
Vous devez mettre en place le cluster Docker avec le mode SWARM activé. La machine 'manager' doit être le manager du cluster et les machines 'workerX' doivent être les workers du cluster. Comme les machines ont plusieurs IP, on va utiliser l'IP 192.168.56.2 comme adresse de gestion du plan de contrôle.RAPPEL : Sur toutes les machines créées par Vagrant il y a un dossier /vagrant qui correspond au montage du dossier dans lequel se trouve le fichier Vagrantfile: donc le contenu dossier 6_projet. Donc vous pouvez utiliser ce dossier pour partager des fichiers entre les machines. Par exemple, le fichier contenant les tokens pour joindre le cluster. Bien évidemment en Production, il faudra utiliser une solution plus sécurisée
Vous devez fournir la commande Docker qui va permettre de stocker dans le /vagrant/swarm-token-worker le token pour joindre le cluster comme worker. -
Réseau partagé
Vous devez créer les réseaux suivants- common-proxy: pour la communication entre les conteneurs via le proxy. Sera pleinement utilisé dans le TP suivant avec l'utilisation de Traefik.
- common-observability: pour la communication entre les conteneurs d'observabilité
Sous projet 1
Ce que vous allez apprendre dans cette section :Nous allons créer un registre docker avec Harbor sur la machine manager. Nous le ferons fonctionner sur le domaine registry.tp.elearning.rousseltm.fr. Pour ce premier projet, on va le déployer en HTTP sur le port 5000(port par défaut des registres Docker en HTTP).
- Déployer un registre Harbor
- Importer une image dans un registre
- Rechercher des vulnérabilités sur une image
- Mettre en place la surcharge d'un fichier docker compose
- Utilisation avancée des labels (Mise en place dans le Projet 2)
RAPPEL : Le site officiel de Harbor https://goharbor.io/ et vous pouvez revoir la vidéo de présentation de Harbor à cette adresse : Présentation et déploiement Harbor
-
Déploiement
Vous devez installer Harbor avec le service trivy sur le port 5000. Si tout est ok, vous devez pouvoir accéder depuis la machine hôte à Harbor à l'adressehttp://registry.tp.elearning.rousseltm.fr:5000INFORMATION : Dans le dossier 6_projet, vous avez un dossier nommé 'projects' dont le contenu sera automatiquement monté dans /opt/projects sur l'ensemble des VMs. Vous pouvez donc l'utiliser pour gérer vos fichiers pour les sous projets. Nous conseillons 1 dossier par sous projet.
-
Personnalisation
Le script install.sh à généré un fichier docker-compose.yml donc si on souhaite modifier des paramètres il faudra éditer ce fichier. Mais on va perdre toutes nos modifications à chaque exécution du script.
Vous devez proposer une solution pour éviter cela sachant qu'on souhaite que le conteneur 'proxy' se connecte au réseau 'common-proxy' et qu'il dispose du label dt.owner (Explication de ce label Dynatrace) avec comme valeur 'equipe1'. Dans la même lancée, ajouter un label pour dire à Filebeat de ne pas prendre en compte ses logs.
On va dans un premier temps déployer simplement avec 'docker compose' pour tester et dans un second temps sous forme de stack 'docker stack'.ATTENTION : La surcharge doit aussi être prise en compte par le script install.sh
Sous projet 2
-
Build image
Vous devez créer un Dockerfile pour construire une image pour l'application GO suivante qui sera nommée simple-app er aura le tag 1.0 : -
Ajout de l'image au registre Harbor
Vous devez envoyer cette image dans le projet(Explication sur la notion de projet dans Harbor) 'library' dans Harbor. On a fait le choix de 'library' car il s'agit du projet Public par défaut. Ainsi, l'image pourra être utilisée dans d'autres projets (Voir TP suivant). Pour rappel suite à votre installation, Harbor est disponible à l'adressehttp://registry.tp.elearning.rousseltm.fr:5000 -
Scan de vulnérabilité
Vous devez scanner l'image importée pour vérifier ses vulnérabilités face aux failles CVE. -
Déploiement Docker
La configuration à construire doit répondre à ces besoins :- Application 2-tier: go et redis
- Les services ne doivent s'exécuter que sur les workers. Cette configuration doit être externalisée pour permettre de la partager avec d'autres applications dans le même cas.
- Les services doivent utiliser les dernières versions (en production utiliser des versions fixes) des images officielles et l'application GO utiliser l'image construite précédemment et disponible sur Harbor.
- 1 instance de chaque service
- Le service GO doit exporter la variable d'environnement APP='APP1'
- Le service GO doit exporter la variable d'environnement TASK_SLOT dans laquelle vous devez y mettre le numéro de replica du conteneur (Les templates).
- Le service de l'application go doit rattaché au réseau 'common-proxy'
-
Répartition de charge
Vous devez vérifier que lorsque vous appelez l'URL de l'application (http://tp.elearning.rousseltm.fr) il retourne bien cette page et que les champs surlignés changent bien quand vous mettez à jour la page et bascule bien entre les deux conteneurs :
Sous projet 3
Sous projet observabilité constitué de Prometheus, de Grafana, de Node exporter et de cAdvisor. Ce sous projet est celui de l'observabilité et donc va nous permettre d'avoir une visibilité sur l'ensemble de notre projet.-
Déploiement Docker
La configuration à construire doit répondre à ces besoins :- Rendre accessible Grafana sur le port 3000
- Rendre accessible Prometheus sur le port 9090
-
Configuration des services
La configuration à construire doit répondre à ces besoins :- Importer automatiquement dans Grafana la datasource Prometheus et Elasticsearch
- Importer les tableaux de bord avec l'ID : 609
- Collecter les métriques de Traefik
- Collecter les métriques de l'ensemble des noeuds du cluster
- Collecter les métriques de l'ensemble des conteneurs
Glossaire de la formation
La capacité à connaître l'état interne d'un système à partir des données qu'il émet.Ces données sont classées en 3 piliers : logsmétriquestracesprofil...
Agents légers installés sur des serveurs pour collecter divers types de données (logs avec Filebeat, métriques avec Metricbeat) et les envoyer vers El...
Programme de collecte de données installé sur un système hôte, conçu pour consommer un minimum de ressources (CPU, RAM). Exemple : Filebeat, Promtail.
Programme de collecte doté de nombreuses fonctionnalités locales (traitement, filtrage, mémoire tampon) consommant davantage de ressources système. Ex...
Fichier de journalisation enregistrant les requêtes traitées par un serveur web (Apache, Nginx, Lighttpd, etc.). Il permet de tracer l'activité du ser...
L'adresse IP de l'utilisateur effectuant la requête vers le serveur web. Lorsqu'un utilisateur passe par un Load Balancer ou un proxy (ex: Cloudflare)...
La date et l'heure exactes auxquelles la requête a été reçue par le serveur.Configuration : %t dans Apache, $time_local ou $time_iso8601 dans Nginx.
La ligne de requête initiale du client. Elle comprend généralement la méthode HTTP (ex: GET), l'URL demandée et la version du protocole HTTP.Configura...
Le code de statut HTTP final renvoyé par le serveur au client (ex : 200 pour un succès, 404 pour ressource non trouvée).Configuration : %>s dans Apach...
Le volume des données renvoyées au client, mesuré en octets (généralement sans les en-têtes HTTP).Configuration : %b ou %O dans Apache, $body_bytes_se...
L'URL de la page web depuis laquelle le client a cliqué ou suivi un lien pour accéder à la ressource actuelle.Configuration : %{Referer}i dans Apache,...
Les informations d'identification fournies par le client concernant son navigateur, son système d'exploitation et son appareil. Sa structure standard ...
La durée totale prise par le serveur pour traiter la requête et renvoyer la réponse au client.Configuration : %D (microsecondes) ou %T (secondes) dans...
Articles recommandés
Le concept de score va permettre à Elasticsearch de classer vos documents par...
Dans Dynatrace, les concepts de 'Technologie' et de 'Services' aident à organ...
Cet article détaille les différences entre trois concepts essentiels dans l'e...
Comprendre l'évolution de la facturation dans Dynatrace : la différence entre...
Découvrez les différents types de services que Dynatrace peut surveiller, leu...
Découvrez comment utiliser les SLO (Service Level Objectives) dans Dynatrace ...
Découvrez les différences entre Apdex et Core Web Vitals, deux indicateurs de...
Comme toujours dans nos missions de conseil, nous recommandons aux entreprise...
Découvrez les raisons clés pour collecter des métriques avec des exemples con...
Découvrez en détail les quatre types de métriques supportés par Prometheus (C...
Désormais vous disposez dans Dynatrace (SaaS) d'un Data Lakehouse nommé Grail...
Apprenez à maîtriser PromQL, le langage de requête utilisé dans Prometheus, a...
Pense‑bête des commandes CLI/API pour gérer tags, propriétés, variables d'env...
Apprenez à utiliser Grafana Alloy pour collecter, transformer et acheminer lo...
Découvrez comment configurer Grafana Alloy pour superviser le serveur sur leq...
Découvrez pourquoi et comment configurer Grafana Alloy pour qu'il se supervis...
Découvrez comment activer, sécuriser et utiliser l'interface web intégrée de ...
Découvrez le protocole OTLP expliqué simplement. Comprendre les différences e...
Tutoriel complet sur Grafana Alloy. Découvrez comment installer, configurer e...
Maîtrisez la syntaxe déclarative de Grafana Alloy (langage River), apprenez à...
Apprenez à configurer Grafana Alloy pour collecter, transformer et envoyer de...
La capacité à connaître l'état interne d'un système à partir des données que ...
Découvrez comment configurer Grafana Alloy pour lire des fichiers de logs, jo...
Plongez dans le traitement des traces distribuées. Apprenez à ingérer des tra...
Découvrez comment configurer le profilage continu (Continuous Profiling) dans...
Apprenez à gérer les déploiements à grande échelle de Grafana Alloy. Configur...
Découvrez Grafana Assistant, l'intelligence artificielle intégrée à Grafana C...
Comparaison détaillée entre Grafana Alloy et l'OpenTelemetry Collector. Décou...
Comparaison entre Grafana Alloy et Dynatrace ActiveGate. Comprenez les différ...
Découvrez l'évolution des collecteurs de télémétrie de l'écosystème Grafana. ...
Un guide de référence complet sur tous les composants disponibles dans Grafan...
Cet article détaille les différences entre trois concepts essentiels dans l'e...