La correction est intégrée au TP (Voir les encadrés de couleur vert)
Ce que vous allez apprendre dans ce TP
- Installer un agent dynatrace : oneagent
- Comprendre les paramètres disponibles
- Reconfigurer un agent
- Optimiser votre infra/coûts
- Désactiver la surveillance de processus, de conteneur, ...
- choix d’opérateurs
- Gestion et affectation des équipes
- utilisation de dt.owner et owner
Introduction #
Ce projet a pour objectif de vous faire manipuler différentes notions autour de Dynatrace et surtout de les combiner en vue d’atteindre un objectif. Pour cela, nous allons installer et configurer un serveur Docker et installer l’agent Dynatrace pour obtenir une vue 360 du serveur.
Environnement de test #
Pour réaliser ce TP, il vous faudra un environnement Ubuntu(Mais le TP est faisable avec d’autres OS/distributions). Sur cette machine, nous allons créer 2 machines virtuelles avec les caractéristiques suivantes:- Machine virtuelle 1 :
- Nom : gl-145-pr
- vCPU : 1
- RAM : 1 GO
- IP : 192.168.56.2
- Machine virtuelle 2 :
- Nom : gl-463-rc
- vCPU : 1
- RAM : 1 GO
- IP : 192.168.56.3
RAPPEL : Ce TP est dédié à la configuration Dynatrace mais comme il s’agit d’un TP avancé, vous aurez besoin de notions et connaissances autour du DevOps qui ne sont pas propres à Dynatrace mais qui seront utilisées dans vos configurations. Vous aurez besoin des compétences suivantes dont vous pouvez suivre gratuitement la formation :Bien évidemment, on va mettre le maximum d’informations à votre disposition pour vous faire avancer même sans ces prérequis.
- Docker : Voir la formation
- Vagrant : Voir la formation
- Traefik : Voir la formation
- Prometheus : Voir la formation
- Grafana : Voir la formation
- DevOps : Voir la formation
Pour cela, il faut installer Vagrant et Virtualbox sur votre machine. Une fois cela fait, il ne vous reste plus qu’à lancer les commandes suivantes:
git clone https://github.com/RousselTM/dynatrace-formation
cd dynatrace-formation/tp
vagrant upPre-configuration #
Les actions suivantes sont nécessaires pour préparer votre environnement de test.
Agent Dynatrace #
Ce que vous allez apprendre dans cette sectionNous allons voir comment installer et reconfigurer un agent.
- Installer un agent dynatrace : oneagent
- Comprendre les paramètres disponibles
- Reconfigurer un agent
Pour revoir la session sur l’installation du oneagent, vous pouvez cliquer sur ce lien : Installation et configuration oneagent
Installation
Vous devez installer le oneagent sur la machine ’rousseltm-prod-1’ en définissant comme hostgroup ’PROD_TP’.INFORMATION : Pour préparer votre passage à l’IaC, nous vous recommandons de récupérer les sources via CLI. En plus de l’avantage pour l’IaC, l’URL fournira automatiquement la version qui correspond aux mises à jour du serveur Dynatrace. Ainsi vous évitez un déphasage entre la version de la console et la version des agents.
Voir la correction
Vous devez suivre la procédure décrite dans votre console Dynatrace pour le télécharger et l’installer dont voici un résumé :
sudo wget -O Dynatrace-OneAgent-Linux.sh ’https://your_environment_url/api/v1/deployment/installer/agent/unix/default/latest?arch=x86’ --header=’Authorization: Api-Token=your_token’ sudo /bin/sh Dynatrace-OneAgent-Linux.sh --set-host-group=PROD_TPVérifications
Vous devez accéder à la console dynatrace et vérifier que votre machine remonte bien. Quelle est l’application pour voir les machines qui remontent ? Vous devez aussi vérifier que le hostgroup remonte bien. Quelle application peut aussi vous permettre de voir tous les éléments sur lesquels il y a un oneagent ?
Voir la correction
C’est l’application Hosts qui va vous permettre de vérifier si la machine remonte bien. L’autre méthode est de passer par l’application ’OneAgent Health’ ou ’Deployment status’.
Les PATH
Lors d’une installation, il peut être nécessaire de modifier les dossiers par défaut pour s’adapter au formatage de disque. Vous devez fournir les configurations à positionner lors de l’installation de l’agent pour personnaliser :- Dossier d’installation
- Dossier des logs
- ...
Voir la correction
Si vous souhaitez par exemple les déposer dans le dossier ’/data’ :
sudo /bin/sh Dynatrace-OneAgent-Linux.sh INSTALL_PATH=/data/dynatrace/agent LOG_PATH=/data/dynatrace/logs DATA_STORAGE=/data/dynatrace/runtimeReconfiguration
Comme indiqué dans la formation, il peut arriver qu’on ait besoin de modifier des paramètres du oneagant pour différentes raisons : erreur de paramétrage, paramètre absent, migration vers un nouveau cluster...CRITIQUE : La facilité serait de réinstaller l’agent mais avec comme conséquence la création d’un nouvel ID et donc la perte de l’historique. Vous devez donc plutôt le reconfigurer. Reconfiguration oneagent
Vous devez donc modifier la configuration de l’agent pour ajouter ou mettre à jour :- hostgroup : PROD_TP1
- TAGS : env=training, PROJECT=P1, APP=A1
- Owner : T1
Voir la correction
Vous devez utiliser le oneagentctl pour le faire :
Le chemin est celui par defaut qu’il faudra adapter si vous avez modifié les chemins lors de l’installation. Pour rappel, on peut définir le propriétaire en passant par les tags ou les propriétés.sudo /opt/dynatrace/oneagent/agent/tools/oneagentctl --set-host-group=’PROD_TP1’ --set-host-tag=’env=training’ --set-host-tag=’PROJECT=P1’ --set-host-tag=’APP=A1’ --set-host-tag=’T1’
Découverte #
Dans cette section, nous allons utiliser Dynatrace pour avoir une vision 360 de l’infrastructure.
Cartographie
Vous devez trouver comment obtenir la cartographie de votre infrastructure : Centre de données, machines, processus...
Voir la correction
Vous pouvez utiliser l’application ’Smartscape topology’. Pour y accéder, vous pouvez passer par le menu ou la recherche simple.
Paramétrage #
Ce que vous allez apprendre dans cette section
- Optimiser votre infra/coûts
- Désactiver la surveillance de processus, de conteneur, ...
- choix d’opérateurs
Dans cette section, nous allons voir c’est quoi un ’detected name’ et comment créer des noms personnalisés
Host
Vous devez configurer Dynatrace pour qu’il renomme les machines en suivant ce template :- Toutes les machines avec Hostgroup : ’$HOSTGROUP - $DETECTEDNAME’
- Toutes les machines sans Hostgroup : ’ERROR - $DETECTEDNAME’
Voir la correction
Vous devez créer deux regles pour chaque fonction dans ’Settings -> Monitoring -> Host naming’. La première regle :
- Rule name : Host with Hostgroup
- Host name format : {HostGroup:Name} - {Host:DetectedName}
- Conditions : Host group name ’exists’
- Rule name : Host without Hostgroup
- Host name format : ERROR - {Host:DetectedName}
- Conditions : Host group name ’does not exist’
Process group
Dynatrace va automatiquement regrouper des process qu’il juge identique ensemble (s’il n’identifie pas de Hostgroup). Vous aurez des applications différentes sur Docker qu’il va regrouper alors qu’en réalité elles sont différentes. Vous devez créer la configuration pour forcer dynatrace à les séparer en fonction de la variable d’environnement ’ROUSSELTM_APP’ :
Voir la correction
Vous devez créer une regle dans ’Settings -> Processes and containers -> Simple detection rules’ :
- Property source : Environment variable
- Group identifier : ROUSSELTM_APP
- Instance identifier :
- Restrict this rule to specific process types :
Services
Tags
Vous devez ajouter une configuration qui va créer sur l’ensemble des services de type ’Web request service’ le tag ’ROUSSELTM_APP’ avec comme valeur le contenu nom du serveur.CRITIQUE : Idéalement, en entreprise, vous devez vous assurer que chaque entité à le nombre de tags minimum pour identifier : direction, département, equipe, projet ...
On souhaite par la même occasion que le ’Host’ et le ’Process group’ qui porte ces derniers hérite de ce tags.Voir la correction
Vous devez créer une regle dans ’Settings -> Tags -> Automatically applied tags’ avec ces valeurs:
- Tag name : ROUSSELTM_APP
- Group identifier : ROUSSELTM_APP
- Description : votre description
- Optional tag value : {Service:WebServerName}
- Value Normalization : Leave text as-is
- Rule type : Monitored entity
- Rule applies to : Services
- Property : Service type
- Operator : Equals
- Value : Web request service
Zones
Vous l’avez constaté, toutes les entités sont mises ensemble. Pour cet environnement de demo cela ne pose pas problème mais en entreprise il sera nécessaire de faire des zones de gestion (management zones) pour ordonner cela.RAPPEL: En plus de permettre de classer les entités dans dynatrace, elle va aussi vous permettre de gérer la sécurité.
Vous devez donc créer une zone de gestion qui va contenir l’ensemble des services, groupes de process, machines qui ont comme tags ’ROUSSELTM_APP=APP1’RAPPEL: En entreprise, vous devrez ajouter d’autres règles dans la zone de gestion pour prendre en compte d’autres éléments APPLICATION, DATABASES, ...
Voir la correction
Vous devez créer une regle dans ’Settings -> Preferences -> Management zones -> Management zones settings’ avec ces valeurs:
- Management zone name : APP1
- Description : votre description
- Rule type : Monitored entity
- Rule applies to : Services
- Property : Service tags
- Operator : Equals
- Tag : ROUSSELTM_APP:APP1
Process
Par défaut, Dynatrace va collecter les informations sur tout ce qu’il va découvrir. En entreprise, vous aurez des processus, conteneurs ... que vous ne souhaitez pas surveiller. Vous devez configurer Dynatrace pour qu’il ne surveille pas tous les conteneurs qui se terminent par ’-build’.RAPPEL: Vous avez déjà des configurations par défaut dans Settings -> Processes and containers -> Built-in container monitoring rules
Voir la correction
Vous devez créer une regle dans ’Settings -> Processes and containers -> Custom process monitoring rules’ avec ces valeurs:
- Mode : Do not monitor
- Condition target : Container name
- Condition operator : ends with
- Condition value : -build
CRITIQUE: L’opérateur ’contains’ est très consommateur donc dès que possible utilisez ’equals’, ’begin with’ ou ’ends with’
Serverless
Votre entreprise fait du serverless? Vous devez activer la configuration pour que Dynatrace puisse détecter vos conteneurs.
Voir la correction
Vous devez créer une regle dans ’Settings -> Processes and containers -> Cloud application and workload detection -> Serverless Container Services’ avec ces valeurs:
- Mode : Do not monitor
- Condition target : Container name
- Condition operator : ends with
- Condition value : -build
CRITIQUE: L’opérateur ’contains’ est très consommateur donc dès que possible utilisez ’equals’, ’begin with’ ou ’ends with’
Propriétaires #
Ce que vous allez apprendre dans cette section
- Gestion et affectation des équipes
- utilisation de dt.owner et owner
Si votre instance Dynatrace est bien configurée, vous devez être capable de savoir à qui appartient chaque ressource(entité). On a vu en cours qu’il est possible de le faire de différentes manières (tags, métadonnées...) mais la plus recommandée est l’utilisation des tags. Mais ces informations sont plus techniques pour classer et traiter vos données et ne permettent pas d’identifier les personnes qui interviennent sur l’entité : développeur, opérateur, ... Dynatrace met donc à votre disposition la fonction propriétaire pour vous permettre de combler cette lacune.
Création
Vous devez créer l’équipe ’Projet 1’ avec les caractéristiques suivantes :- Nom équipe : Projet 1
- Description : votre description
- ID équipe : projet1
- Fonctions : Development et Operations
Voir la correction
Vous devez créer cela dans dans ’Settings -> Ownership -> Teams’ :
- Team name : Projet 1
- Description : votre description
- Team identifier : projet1
- Responsibilities : Development et Operations
Affectation
Vous devez affecter cette équipe à toutes les VM/conteneur de l’équipe en question.
Voir la correction
Vous avez différentes méthodes : tags, métadonnée... voici par exemple comment le faire post installation du oneagent:
./oneagentctl --set-host-property owner-1=team-automation
Niveau de difficulté : ●●○○○ (2/5)
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
Glossaire de la formation
Observabilité
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...
CI/CD
Intégration Continue et Déploiement Continu. Pratiques DevOps visant à automatiser les tests et le déploiement des applications pour livrer plus rapid...
Dynatrace
Plateforme d'observabilité complète basée sur l'intelligence artificielle (Davis), offrant la surveillance applicative (APM), d'infrastructure et l'ex...
APM (Application Performance Monitoring)
Surveillance des performances applicatives pour identifier, diagnostiquer et résoudre les problèmes complexes liés aux performances et à la disponibil...
SLA (Service Level Agreement)
Contrat officiel conclu entre un fournisseur de services et son client, définissant le niveau de service attendu (disponibilité, temps de réponse, etc...
SLO (Service Level Objective)
Objectif interne chiffré défini par l'équipe technique (SRE) concernant le niveau de fiabilité d'un service (ex: 99.9% de disponibilité). Relation : L...
SLI (Service Level Indicator)
Métrique quantitative réelle mesurant le niveau de service fourni en production (ex: taux de réussite des requêtes, latence moyenne). Relation : Le SL...
DEM (Digital Experience Monitoring)
Surveillance de l'expérience numérique. Englobe les technologies permettant de suivre et d'optimiser l'expérience des utilisateurs finaux sur les appl...
RUM (Real User Monitoring)
Surveillance des utilisateurs réels. Technique d'observabilité passive qui capture et analyse chaque interaction des utilisateurs avec une application...
Synthetic Monitoring
Surveillance synthétique. Technique d'observabilité active utilisant des scripts automatisés (robots) pour simuler le parcours des utilisateurs et vér...
Traces distribuées
Technique (issue du pilier des Traces) permettant de suivre le cheminement complet d'une requête à travers de multiples micro-services pour identifier...
Métriques
Mesures numériques collectées à intervalles réguliers (ex: CPU, RAM, temps de réponse) utilisées pour évaluer l'état de santé global d'un système au f...
AIOps (Artificial Intelligence for IT Operations)
Utilisation de l'intelligence artificielle et de l'apprentissage automatique pour automatiser et améliorer les opérations informatiques (ex: détection...
NoOps
Concept où l'environnement informatique est tellement automatisé et abstrait (ex: Serverless, PaaS) qu'il ne nécessite quasiment plus d'équipe opérati...
OpenTelemetry
Framework open source fournissant des standards, APIs et SDKs pour collecter et exporter des données d'observabilité (traces, métriques, logs) de mani...
Articles recommandés
Comprendre la notion de score
Le concept de score va permettre à Elasticsearch de classer vos documents par pertinence lors d u...
Comprendre Elastic Common Schema(ECS)
Comme toujours dans nos missions de conseil, nous recommandons aux entreprises d'uniformiser, de ...
Grail : Dynatrace Data Lakehouse
Désormais vous disposez dans Dynatrace (SaaS) d'un Data Lakehouse nommé Grail dont vous pouvez co...
C'est quoi l'observabilité
La capacité à connaître l'état interne d'un système à partir des données que cette dernière émet...
Les types de transactions dans les base de données
Cet article détaille les différences entre trois concepts essentiels dans l'exécution des instruc...
Différences entre Technologies et Services dans Dynatrace
Dans Dynatrace, les concepts de 'Technologie' et de 'Services' aident à organiser et surveiller l...
Dynatrace : Différences entre SQL Modifications, SQL Queries or Procedures, et SQL Transactions
Cet article détaille les différences entre trois concepts essentiels dans l'exécution des instruc...
Types de consommation de licence
Comprendre l'évolution de la facturation dans Dynatrace : la différence entre l'ancien modèle de ...
Les Types de Services Dynatrace : Comprendre et Optimiser Votre Surveillance Applicative
Découvrez les différents types de services que Dynatrace peut surveiller, leur rôle, et comment l...