PmaControl logo PmaControl
  • Accueil
  • PmaControl
    • Agents IA 13 agents on-premise
    • Nos offres Community, Cloud, On-Premise, Premium
    • Documentation Guides, API, architecture
    • Clients 28+ entreprises
    • FAQ 25 questions / 7 catégories
    Bases de données
    • MariaDB 30 articles
    • MySQL 10 articles
    • Galera Cluster 6 articles
    • MaxScale 3 articles
    • ProxySQL 2 articles
    • Amazon Aurora MySQL 0 article
    • Azure Database 0 article
    • ClickHouse 0 article
    • GCP CloudSQL 0 article
    • Percona Server 0 article
    • SingleStore 0 article
    • TiDB 0 article
    • Vitess 0 article
    Solutions
    • Support 24×7 Urgences MariaDB & MySQL
    • Observabilité SQL Monitoring, alertes, topologie
    • Haute disponibilité Réplication, failover, Galera
    • Disaster Recovery Backup, restore, RPO/RTO
    • Sécurité & conformité Audit, RGPD, SOC2
    • Migration & upgrade Zero downtime, pt-osc, gh-ost
  • Nos offres
  • Ressources
    • Documentation Guides techniques & API
    • FAQ 25 questions fréquentes
    • Témoignages Retours clients & cas d'usage
    • Blog Articles & insights
    • Roadmap Fonctionnalités à venir
    Domaines d'expertise
    • Observabilité SQL Monitoring, alertes, topologie Dot3
    • Haute disponibilité Réplication, failover, Galera
    • Sécurité & conformité Audit, RGPD, SOC2, ISO 27001
    • Disaster Recovery Backup, restore, RPO/RTO
    • Performance & optimisation Digests, EXPLAIN, tuning
    • Migration & upgrade Zero downtime, pt-osc
    Liens rapides
    • Wiki GitHub 26 pages — install, engine, plugins
    • Code source Repository GitHub officiel
    • Support 24×7 Urgences MariaDB & MySQL
    • Réserver une démo 30 min — architecture réelle
  • Support 24×7
  • Réserver une démo
Réserver une démo
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文
← Retour au blog

Ajouter automatiquement des serveurs MariaDB / MySQL dans PmaControl via le webservice

Publié le 13 avril 2026 Par Aurélien LEQUOY
pmacontrol rest-api automation devops webservice
Partager X LinkedIn Facebook Email PDF
Ajouter automatiquement des serveurs MariaDB / MySQL dans PmaControl via le webservice

Pourquoi automatiser l'ajout de serveurs

Quand vous supervisez 5 serveurs MariaDB / MySQL, les ajouter à la main dans PmaControl est acceptable. À 50 ou 200 serveurs, ça ne l'est plus.

L'API REST de PmaControl permet d'industrialiser cet ajout : un script, un pipeline CI/CD, ou un outil d'orchestration (Ansible, Terraform) peut créer un serveur supervisé en une seule requête HTTP.

