nginx-ingress-controller

Supported OS Linux Mac OS Windows

Présentation

Ce check surveille le NGINX Ingress Controller Kubernetes.

Configuration

Installation

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

Configuration

Host

Si votre Agent s’exécute sur un host, 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. Ensuite, redémarrez l’Agent.

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é.

Collecte de métriques

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 :

ParamètreValeur
<NOM_INTÉGRATION>["nginx","nginx_ingress_controller"]
<CONFIG_INIT>[{},{}]
<CONFIG_INSTANCE>[{"nginx_status_url": "http://%%host%%:18080/nginx_status"},{"prometheus_url": "http://%%host%%:10254/metrics"}]

Consultez le fichier d’exemple nginx_ingress_controller.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

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;
      }
    }

Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

La collecte des logs est désactivée par défaut dans l’Agent Datadog. Pour l’activer, consultez la section Collecte de logs avec Kubernetes.

ParamètreValeur
<CONFIG_LOG>[{"service": "controller", "source": "nginx-ingress-controller"}]

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.controller.cpu.time
(count)
Cpu usage in seconds
Shown as second
nginx_ingress.controller.last.reload.success
(gauge)
Whether the last configuration reload attempt was successful
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.reload.success
(count)
Cumulative number of Ingress controller reload operations
nginx_ingress.controller.request.duration.count
(gauge)
The count of request processing time
nginx_ingress.controller.request.duration.sum
(gauge)
The sum of request processing time
Shown as millisecond
nginx_ingress.controller.request.size.count
(gauge)
The count of request size
nginx_ingress.controller.request.size.sum
(gauge)
The sum of request size
Shown as byte
nginx_ingress.controller.requests
(count)
The total number of client requests
Shown as request
nginx_ingress.controller.response.duration.count
(gauge)
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.response.size.count
(gauge)
Count of response size per Ingress
nginx_ingress.controller.response.size.sum
(gauge)
Sum of response size per Ingress
Shown as byte
nginx_ingress.controller.upstream.latency.count
(gauge)
Count of upstream service latency per Ingress
nginx_ingress.controller.upstream.latency.quantile
(gauge)
Quantiles of upstream service latency per Ingress
Shown as second
nginx_ingress.controller.upstream.latency.sum
(gauge)
Sum of upstream service latency per Ingress
Shown as second
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.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.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.nginx.process.count
(gauge)
Number of nginx processes
Shown as process
nginx_ingress.nginx.requests.total
(count)
Total number of client requests
Shown as request

É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.