Skip to content

Utiliser les labels dynamiques

Les labels dynamiques permettent de classifier automatiquement vos agents en exécutant une commande shell sur chaque agent. La valeur retournée par la commande devient le label de l’agent pour cette clé.

Si la sortie de la commande contient des virgules, chaque partie devient une valeur distincte. Ces valeurs sont filtrables dans le tableau des agents.

Par exemple, une commande qui retourne nginx,postgres attribuera deux valeurs au label : nginx et postgres.

Concept Description
Label Clé de classification (ex. : Région, Environnement, Services).
Commande Script exécuté localement sur l’agent pour produire la valeur du label.
Valeur Résultat de la commande retourné par l’agent. Si elle contient des virgules, chaque partie est une valeur distincte.
  1. Ouvrez Paramètres, puis la tuile Labels dynamiques.
  2. Cliquez sur Créer un label.
  3. Renseignez les champs du formulaire :
    • Label : nom de la clé de classification (ex. : Région, Environnement). Champ obligatoire.
    • Commande : commande shell à exécuter sur l’agent pour produire la valeur. Champ obligatoire.
  4. Cliquez sur Créer pour valider.

Le label apparaît dans la liste. Sa valeur sera collectée sur chaque agent lors de la prochaine exécution.

Terminal window
if [ -f /etc/production ]; then echo "production"; else echo "staging"; fi

Lister les services actifs (valeurs multiples)

Section titled “Lister les services actifs (valeurs multiples)”
Terminal window
systemctl is-active nginx postgresql redis 2>/dev/null | paste - - - | awk '{
if ($1=="active") printf "nginx,";
if ($2=="active") printf "postgresql,";
if ($3=="active") printf "redis"
}'

La sortie nginx,postgresql sera automatiquement séparée en deux valeurs : nginx et postgresql.

Terminal window
hostname -f | cut -d. -f2
Terminal window
uname -s
  1. Dans la liste des labels, cliquez sur Modifier à côté du label concerné.
  2. Le formulaire se pré-remplit avec les valeurs actuelles (Label et Commande).
  3. Apportez vos modifications.
  4. Cliquez sur Mettre à jour pour enregistrer, ou Annuler pour fermer sans sauvegarder.

Dans la liste des labels, cliquez sur Supprimer à côté du label à retirer. Une confirmation est demandée avant la suppression définitive.

Utilisez la barre de recherche pour filtrer la liste des labels. La recherche porte sur le nom du label et sur le contenu de la commande.

Utiliser les labels dans le tableau des agents

Section titled “Utiliser les labels dans le tableau des agents”

Une fois les labels collectés, ils apparaissent dans le tableau des agents. Vous pouvez filtrer vos agents par valeur de label pour cibler précisément un sous-ensemble de votre parc.

Exemples d’usage :

  • Afficher uniquement les agents en environnement production
  • Isoler les agents exécutant nginx
  • Filtrer les agents d’une région spécifique

Les labels servent aussi à décider quels agents exécutent un check. Dans l’onglet Agents ciblés d’un check, le mode Par filtre retient les agents porteurs de certaines valeurs de labels, en OR, AND ou NOT, éventuellement dans une catégorie.

Le ciblage suit les labels : quand la valeur remontée par un agent change, il entre dans le filtre d’un check, et le reçoit, ou en sort, et le perd. Un serveur qui passe en production reçoit ainsi tout seul les checks de production.

Le détail est dans la référence des options d’un check.

  • Retournez une valeur courte et stable : les labels sont faits pour classer, pas pour décrire. Préférez production à Serveur de production (actif).
  • Utilisez les virgules pour les labels multi-valeurs : si un agent joue plusieurs rôles, retournez-les séparés par des virgules (nginx,redis).
  • Gérez les cas vides : si la commande ne retourne rien (agent non concerné), aucune valeur ne sera attribuée, ce qui est le comportement attendu.
  • Testez votre commande manuellement sur un agent avant de la configurer, pour vérifier le format de sortie.
  • Pensez au ciblage : un label qui sert à cibler des checks doit rester fiable. Une valeur qui varie sans raison ferait entrer et sortir l’agent du périmètre de ces checks.