Acte 0 · Phase 3 — Déployer les services observés
Objectif
Section intitulée « Objectif »La VM monitoring est nue (Phase 2). Vous y déployez vous-même l’infrastructure que les
Actes 1-3 vont observer. Tout est décrit dans un seul dépôt, monitoring : il monte d’un
coup le SI observé (PostgreSQL base_af, NextCloud) et la stack d’observabilité
(Grafana, Prometheus, Loki, Alloy, exporters, Caddy).
3.1 — Déployer sur deux VMs : apps puis monitoring
Section intitulée « 3.1 — Déployer sur deux VMs : apps puis monitoring »Depuis l’Acte 1, le SI observé et l’observabilité vivent sur deux machines distinctes —
comme dans la vraie vie, l’observateur n’habite pas la machine qu’il observe. Relevez d’abord
les deux IP (hostname -I sur chaque VM), vous en aurez besoin pour les câbler.
a) La VM apps — les applications observées
Section intitulée « a) La VM apps — les applications observées »vagrant ssh appssudo -iu taaf-engineer
# Les dépôts, côte à côte : monitoring monte ../sql (seeds base_af) et ../data (scénario, Phase 4)git clone https://gitlab.com/kds-formation/sql.gitgit clone https://gitlab.com/kds-formation/data.gitgit clone https://gitlab.com/kds-formation/monitoring.gitcd monitoring
# Câbler vers la VM monitoring (Alloy y pousse les logs)cp .env.example .env# éditez .env : IP_MONITORING = l'IP de la VM monitoring
# PostgreSQL base_af, exporters, Alloy, cAdvisor…docker compose -f docker-compose-apps.yml up -d# NextCloud (compose dédié)docker compose -f docker-compose-nextcloud.yml up -db) La VM monitoring — l’observabilité
Section intitulée « b) La VM monitoring — l’observabilité »vagrant ssh monitoringsudo -iu taaf-engineergit clone https://gitlab.com/kds-formation/monitoring.gitcd monitoring
# Câbler vers la VM apps : remplacez IP_APPS_A_RENSEIGNER par l'IP de la VM apps# - config/prometheus/prometheus.yml (cibles des exporters)# - config/grafana/provisioning/datasources/datasources.yml (datasource PostgreSQL)sed -i "s/IP_APPS_A_RENSEIGNER/<IP de la VM apps>/g" \ config/prometheus/prometheus.yml config/grafana/provisioning/datasources/datasources.yml
# Grafana, Prometheus, Loki, Alertmanagerdocker compose up -dCheckpoint — les conteneurs tournent sur chaque VM :
docker compose ps # (et `docker compose -f docker-compose-apps.yml ps` sur la VM apps)3.2 — Vérifier le SI observé
Section intitulée « 3.2 — Vérifier le SI observé »PostgreSQL base_af
Section intitulée « PostgreSQL base_af »Base métier de Port-aux-Français / Alfred Faure (RH, météo, comms) — et, plus tard, la table
sensible genetic_samples.
# sur la VM apps :docker exec -it postgres-af psql -U taaf_admin -d base_af -c '\dt'# → la connexion répond, la base base_af existe (tables métier listées)NextCloud
Section intitulée « NextCloud »Partage de fichiers ; hébergera le coffre CLASSIFIED-VAULT-X. Exposé en :8081.
curl -f http://localhost:8081/status.php # sur la VM apps → {"installed":true,...}- UI :
http://IP_APPS:8081— adminadmin.cloud.af/AdminCloudAF2024!.
3.3 — Vérifier l’observabilité
Section intitulée « 3.3 — Vérifier l’observabilité »La même stack expose déjà Grafana, Prometheus et Loki : ce sont vos outils pour les Actes 1-2.
curl -f http://localhost:3000/api/health # Grafana → {"database":"ok",...}curl -f http://localhost:9090/-/healthy # Prometheus → Healthycurl -f http://localhost:3100/ready # Loki → ready- Grafana :
http://IP_VM1:3000(VM monitoring) — adminadmin/AdminTAAF2024!.
→ Le SI observé et l’observabilité tournent et sont vérifiés. Ils sont vides du scénario : on les peuple en Phase 4.