Skip to content

Deploiement Scaleway

Ce guide deploie la monitoring box sur Scaleway avec Terraform, puis lance la stack Docker Compose sur la VM.

Depuis la racine du repo:

Terminal window
cd terraform
Copy-Item terraform.tfvars.example terraform.tfvars

Edite terraform.tfvars:

project = "mycompany"
region = "fr-par"
zone = "fr-par-1"
instance_type = "PRO2-S"
root_disk_gb = 100
ssh_public_key = "ssh-ed25519 AAAA..."
admin_ssh_cidrs = ["x.x.x.x/32"]
dns_zone = ""
logs_retention_days = 90
traces_retention_days = 30

Pour un premier test, mettre ton IP publique dans admin_ssh_cidrs simplifie l’acces SSH. En production, prefere Tailscale et reduis l’exposition SSH.

Dans le meme terminal:

Terminal window
$env:SCW_ACCESS_KEY="..."
$env:SCW_SECRET_KEY="..."
$env:SCW_DEFAULT_PROJECT_ID="..."
Terminal window
terraform init
terraform fmt -check
terraform validate
terraform plan
terraform apply

Terraform affiche notamment:

  • l’IP publique,
  • la commande SSH,
  • le bucket logs,
  • le bucket traces.
Terminal window
ssh deploy@<public-ip>

Puis active Tailscale si tu l’utilises:

Terminal window
sudo tailscale up --ssh

Sur la VM:

Terminal window
git clone <url-du-repo> /opt/monitoring-stack
cd /opt/monitoring-stack
cp .env.example .env

Edite .env:

GF_ADMIN_USER=admin
GF_ADMIN_PASSWORD=<mot-de-passe-fort>
GF_ROOT_URL=https://grafana.<domaine>
DOMAIN_GRAFANA=grafana.<domaine>
DOMAIN_OTLP=otlp.<domaine>
DOMAIN_DOCS=docs.<domaine>
PUBLIC_DOCS_SITE=https://docs.<domaine>
ACME_EMAIL=admin@<domaine>
BASIC_AUTH_HASH=<hash-caddy>

Genere le hash Caddy pour l’endpoint OTLP:

Terminal window
docker run --rm caddy:2.11.3-alpine caddy hash-password --plaintext '<mot-de-passe-agent>'

Colle la sortie dans BASIC_AUTH_HASH.

Terminal window
docker compose up -d --build

Vérifie l’etat:

Terminal window
docker compose ps
docker compose logs --tail=100 grafana
docker compose logs --tail=100 otel-collector
docker compose logs --tail=100 docs

Grafana:

https://grafana.<domaine>

Documentation:

https://docs.<domaine>

Diun est optionnel:

Terminal window
docker compose --profile updates up -d

Configure un notifier dans diun/diun.yml avant de compter dessus en production.

Depuis terraform/:

Terminal window
terraform destroy

Attention: cette commande supprime l’infra geree par Terraform. Les donnees applicatives dans les volumes Docker de la VM disparaissent avec la VM.