Supervisord

Supported OS Linux Mac OS Windows

Intégration2.3.0

Événement Supervisor

Présentation

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

Configuration

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 (/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 comme dd-agent puissent lire le socket.


Rechargez supervisord.

Host

Pour configurer ce check lorsque l’Agent est exécuté sur un host :

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 configuration du check pour obtenir les descriptions complètes des autres options du 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>{"name":"<NOM_SERVEUR_SUPERVISORD>", "host":"%%host%%", "port":"9001", "user":"<UTILISATEUR>", "pass":"<MOTDEPASSE>"}

Collecte de logs

  1. La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans datadog.yaml :

    logs_enabled: true
    
  2. Ajoutez ce bloc de configuration à votre fichier supervisord.d/conf.yaml pour commencer à recueillir vos logs Supervisord :

    logs:
      - type: file
        path: /path/to/my/directory/file.log
        source: supervisord
    

    Modifiez la valeur du paramètre path et configurez-la pour votre environnement. Consultez le fichier d’exemple supervisord.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

  3. Redémarrez l’Agent.

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 le check de l’Agent n’est pas capable de se connecter au daemon supervisor. Si ce n’est pas le cas, renvoie OK.
Statuses: ok, critical

supervisord.process.status
Renvoie CRITICAL si le processus n’est pas en cours d’exécution ou d’arrêt, renvoie UNKNOWN si l’est en cours de démarrage ou d’un autre processus inconnu ou renvoie OK pour les autres cas.
Statuses: ok, critical, unknown

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Pour aller plus loin