Gatekeeper

Supported OS Linux

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 que se indican a continuación con el fin de instalar y configurar este check para un Agent que se ejecuta en un clúster de Kubernetes. También consulta 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 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 has añadido al pod del Agent para empezar a recopilar tus datos de rendimiento de Gatekeeper. Consulta 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)
Latency of audit operation in seconds
Shown as second
gatekeeper.audit.duration.seconds.count
(count)
Latency of audit operation in seconds
Shown as second
gatekeeper.audit.last_run_time
(gauge)
Timestamp of last audit operation
gatekeeper.constraint_template_ingestion.duration.seconds.sum
(count)
Distribution of how long it took to ingest a constraint template in seconds
Shown as second
gatekeeper.constraint_template_ingestion.duration.seconds.count
(count)
Distribution of how long it took to ingest a constraint template in seconds
Shown as second
gatekeeper.constraint_template_ingestion.count
(count)
Total number of constraint template ingestion actions
gatekeeper.violations
(gauge)
Total number of violations per constraint
gatekeeper.constraints
(gauge)
Current number of known constraints
gatekeeper.constraint_templates
(gauge)
Number of observed constraint templates
gatekeeper.request.duration.seconds.sum
(count)
[Deprecated since Gatekeeper v3.4.0] The response time in seconds
Shown as second
gatekeeper.request.duration.seconds.count
(count)
[Deprecated since Gatekeeper v3.4.0] The response time in seconds
Shown as second
gatekeeper.request.count
(count)
[Deprecated since Gatekeeper v3.4.0] Total number of requests that are routed to webhook
gatekeeper.sync
(gauge)
Total number of resources of each kind being cached
gatekeeper.sync.duration.seconds.sum
(count)
Latency of sync operation in seconds
Shown as second
gatekeeper.sync.duration.seconds.count
(count)
Latency of sync operation in seconds
Shown as second
gatekeeper.sync.last_run_time
(gauge)
Timestamp of last sync operation
gatekeeper.watch.intended
(gauge)
The total number of Group/Version/Kinds that the watch manager has instructions to watch
gatekeeper.watch.watched
(gauge)
The total number of Group/Version/Kinds currently watched by the watch manager
gatekeeper.validation.request.count
(count)
The number of requests that are routed to validation webhook
gatekeeper.validation.request.duration.seconds.sum
(count)
The response time in second
Shown as second
gatekeeper.validation.request.duration.seconds.count
(count)
The response time in second
Shown as second
gatekeeper.mutator.ingestion.count
(count)
Total number of Mutator ingestion actions
gatekeeper.mutator.ingestion.duration.seconds.sum
(count)
The distribution of Mutator ingestion durations
Shown as second
gatekeeper.mutator.ingestion.duration.seconds.count
(count)
The distribution of Mutator ingestion durations
Shown as second
gatekeeper.mutators
(gauge)
The current number of Mutator objects
gatekeeper.mutator.conflicting.count
(gauge)
The current number of conflicting Mutator objects

Eventos

Gatekeeper no incluye eventos.

Checks de servicio

gatekeeper.prometheus.health
Returns CRITICAL if the agent fails to connect to the Prometheus metrics endpoint, otherwise OK.
Statuses: ok, critical

gatekeeper.health
Returns CRITICAL if the agent fails to connect to the gatekeeper health endpoint, OK if it returns 200, WARNING otherwise.
Statuses: ok, warning, critical

Solucionar problemas

¿Necesitas ayuda? Contacta con el equipo de asistencia de Datadog.