Varnish

Supported OS Linux Mac OS Windows

Dashboard par défaut Varnish

Présentation

Ce check recueille des métriques Varnish sur les éléments suivants :

  • Clients : connexions et requêtes
  • Performances du cache : hits, expulsions, etc.
  • Threads : créations, échecs et threads en attente
  • Backends : connexions réussies, échouées et réessayées

Il envoie également des checks de service pour contrôler la santé de chaque backend.

Configuration

Installation

Le check Varnish est inclus avec le package de l’Agent Datadog. Vous n’avez donc rien d’autre à installer sur votre serveur.

Configuration

Host

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

Préparer Varnish

Si vous utilisez Varnish 4.1+, ajoutez l’utilisateur système dd-agent au groupe Varnish avec :

sudo usermod -G varnish -a dd-agent
Collecte de métriques
  1. Modifiez le fichier varnish.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent. Consultez le fichier d’exemple varnish.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

    init_config:
    
    instances:
      - varnishstat: /usr/bin/varnishstat
        varnishadm: <PATH_TO_VARNISHADM_BIN>
    

    Remarque : si vous ne définissez pas varnishadm, l’Agent ne surveillera pas la santé du backend. Si vous le définissez, l’Agent doit être autorisé à exécuter le binaire en mode root. Ajoutez la ligne suivante à votre fichier /etc/sudoers :

      dd-agent ALL=(ALL) NOPASSWD:/usr/bin/varnishadm
    
  2. Redémarrez l’Agent.

Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

  1. Pour activer la journalisation de Varnish, supprimez la mise en commentaires de ce qui suit dans /etc/default/varnishncsa :

      VARNISHNCSA_ENABLED=1
    
  2. Ajoutez le bloc suivant à la fin du même fichier :

      LOG_FORMAT="{\"date_access\": \"%{%Y-%m-%dT%H:%M:%S%z}t\", \"network.client.ip\":\"%h\", \"http.auth\" : \"%u\", \"varnish.x_forwarded_for\" : \"%{X-Forwarded-For}i\", \"varnish.hit_miss\":  \"%{Varnish:hitmiss}x\", \"network.bytes_written\": %b, \"http.response_time\": %D, \"http.status_code\": \"%s\", \"http.url\": \"%r\", \"http.ident\": \"%{host}i\", \"http.method\": \"%m\", \"varnish.time_first_byte\" : %{Varnish:time_firstbyte}x, \"varnish.handling\" : \"%{Varnish:handling}x\", \"http.referer\": \"%{Referer}i\", \"http.useragent\": \"%{User-agent}i\" }"
    
      DAEMON_OPTS="$DAEMON_OPTS -c -a -F '${LOG_FORMAT}'"
    
  3. Redémarrez l’utilitaire varnishncsa pour appliquer les changements.

  4. 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
    
  5. Ajoutez ce bloc de configuration à votre fichier varnish.d/conf.yaml pour commencer à recueillir vos logs Varnish :

    logs:
      - type: file
        path: /var/log/varnish/varnishncsa.log
        source: varnish
        service: varnish
    

    Modifiez les valeurs des paramètres path et service et configurez-les pour votre environnement. Consultez le fichier d’exemple varnish.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

  6. Redémarrez l’Agent.

Environnement conteneurisé

La configuration du check Varnish en utilisant Autodiscovery dans les environnements conteneurisés n’est pas prise en charge. La collecte de métriques dans ce type d’environnement est envisageable en envoyant des métriques vers DogStatsD à l’aide du plug-in StatsD. Les plug-ins tiers suivants sont disponibles :

Validation

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

Données collectées

Métriques

Événements

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

Checks de service

varnish.backend_healthy :
L’Agent envoie ce check de service si vous configurez varnishadm. Il envoie un check de service pour chaque backend Varnish, en appliquant à chaque fois le tag backend:<NOM_BACKEND>.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Pour aller plus loin

Documentation, liens et articles supplémentaires utiles :

PREVIEWING: may/embedded-workflows