nginx-ingress-controller
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

nginx-ingress-controller

Agent Check Check de l'Agent

Supported OS: Linux Mac OS Windows

Présentation

Ce check surveille le NGINX Ingress Controller Kubernetes.

Implémentation

Installation

Le check nginx-ingress-controller est inclus avec le paquet de l’Agent Datadog : vous n’avez donc rien d’autre à installer sur votre serveur.

Configuration

Collecte de métriques

  1. Modifiez le fichier nginx_ingress_controller.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent pour commencer à recueillir vos métriques NGINX Ingress Controller. Consultez le fichier d’exemple nginx_ingress_controller.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

  2. Redémarrez l’Agent.

Collecte de logs

Rassemblez vos logs de NGINX Ingress Controller, y compris Weave NPC et Weave Kube, et envoyez-les à Datadog.

Disponible à partir des versions > 6.0 de l’Agent

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

       (...)
       env:
           (...)
         - name: DD_LOGS_ENABLED
             value: "true"
         - name: DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL
             value: "true"
       (...)
  2. Assurez-vous que le socket Docker est monté sur l’Agent Datadog comme dans ce manifeste.

  3. Redémarrez l’Agent.

Configuration du check NGINX (facultative)

Par défaut, les métriques NGINX sont recueillies par le check nginx-ingress-controller, mais nous vous conseillons d’exécuter le check nginx sur le contrôleur Ingress.

Pour ce faire, faites en sorte que la page d’état NGINX soit accessible depuis l’Agent. Pour cela, utilisez le paramètre nginx-status-ipv4-whitelist sur le contrôleur et ajoutez les annotations Autodiscovery au pod du contrôleur.

Par exemple, ces annotations activent les checks nginx et nginx-ingress-controller et la collecte de logs :

ad.datadoghq.com/nginx-ingress-controller.check_names: '["nginx","nginx_ingress_controller"]'
ad.datadoghq.com/nginx-ingress-controller.init_configs: '[{},{}]'
ad.datadoghq.com/nginx-ingress-controller.instances: '[{"nginx_status_url": "http://%%host%%:18080/nginx_status"},{"prometheus_url": "http://%%host%%:10254/metrics"}]'
ad.datadoghq.com/nginx-ingress-controller.logs: '[{"service": "controller", "source":"nginx-ingress-controller"}]'

Remarque : à partir de la version 0.23.0 de nginx-ingress-controller, le serveur nginx qui effectuait son écoute sur le port 18080 a été supprimé. Il peut être rétabli en ajoutant le http-snippet suivant à la ConfigMap de configuration :

  http-snippet: |
    server {
      listen 18080;

      location /nginx_status {
        allow all;
        stub_status on;
      }

      location / {
        return 404;
      }
    }

Validation

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

Données collectées

Métriques

nginx_ingress.nginx.connections.current
(gauge)
Current number of client connections with state
Shown as connection
nginx_ingress.nginx.connections.total
(count)
Total number of connections with state
Shown as connection
nginx_ingress.nginx.requests.total
(count)
Total number of client requests
Shown as request
nginx_ingress.nginx.process.count
(gauge)
Number of nginx processes
Shown as process
nginx_ingress.nginx.bytes.read
(count)
Number of bytes read
Shown as byte
nginx_ingress.nginx.bytes.write
(count)
Number of bytes written
Shown as byte
nginx_ingress.nginx.cpu.time
(count)
Cpu usage in seconds
Shown as second
nginx_ingress.nginx.mem.resident
(gauge)
Resident memory size in bytes
Shown as byte
nginx_ingress.nginx.mem.virtual
(gauge)
Virtual memory size in bytes
Shown as byte
nginx_ingress.controller.reload.success
(count)
Cumulative number of Ingress controller reload operations
nginx_ingress.controller.upstream.latency.count
(gauge)
Count of upstream service latency per Ingress
nginx_ingress.controller.upstream.latency.sum
(gauge)
Sum of upstream service latency per Ingress
Shown as second
nginx_ingress.controller.upstream.latency.quantile
(gauge)
Quantiles of upstream service latency per Ingress
Shown as second
nginx_ingress.controller.response.duration.count
(count)
Count of response duration per Ingress
nginx_ingress.controller.response.duration.sum
(gauge)
Sum of response duration per Ingress
Shown as second
nginx_ingress.controller.requests
(count)
The total number of client requests
Shown as request
nginx_ingress.controller.cpu.time
(count)
Cpu usage in seconds
Shown as second
nginx_ingress.controller.mem.resident
(gauge)
Resident memory size in bytes
Shown as byte
nginx_ingress.controller.mem.virtual
(gauge)
Virtual memory size in bytes
Shown as byte
nginx_ingress.controller.request.duration.count
(count)
The count of request processing time
nginx_ingress.controller.request.duration.sum
(gauge)
The sum of request processing time
Shown as millisecond

Événements

NGINX Ingress Controller n’inclut aucun événement.

Checks de service

NGINX Ingress Controller n’inclut aucun check de service.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.