Vous en êtes à l'étape 6 de la formation CPiN :
- Gestion des projets CPiN
- Application d'exemple pour déploiement sur CPiN
- Gestion des artefacts sur CPiN
- Chart Helm de démonstration sur CPiN
- Gestion des secrets sur CPiN
- ➡️ Observabilité sur CPiN
Warning
Dans l'environnement de formation, le plugin Grafana n'est pas activé. La suite de ce tutoriel est à but informatif.
- Grafana Production : accès aux logs et métriques des environnements de type production
- Grafana Hors production : accès aux logs et métriques des environnements hors production (dev, staging, etc.)
Warning
Le type d'environnement est déterminant dans la façon de consommer l'observabilité.
Différents dashboards par défaut sont accessibles :
- Falcosidekick : métriques concernant les indicateurs Falco (détection de comportements suspects sur les pods)
- Kubernetes / Views / Namespaces : métriques sur la consommation de ressources système (CPU, RAM, etc.)
- Loki Kubernetes logs : accès aux logs applicatifs (tout ce qui est envoyé sur stdout / stderr par les pods)
- PolicyReport Details : métriques concernant les indicateurs Kyverno (respect des contraintes CPiN sur les manifests, par exemple la présence de labels)
- Trivy Operator - Vulnerabilities : métriques concernant les indicateurs Trivy (présence de CVE sur les conteneurs)
- Security overview : dashboard synthétique des indicateurs Kyverno, Falco et Trivy
Warning
Certains comportements peuvent différer entre PAX et MI : certains dashboards peuvent notamment ne pas fonctionner sur PAX, notamment sur les environnements de Hors-Production.
Exemple de remontée de métriques :
CPiN intègre une fonctionnalité de Dashboard as Code.
Pour rappel, lors de la création d'un projet, un dépôt de code infra-observability est automatiquement créé dans GitLab.
Ce dépôt peut contenir 2 types de fichiers :
- des dashboards Grafana au format
.jsondans le répertoirefiles/dashboards/ - des alertes au format
.yaml.tpldans le répertoirefiles/rules/
Les fichiers présents dans ces répertoires sont automatiquement déployés dans Grafana. La synchronisation peut prendre jusqu'à 3 minutes.
Le format JSON des dashboards étant complexe, il est recommandé de construire le dashboard directement dans
l'interface Grafana, ou de partir d'un dashboard existant, puis de l'exporter au format JSON et d'en copier le contenu
dans un fichier du répertoire files/dashboards/.
La synchronisation du dépôt GitLab infra-observability vers Grafana est assurée par une application ArgoCD nommée
<env>-<projet>-observability :
Un objet Kubernetes de type GrafanaDashboard est alors créé pour chaque dashboard présent dans le dépôt. Si le
contenu d'un fichier JSON est invalide, les erreurs sont visibles dans les événements de cet objet via ArgoCD.
Note
Seule la branche main est synchronisée.
La vidéo suivante illustre cette fonctionnalité : dashboard-as-code.mp4
Bravo, vous avez terminé le dernier chapitre de la formation CPiN, consacré à l'observabilité !







