Utiliser les labels dynamiques
Introduction
Section titled “Introduction”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.
Concepts clés
Section titled “Concepts clés”| 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. |
Créer un label dynamique
Section titled “Créer un label dynamique”- Ouvrez Paramètres, puis la tuile Labels dynamiques.
- Cliquez sur Créer un label.
- 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.
- Label : nom de la clé de classification (ex. :
- 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.
Exemples de commandes
Section titled “Exemples de commandes”Détecter l’environnement
Section titled “Détecter l’environnement”if [ -f /etc/production ]; then echo "production"; else echo "staging"; fiLister les services actifs (valeurs multiples)
Section titled “Lister les services actifs (valeurs multiples)”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,postgresqlsera automatiquement séparée en deux valeurs :nginxetpostgresql.
Récupérer la région ou le datacenter
Section titled “Récupérer la région ou le datacenter”hostname -f | cut -d. -f2Détecter le système d’exploitation
Section titled “Détecter le système d’exploitation”uname -sModifier un label dynamique
Section titled “Modifier un label dynamique”- Dans la liste des labels, cliquez sur Modifier à côté du label concerné.
- Le formulaire se pré-remplit avec les valeurs actuelles (Label et Commande).
- Apportez vos modifications.
- Cliquez sur Mettre à jour pour enregistrer, ou Annuler pour fermer sans sauvegarder.
Supprimer un label dynamique
Section titled “Supprimer un label dynamique”Dans la liste des labels, cliquez sur Supprimer à côté du label à retirer. Une confirmation est demandée avant la suppression définitive.
Rechercher un label
Section titled “Rechercher un label”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
Cibler des checks avec les labels
Section titled “Cibler des checks avec les labels”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.
Bonnes pratiques
Section titled “Bonnes pratiques”- 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.