Prometheus: Automatiser avec la CLI

Démarrez Prometheus, récupérez ses identifiants et modifiez sa configuration par programmation avec la CLI Stackhero

👋 Bienvenue sur la documentation de Stackhero !

Stackhero propose une plateforme Prometheus cloud entièrement managée, pensée pour la fiabilité et la simplicité :

  • Alert Manager est intégré, ce qui vous permet d'envoyer vos alertes directement vers Slack, Mattermost, PagerDuty et d'autres destinations populaires.
  • Un serveur d'e-mail dédié vous permet d'envoyer un nombre illimité d'alertes par e-mail sans configuration supplémentaire.
  • Blackbox est inclus, pour sonder les protocoles HTTP, ICMP, TCP et bien d'autres, afin d'assurer une supervision complète.
  • Configurez rapidement votre instance grâce à l'éditeur de fichier de configuration en ligne. Il n'est pas nécessaire de gérer le YAML manuellement.
  • Appliquez les mises à jour en un clic. Stackhero s'occupe du processus de mise à niveau pour vous, en limitant les interruptions et les interventions manuelles.
  • Performances élevées et sécurité renforcée sont intégrées, grâce à votre propre infrastructure privée et dédiée.

Soyez opérationnel en environ 5 minutes. Stackhero prend en charge l'installation pour que vous puissiez vous concentrer sur la supervision, pas sur la maintenance. Essayez l'hébergement Prometheus cloud sur Stackhero pour simplifier vos workflows de monitoring et d'alerting.

Ce guide vous montre comment créer un service Prometheus, lire ses identifiants et mettre à jour sa configuration entièrement en ligne de commande, sans aucun clic sur le tableau de bord. C'est idéal pour les scripts, les pipelines CI et les agents IA.

Nous allons utiliser la CLI Stackhero pour toutes les opérations. Si ce n'est pas déjà fait, vous pouvez l'installer avec :

curl -fsSL https://www.stackhero.io/install.sh | sh

La façon la plus simple de commencer est de vous connecter via votre navigateur. Lorsque vous lancez la commande de connexion, la CLI ouvre une page web où vous pouvez approuver l'accès. Aucun mot de passe ni code 2FA n'est saisi dans la CLI elle-même.

stackhero login

Après la connexion, vos identifiants sont stockés localement et seront utilisés automatiquement par les prochaines commandes CLI.

Pour les environnements entièrement automatisés comme les scripts ou les pipelines CI, vous pouvez préférer un jeton d'accès non interactif. Vous pouvez en créer un depuis votre tableau de bord (Compte > Access tokens), puis l'exporter comme variable d'environnement. La CLI, ainsi que tout script que vous exécutez, le détectera automatiquement.

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

Ensuite, vous voudrez lister les stores de service Prometheus disponibles sur votre compte. La CLI accepte directement le nom du store (prometheus), il n'est donc pas nécessaire de rechercher ou copier des IDs.

# Liste les stores de service Prometheus (ajoutez --organization si vous en gérez plusieurs)
stackhero services-store-list --name="prometheus"

Vous pouvez utiliser le nom du store prometheus dans les commandes suivantes, ou choisir un ID spécifique svs-xxxxxx de la liste si vous le souhaitez.

# Liste les tailles d'instance pour votre store de service (utilisez la colonne NAME pour --instance)
stackhero instances-store-list --service-store=prometheus

# Liste les régions disponibles (noms comme "europe")
stackhero regions-list

Voici un exemple de script qui crée un stack, ajoute votre service Prometheus dessus, attend son démarrage, récupère sa configuration (y compris les identifiants générés), puis applique une nouvelle configuration.

#!/bin/bash
set -e

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

serviceStore="prometheus"   # Le nom du store de service Prometheus (voir étape 2)
instance="..."                # Une taille d'instance de l'étape 3
region="europe"               # Un nom de région de l'étape 3

# Créez un stack pour votre service (utilise votre organisation par défaut ; ajoutez --organization si besoin)
stackId=$(stackhero --format=script stack-create \
  --name="My Prometheus stack")
echo "Stack créé : ${stackId}"

# Ajoutez Prometheus au stack (les noms sont résolus automatiquement)
serviceId=$(stackhero --format=script service-add \
  --stack="My Prometheus stack" \
  --service-store="${serviceStore}" \
  --instance="${instance}" \
  --region="${region}")
echo "Service ajouté : prometheus"

# Attendez que le service soit totalement opérationnel (cela peut prendre quelques minutes)
stackhero service-wait-for --service="prometheus"

# Récupérez la configuration du service, y compris les identifiants générés
stackhero service-configuration-get --service="prometheus" --format=json

La commande service-configuration-get retourne la configuration complète de votre service, incluant les mots de passe générés automatiquement et les informations de connexion. Le résultat est au format JSON, ce qui facilite son utilisation dans des scripts et automatisations.

stackhero service-configuration-get --service=svc-xxxxxx --format=json

Vous pouvez consulter un exemple de schéma de configuration puis appliquer vos propres paramètres. Lors de la mise à jour de la configuration, le service peut redémarrer pour appliquer les changements.

# Affichez le schéma de configuration et un exemple pour votre service
stackhero service-configuration-example --service=svc-xxxxxx

# Appliquez une configuration personnalisée (le service redémarre si nécessaire)
stackhero service-configuration-set \
  --service=svc-xxxxxx \
  --configuration='{ "...": "..." }'

# Attendez que la nouvelle configuration soit appliquée
stackhero service-wait-for --service=svc-xxxxxx

Et voilà. Vous avez maintenant vu tout le cycle de vie : démarrer un service, récupérer ses identifiants et le reconfigurer, le tout de façon scriptable et automatisée. Pour aller plus loin, consultez la documentation complète de la CLI, qui couvre également l'authentification non interactive STACKHERO_TOKEN présentée ici.