Exploitants, administrateurs, SRE, DevOps et toute personne souhaitant mettre en oeuvre un système de supervision avec Prometheus
Connaître les fonctionnalités de Prometheus, savoir le mettre en oeuvre pour une supervision de services dynamiques et d'environnements cloud-native (conteneurs, Kubernetes).
Connaissance de l'architecture d'un système d'information, bases TCP/IP et bases systèmes Unix/Linux. Notions de conteneurs appréciées.
Présentation
Fonctionnalités de Prometheus, apports.
Supervision de services dynamiques, autonomie des composants.
Positionnement par rapport aux autres outils de supervision (Nagios, Zabbix, Centreon).
Place de Prometheus dans l'écosystème CNCF et l'observabilité moderne.
Architecture, rôle des différents composants : serveur, pushgateway, alertmanager, exporters, PromQL.
Plateformes supportées.
Installation et configuration de base
Installation : binaires, conteneurs Docker, déploiement via Helm sur Kubernetes (kube-prometheus-stack).
Définition des ressources supervisées, des intervalles de collecte.
Démarrage du serveur Prometheus.
Premiers pas dans la console web et l'interface graphique.
Modèle de données et mesures
Format des données stockées, notion de timestamp, TSDB.
Types de mesures : compteurs, jauges, histogrammes (classiques et natifs), résumés.
Identification des ressources supervisées : notions d'instances, de jobs, de labels.
Configuration
Paramètres à définir en ligne de commande : lieu de stockage des données, volumes à conserver en mémoire ou sur disques, rétention.
Paramètres définis dans le fichier de configuration prometheus.yml : instances, jobs, fichiers de règles.
Service discovery : statique, fichiers, DNS, Kubernetes, cloud (AWS, GCP, Azure).
Relabeling : principes et cas d'usage.
Exporters et instrumentation
Exporters officiels : node_exporter, blackbox_exporter, snmp_exporter.
Pushgateway : cas d'usage et limites.
Instrumentation applicative avec les bibliothèques clientes (Go, Java, Python).
Introduction à OpenTelemetry et interopérabilité avec Prometheus.
Les règles
Types de règles : recording rules, alerting rules.
Définition de règles.
Utilisation des templates.
Test et validation des règles avec promtool.
Requêtes
Langage PromQL : opérateurs, fonctions, agrégations, sous-requêtes.
Bonnes pratiques de requêtage.
Cardinalité des séries et impact sur les performances.
Alertmanager
Architecture et configuration.
Routes, regroupements, inhibitions, silences.
Intégrations : email, Slack, PagerDuty, webhooks.
Haute disponibilité de l'Alertmanager.
Visualisation et API
WebUI de Prometheus.
API HTTP : Go, Java, Python.
Intégration avec d'autres outils.
Visualisation avec Grafana
Installation, interfaçage, sources de données.
Création de Dashboards, de graphiques, utilisation de l'interface ou des requêtes PromQL.
Paramétrage, variables et listes déroulantes.
Alertes Grafana et suivi.
Gestion de l'affichage, fenêtre de temps, rafraîchissement.
Provisioning des dashboards as code.
Mise à l'échelle et stockage longue durée
Limites du serveur unique.
Solutions de stockage longue durée : Thanos, Cortex, Mimir.
Federation et remote write/read.
Aperçu de l'écosystème observabilité : Loki (logs), Tempo (traces).