Gatekeeper

Supported OS

Versión de la integración1.0.0

Información general

Este check recopila métricas de OPA Gatekeeper.

Dashboard de información general de Gatekeeper

Configuración

Sigue las instrucciones a continuación para instalar y configurar este check para un Agent que se ejecute en un clúster de Kubernetes. Consulta también las plantillas de integración de Autodiscovery para obtener orientación sobre la aplicación de estas instrucciones.

Instalación

Versiones 7.26.0 y 6.26.0 o posteriores del Agent

Para usar una integración de integrations-extra con el Docker Agent, Datadog recomienda crear el Agent con la integración instalada. Usa el siguiente archivo de Docker para crear una versión actualizada del Agent que incluya la integración gatekeeper desde integrations-extras:

FROM gcr.io/datadoghq/agent:latest
RUN agent integration install -r -t datadog-gatekeeper==<INTEGRATION_VERSION>

Versiones 7.26.0 y 6.26.0 o anteriores del Agent

Para instalar el check de Gatekeeper en tu clúster de Kubernetes:

  1. Instala el kit de herramientas para desarrolladores.

  2. Clona el repositorio integrations-extras:

    git clone https://github.com/DataDog/integrations-extras.git.
    
  3. Actualiza la configuración de ddev con la ruta de integrations-extras/:

    ddev config set repos.extras ./integrations-extras
    
  4. Para crear el paquete de gatekeeper, ejecuta:

    ddev -e release build gatekeeper
    
  5. Descarga el manifiesto del Agent para instalar el Datadog Agent como DaemonSet.

  6. Crea dos PersistentVolumeClaim, uno para el código de checks y otro para la configuración.

  7. Añádelos como volúmenes a tu plantilla de pods del Agent y úsalos para los checks y configuración:

         env:
           - name: DD_CONFD_PATH
             value: "/confd"
           - name: DD_ADDITIONAL_CHECKSD
             value: "/checksd"
       [...]
         volumeMounts:
           - name: agent-code-storage
             mountPath: /checksd
           - name: agent-conf-storage
             mountPath: /confd
       [...]
       volumes:
         - name: agent-code-storage
           persistentVolumeClaim:
             claimName: agent-code-claim
         - name: agent-conf-storage
           persistentVolumeClaim:
             claimName: agent-conf-claim
    
  8. Despliega el Datadog Agent en tu clúster de Kubernetes:

    kubectl apply -f agent.yaml
    
  9. Copia el archivo .whl del artefacto de la integración en tus nodos de Kubernetes o súbelo a una URL pública.

  10. Ejecuta el siguiente comando para instalar la rueda de integraciones con el Agent:

    kubectl exec ds/datadog -- agent integration install -w <PATH_OF_GATEKEEPER_ARTIFACT_>/<GATEKEEPER_ARTIFACT_NAME>.whl
    
  11. Ejecuta los siguientes comandos para copiar los checks y la configuración en los PVCs correspondientes:

    kubectl exec ds/datadog -- sh
    # cp -R /opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/* /checksd
    # cp -R /etc/datadog-agent/conf.d/* /confd
    
  12. Reinicia los pods del Datadog Agent.

Configuración

  1. Edita el archivo gatekeeper/conf.yaml, en la carpeta /confd que añadiste al pod del Agent para empezar a recopilar los datos de rendimiento de tu gatekeeper. Ve el gatekeeper/conf.yaml de ejemplo para conocer todas las opciones de configuración disponibles.

  2. Reinicia el Agent.

Validación

Ejecuta el subcomando de estado del Agent y busca gatekeeper en la sección Checks.

Datos recopilados

Métricas

gatekeeper.audit.duration.seconds.sum
(count)
Latencia de la operación de auditoría en segundos
Se muestra como segundo
gatekeeper.audit.duration.seconds.count
(count)
Latencia de la operación de auditoría en segundos
Se muestra como segundo
gatekeeper.audit.last_run_time
(gauge)
Marca de tiempo de la última operación de auditoría
gatekeeper.constraint_template_ingestion.duration.seconds.sum
(count)
Distribución del tiempo que se tardó en ingerir una plantilla de restricciones en segundos
Se muestra como segundo
gatekeeper.constraint_template_ingestion.duration.seconds.count
(count)
Distribución del tiempo que se tardó en ingerir una plantilla de restricciones en segundos
Se muestra como segundo
gatekeeper.constraint_template_ingestion.count
(count)
Número total de acciones de ingesta de plantillas de restricciones
gatekeeper.violations
(gauge)
Número total de infracciones por restricción
gatekeeper.constraints
(gauge)
Número actual de restricciones conocidas
gatekeeper.constraint_templates
(gauge)
Número de plantillas de restricciones observadas
gatekeeper.request.duration.seconds.sum
(count)
[Obsoleto desde Gatekeeper v3.4.0] El tiempo de respuesta en segundos
Se muestra como segundo
gatekeeper.request.duration.seconds.count
(count)
[Obsoleto desde Gatekeeper v3.4.0] El tiempo de respuesta en segundos
Se muestra como segundo
gatekeeper.request.count
(count)
[Obsoleto desde Gatekeeper v3.4.0] Número total de solicitudes que se dirigen al webhook
gatekeeper.sync
(gauge)
Número total de recursos de cada tipo que se almacenan en caché
gatekeeper.sync.duration.seconds.sum
(count)
Latencia de la operación de sincronización en segundos
Se muestra como segundo
gatekeeper.sync.duration.seconds.count
(count)
Latencia de la operación de sincronización en segundos
Se muestra como segundo
gatekeeper.sync.last_run_time
(gauge)
Marca de tiempo de la última operación de sincronización
gatekeeper.watch.intended
(gauge)
El número total de Grupos/Versiones/Tipos que el gestor de vigilancia tiene instrucciones de vigilar.
gatekeeper.watch.watched
(gauge)
El número total de Grupos/Versiones/Tipos vigilados actualmente por el gestor de vigilancia.
gatekeeper.validation.request.count
(count)
Número de solicitudes enviadas al webhook de validación
gatekeeper.validation.request.duration.seconds.sum
(count)
El tiempo de respuesta en segundo
Se muestra como segundo
gatekeeper.validation.request.duration.seconds.count
(count)
El tiempo de respuesta en segundo
Se muestra como segundo
gatekeeper.mutator.ingestion.count
(count)
Número total de acciones de ingesta de Mutator
gatekeeper.mutator.ingestion.duration.seconds.sum
(count)
La distribución de las duraciones de ingesta de Mutator
Se muestra como segundo
gatekeeper.mutator.ingestion.duration.seconds.count
(count)
La distribución de las duraciones de ingesta de Mutator
Se muestra como segundo
gatekeeper.mutators
(gauge)
Número actual de objetos de Mutator
gatekeeper.mutator.conflicting.count
(gauge)
Número actual de objetos de Mutator en conflicto

Eventos

Gatekeeper no incluye eventos.

Checks de servicio

gatekeeper.prometheus.health

Devuelve CRITICAL si el agent no consigue conectarse al endpoint de métricas de Prometheus, en caso contrario, devuelve OK.

Estados: ok, critical

gatekeeper.health

Devuelve CRITICAL si el agent no consigue conectar con el endpoint de estado del gatekeeper, OK si devuelve 200, WARNING en caso contrario.

Estados: ok, warning, critical

Solucionar problemas

¿Necesitas ayuda? Ponte en contacto con el soporte de Datadog.