Supported OS

Versión de la integración6.1.0

Información general

Este check monitoriza el estado del clúster y los cambios de líder de Vault.

Configuración

Instalación

El check de Vault está incluido en el paquete del Datadog Agent.

A partir de la versión 3.4.0, esta integración basada en OpenMetrics tiene un modo “más reciente” (use_openmetrics: verdadero) y un modo legacy (use_openmetrics: falso). Para obtener todas las funciones más actualizadas, Datadog recomienda habilitar el modo “más reciente”. Ten en cuenta que el modo “más reciente” requiere Python 3. Para obtener más información, consulta Versiones más recientes y heredadas de integraciones basadas en OpenMetrics.

  1. Asegúrate de que has activado métricas de Prometheus en la configuración de Vault.

  2. Para que el check de Vault funcione correctamente, es necesario habilitar el acceso no autenticado a métricas de Vault (utilizando Vault v1.3.0 o posterior) o proporcionar un token de cliente de Vault:

    • Para habilitar el acceso no autenticado, define la configuración unauthenticated_metrics_access de Vault como true. Esto permite el acceso no autenticado al endpoint /v1/sys/metrics.

      Nota: El endpoint /sys/metrics requiere Vault v1.1.0 o posterior para recopilar métricas.

    • Para utilizar un token de cliente de Vault, sigue el siguiente ejemplo. El ejemplo utiliza el método de autenticación JWT, pero también puede utilizar otros métodos de autenticación.

La integración Vault requiere las siguientes capacidades:

  • Contenido de metrics_policy.hcl:

    path "sys/metrics*" {
      capabilities = ["read", "list"]
    }
    
  • Configura la política y el rol:

    $ vault policy write metrics /path/to/metrics_policy.hcl
    $ vault auth enable jwt
    $ vault write auth/jwt/config jwt_supported_algs=RS256 jwt_validation_pubkeys=@<PATH_TO_PUBLIC_PEM>
    $ vault write auth/jwt/role/datadog role_type=jwt bound_audiences=<AUDIENCE> user_claim=name token_policies=metrics
    $ vault agent -config=/path/to/agent_config.hcl
    
  • Contenido de agent_config.hcl:

    exit_after_auth = true
    pid_file = "/tmp/agent_pid"
    
    auto_auth {
      method "jwt" {
        config = {
          path = "<JWT_CLAIM_PATH>"
          role = "datadog"
        }
      }
    
      sink "file" {
        config = {
          path = "<CLIENT_TOKEN_PATH>"
        }
      }
    }
    
    vault {
      address = "http://0.0.0.0:8200"
    }
    

Configuración

Host

Para configurar este check para un Agent que se ejecuta en un host:

  1. Edita el archivo vault.d/conf.yaml, que se encuentra en la carpeta conf.d/ en la raíz del directorio de configuración de tu Agent, para empezar a recopilar los datos de rendimiento de tu Vault. Para conocer todas las opciones de configuración disponibles, consulta el vault.d/conf.yaml de ejemplo.

    Configuración para ejecutar la integración sin un token (con la opción de configuración de Vault unauthenticated_metrics_access definida como verdadera):

    init_config:
    
    instances:
        ## @param api_url - string - required
        ## URL of the Vault to query.
        #
      - api_url: http://localhost:8200/v1
    
        ## @param no_token - boolean - optional - default: false
        ## Attempt metric collection without a token.
        #
        no_token: true
    

    Configuración para ejecutar la integración con un token de cliente:

    init_config:
    
    instances:
        ## @param api_url - string - required
        ## URL of the Vault to query.
        #
      - api_url: http://localhost:8200/v1
    
        ## @param client_token - string - optional
        ## Client token necessary to collect metrics.
        #
        client_token: <CLIENT_TOKEN>
    
        ## @param client_token_path - string - optional
        ## Path to a file containing the client token. Overrides `client_token`.
        ## The token will be re-read after every authorization error.
        #
        # client_token_path: <CLIENT_TOKEN_PATH>
    
  2. Reinicia el Agent.

En contenedores

Para entornos en contenedores, consulta las plantillas de integración de Autodiscovery para obtener orientación sobre la aplicación de los parámetros que se indican a continuación.

ParámetroValor
<INTEGRATION_NAME>vault
<INIT_CONFIG>en blanco o {}
<INSTANCE_CONFIG>{"api_url": "http://%%host%%:8200/v1"}

INSTANCE_CONFIG debe personalizarse en función de la configuración de autenticación de tu Vault. Consulta el ejemplo en la sección Host más arriba.

Recopilación de logs

Disponible para la versión 6.0 o posteriores del Agent

  1. La recopilación de logs se encuentra deshabilitada de manera predeterminada en el Datadog Agent. Habilítala en tu archivo datadog.yaml:

    logs_enabled: true
    
  2. Configura Vault para activar logs de auditoría y servidor.

    • Los logs de auditoría deben ser habilitados por un usuario privilegiado con las políticas apropiadas. Para obtener más información, consulta Activación de dispositivos de auditoría.

      vault audit enable file file_path=/vault/vault-audit.log
      
    • Asegúrate de que los logs de servidor se escriban en el archivo. Puedes configurar logs de servidor estáticos en el script de inicio systemd Vault. El siguiente script envía logs a /var/log/vault.log.

      ...
      [Service]
      ...
      ExecStart=/bin/sh -c '/home/vagrant/bin/vault server -config=/home/vagrant/vault_nano/config/vault -log-level="trace" > /var/log/vault.log
      ...
      
  3. Añade este bloque de configuración a tu archivo vault.d/conf.yaml para empezar a recopilar logs de Vault:

    logs:
      - type: file
        path: /vault/vault-audit.log
        source: vault
        service: "<SERVICE_NAME>"
      - type: file
        path: /var/log/vault.log
        source: vault
        service: "<SERVICE_NAME>"
    

Validación

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

Datos recopilados

Métricas

[Métricas que empiezan con vault.replication.fetchRemoteKeys, vault.replication.merkleDiff y vault.replication.merkleSync] no se notifican a menos que la replicación se encuentre en un estado no saludable.

Eventos

vault.leader_change: Este evento se dispara cuando cambia el líder de clúster.

Checks de servicio

Solucionar problemas

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

Referencias adicionales

Más enlaces, artículos y documentación útiles:

PREVIEWING: may/embedded-workflows