Supervisord
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

Supervisord

Agent Check Check de l'Agent

Supported OS: Linux Mac OS Windows

Événement Supervisor

Présentation

Ce check surveille la disponibilité, le statut et le nombre de processus s’exécutant sous Supervisor.

Implémentation

Installation

Le check Supervisor est inclus dans le paquet de l’Agent Datadog : vous n’avez donc rien d’autre à installer sur les serveurs qui exécutent Supervisor.

Configuration

Préparer supervisord

L’Agent peut recueillir des données à partir de Supervisor via un serveur HTTP ou un socket UNIX. L’Agent recueille les mêmes données quelle que soit la méthode de collecte que vous configurez.

Serveur HTTP

Ajoutez un bloc comme celui-ci au fichier de configuration principal de Supervisor (par exemple, /etc/supervisor.conf) :

[inet_http_server]
port=localhost:9001
;username=user  # facultatif
;password=pass  # facultatif
Socket UNIX

Ajoutez des blocs comme ceux-ci au fichier /etc/supervisor.conf (s’ils ne sont pas déjà présents) :

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock

[unix_http_server]
file=/var/run/supervisor.sock
chmod=777
chown=nobody:nogroup
;username=user  # facultatif
;password=pass  # facultatif

Si Supervisor est exécuté en mode root, assurez-vous que chmod ou chown est défini de façon à ce que les utilisateurs non root (c’est-à-dire, dd-agent) puissent lire le socket.


Rechargez supervisord.

Host

Suivez les instructions ci-dessous pour installer et configurer ce check lorsque l’Agent est exécuté sur un host. Consultez la section Environnement conteneurisé pour en savoir plus sur les environnements conteneurisés.

Modifiez le fichier supervisord.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent. Consultez le fichier d’exemple supervisord.d/conf.yaml pour découvrir toutes les options de configuration disponibles :

init_config:

instances:
  ## Utilisé pour taguer les checks de service et les métriques, p. ex. supervisor_server:supervisord0
  - name: supervisord0
    host: localhost
    port: 9001
  ## Pour effectuer la collecte à partir du socket
  # - name: supervisord0
  #   socket: unix:///var/run/supervisor.sock

Utilisez les options proc_names et/ou proc_regex pour énumérer les processus pour lesquels vous souhaitez que l’Agent recueille des métriques et crée des checks de service. Si aucune de ces options n’est spécifiée, l’Agent suit tous les processus enfants de Supervisor. Si les deux options sont spécifiées, l’Agent suit les processus présents dans les deux listes (en d’autres termes, les deux options ne sont pas mutuellement exclusives).

Consultez un exemple de check de configuration pour obtenir les descriptions complètes des autres options de check.

Redémarrez l’Agent pour commencer à envoyer vos métriques Supervisord à Datadog.

Environnement conteneurisé

Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer les paramètres ci-dessous à un environnement conteneurisé.

ParamètreValeur
<NOM_INTÉGRATION>supervisord
<CONFIG_INIT>vide ou {}
<CONFIG_INSTANCE>{"host":"%%host%%", "port":"9001", "user":"<NOMUTILISATEUR>", "pass":"<MOTDEPASSE>"}

Validation

Lancez la sous-commande status de l’Agent et cherchez supervisord dans la section Checks.

Données collectées

Métriques

supervisord.process.count
(gauge)
The number of supervisord monitored processes
Shown as process
supervisord.process.uptime
(gauge)
The process uptime
Shown as second

Événements

Le check Supervisor n’inclut aucun événement.

Checks de service

supervisord.can_connect :

Renvoie CRITICAL si l’Agent n’est pas capable de se connecter au serveur HTTP ou au socket UNIX que vous avez configuré. Si ce n’est pas le cas, renvoie OK.

supervisord.process.status :

L’Agent envoie ce check de service pour tous les processus enfants de supervisord (si aucune des options proc_names ou proc_regex n’est configurée) OU un ensemble de processus enfants (ceux qui sont configurés dans proc_names et/ou proc_regex), en appliquant le tag supervisord_process:<nom_processus> à chaque check de service.

Ce tableau montre le supervisord.process.status renvoyé pour chaque statut de supervisord :

supervisord statussupervisord.process.status
STOPPEDCRITICAL
STARTINGUNKNOWN
RUNNINGOK
BACKOFFCRITICAL
STOPPINGCRITICAL
EXITEDCRITICAL
FATALCRITICAL
UNKNOWNUNKNOWN

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Further Reading