Pré-requis

  • Un compte webservice actif dans PmaControl (créé lors de l'installation via config.json)
  • L'URL de votre instance PmaControl
  • Le client et l'environnement cibles doivent exister (créez-les d'abord via l'API si besoin)

Endpoint principal

POST /fr/api/config/servers
Content-Type: application/json

Authentification via le compte webservice configuré dans configuration/webservice.config.php.

Payload pour ajouter un serveur

{
  "id_client": 1,
  "id_environment": 1,
  "name": "prod-db-01",
  "display_name": "Production DB 01",
  "ip": "10.68.68.100",
  "hostname": "prod-db-01.internal",
  "login": "pmacontrol",
  "passwd": "SecurePassword123",
  "database": "information_schema",
  "port": 3306,
  "is_ssl": 0,
  "ssh_port": 22,
  "ssh_login": "pmacontrol",
  "is_sudo": 1,
  "is_root": 0,
  "is_monitored": 1,
  "is_proxy": 0,
  "is_vip": 0
}

Champs importants

Champ Description
id_client Identifiant du client (organisation)
id_environment Identifiant de l'environnement (Production, Staging, etc.)
ip Adresse IP d'accès au serveur MySQL
port Port MySQL (3306 par défaut)
login / passwd Identifiants MySQL pour la collecte
is_monitored 1 = supervision active, 0 = désactivé
is_proxy 1 si c'est un ProxySQL/MaxScale (teste la connexion différemment)
is_vip 1 si c'est une VIP/DNS (pas de connexion directe, suivi de redirection)

Créer les dépendances d'abord

Avant d'ajouter un serveur, le client et l'environnement doivent exister.

Créer un client

curl -s -X POST http://pmacontrol.local/fr/api/config/clients \
  -H "Content-Type: application/json" \
  -d '{"name": "68Koncept", "description": "Production infrastructure"}'

Créer un environnement

curl -s -X POST http://pmacontrol.local/fr/api/config/environments \
  -H "Content-Type: application/json" \
  -d '{"name": "Production", "description": "Live servers"}'

Ajouter une clé SSH

curl -s -X POST http://pmacontrol.local/fr/api/config/ssh-keys \
  -H "Content-Type: application/json" \
  -d '{"name": "deploy-key", "private_key": "-----BEGIN RSA PRIVATE KEY-----\n..."}'

Script complet d'ajout en masse

#!/bin/bash
PMAC="http://pmacontrol.local"
CLIENT_ID=1
ENV_ID=1

SERVERS=(
  "prod-db-01:10.68.68.100:3306"
  "prod-db-02:10.68.68.101:3306"
  "prod-db-03:10.68.68.102:3306"
  "prod-proxy-01:10.68.68.200:6033"
)

for entry in "${SERVERS[@]}"; do
  IFS=: read -r name ip port <<< "$entry"
  is_proxy=0
  [[ "$name" == *proxy* ]] && is_proxy=1

  curl -s -X POST "$PMAC/fr/api/config/servers" \
    -H "Content-Type: application/json" \
    -d "{
      \"id_client\": $CLIENT_ID,
      \"id_environment\": $ENV_ID,
      \"name\": \"$name\",
      \"display_name\": \"$name\",
      \"ip\": \"$ip\",
      \"port\": $port,
      \"login\": \"pmacontrol\",
      \"passwd\": \"PmacMonitor2026\",
      \"database\": \"information_schema\",
      \"is_monitored\": 1,
      \"is_proxy\": $is_proxy,
      \"ssh_port\": 22,
      \"ssh_login\": \"pmacontrol\"
    }"
  echo " → $name added"
done

Lister les serveurs existants

curl -s http://pmacontrol.local/fr/api/config/servers | jq '.[] | {id, name, ip, is_monitored}'

Mettre à jour un serveur

PUT /fr/api/config/servers/{id}
curl -s -X PUT http://pmacontrol.local/fr/api/config/servers/5 \
  -H "Content-Type: application/json" \
  -d '{"is_monitored": 0}'

Supprimer un serveur

La suppression est un soft delete (is_deleted = 1). Le serveur disparaît de l'interface mais reste en base :

curl -s -X DELETE http://pmacontrol.local/fr/api/config/servers/5

Tags pour organiser vos serveurs

Les tags permettent de catégoriser les serveurs (datacenter, rôle, version) :

# Créer un tag
curl -s -X POST http://pmacontrol.local/fr/api/config/tags \
  -H "Content-Type: application/json" \
  -d '{"name": "dc-paris", "description": "Paris datacenter"}'

# Associer un tag à un serveur (via l'interface ou l'API)

Vérification après ajout

Après l'ajout, PmaControl commence automatiquement la collecte si is_monitored = 1. Vérifiez dans l'interface :

  1. Le serveur apparaît dans la liste Server > Main
  2. La topologie Dot3 se met à jour au prochain cycle
  3. Les premières métriques arrivent dans les 60 secondes

Spécification OpenAPI

PmaControl expose sa spécification OpenAPI complète :

GET /fr/api/openApi

Utilisable avec Swagger UI ou pour générer des clients SDK automatiquement.

Conclusion

L'API REST de PmaControl transforme l'ajout de serveurs d'une tâche manuelle en une opération scriptable et reproductible. Combinée avec Ansible ou Terraform, elle permet une approche Infrastructure-as-Code de la supervision MariaDB / MySQL.

Partager X LinkedIn Facebook Email PDF
← Retour au blog

Commentaires (0)

Aucun commentaire pour le moment.

Laisser un commentaire

PmaControl
+33 6 63 28 27 47 contact@pmacontrol.com
Mentions légales GitHub Contact
N'attendez pas l'incident pour comprendre votre architecture. © 2014-2026 PmaControl — 68Koncept