Supported OS Linux Windows Mac OS

Versión de la integración4.0.0

Consul Dash

Información general

El Datadog Agent recopila muchas métricas de nodos de Consul, incluidas las de:

  • Total de pares de Consul
  • Estado del servicio: para un servicio determinado, ¿cuántos de sus nodos están activos, en transmisión, en advertencia o en estado crítico?
  • Estado del nodo: para un nodo determinado, ¿cuántos de sus servicios están activos, en transmisión, en advertencia o en estado crítico?
  • Coordenadas de red: latencias entre centros de datos y dentro de ellos

El Consul Agent puede proporcionar métricas adicionales con DogStatsD. Estas métricas están más relacionadas con el estado interno de Consul en sí, no con los servicios que dependen de Consul. Hay métricas para:

  • Eventos serf y flaps de miembros
  • Protocolo Raft
  • Rendimiento del DNS

Y mucho más.

Por último, además de las métricas, el Datadog Agent también envía un check de servicio para cada uno de los checks de estado de Consul y un evento después de cada nueva elección de líder.

Configuración

Instalación

El check de Consul está incluido en el paquete del Datadog Agent, por lo que no necesitas instalar nada más en tus nodos de Consul.

Configuración

Host

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

Recopilación de métricas
  1. Edita el archivo consul.d/conf.yaml en la carpeta conf.d/ en la raíz del directorio de configuración de tu Agent para empezar a recopilar tus métricas de Consul. Para ver todas las opciones disponibles de configuración, consulta el ejemplo consul.d/conf.yaml.

    init_config:
    
    instances:
      ## @param url - string - required
      ## Where your Consul HTTP server lives,
      ## point the URL at the leader to get metrics about your Consul cluster.
      ## Use HTTPS instead of HTTP if your Consul setup is configured to do so.
      #
      - url: http://localhost:8500
    
  2. Reinicia el Agent.

OpenMetrics

Opcionalmente, puedes habilitar la opción de configuración use_prometheus_endpoint para obtener un conjunto adicional de métricas del endpoint de Prometheus para Consul.

Nota: Utiliza el método DogStatsD o Prometheus; no habilites ambos para la misma instancia.

  1. Configura Consul para exponer métricas al endpoint de Prometheus. Establece prometheus_retention_time anidado bajo la clave telemetry de nivel superior del archivo de configuración principal de Consul:

    {
      ...
      "telemetry": {
        "prometheus_retention_time": "360h"
      },
      ...
    }
    
  2. Edita el archivo consul.d/conf.yaml, en la carpeta conf.d/ en la raíz de tu directorio de configuración del Agent para empezar a usar el endpoint de Prometheus.

    instances:
        - url: <EXAMPLE>
          use_prometheus_endpoint: true
    
  3. Reinicia el Agent.

DogStatsD

En lugar de utilizar el endpoint de Prometheus, puedes configurar Consul para enviar el mismo conjunto de métricas adicionales al Agent a través de DogStatsD.

  1. Configura Consul para enviar métricas de DogStatsD añadiendo dogstatsd_addr anidado bajo la clave telemetry de nivel superior en el archivo de configuración principal de Consul:

    {
      ...
      "telemetry": {
        "dogstatsd_addr": "127.0.0.1:8125"
      },
      ...
    }
    
  2. Actualiza el archivo de configuración principal del Datadog Agent datadog.yaml añadiendo las siguientes configuraciones para garantizar que las métricas estén etiquetadas correctamente:

    # dogstatsd_mapper_cache_size: 1000  # default to 1000
    dogstatsd_mapper_profiles:
      - name: consul
        prefix: "consul."
        mappings:
          - match: 'consul\.http\.([a-zA-Z]+)\.(.*)'
            match_type: "regex"
            name: "consul.http.request"
            tags:
              method: "$1"
              path: "$2"
          - match: 'consul\.raft\.replication\.appendEntries\.logs\.([0-9a-f-]+)'
            match_type: "regex"
            name: "consul.raft.replication.appendEntries.logs"
            tags:
              peer_id: "$1"
          - match: 'consul\.raft\.replication\.appendEntries\.rpc\.([0-9a-f-]+)'
            match_type: "regex"
            name: "consul.raft.replication.appendEntries.rpc"
            tags:
              peer_id: "$1"
          - match: 'consul\.raft\.replication\.heartbeat\.([0-9a-f-]+)'
            match_type: "regex"
            name: "consul.raft.replication.heartbeat"
            tags:
              peer_id: "$1"
    
  3. Reinicia el Agent.

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 con:

    logs_enabled: true
    
  2. Edita este bloque de configuración en tu archivo consul.yaml para recopilar logs de Consul:

    logs:
      - type: file
        path: /var/log/consul_server.log
        source: consul
        service: myservice
    

    Cambia los valores de los parámetros path y service y configúralos para tu entorno. Para conocer todas las opciones de configuración disponibles, consulta el consul.d/conf.yaml de ejemplo.

  3. Reinicia el Agent.

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.

Recopilación de métricas
ParámetroValor
<INTEGRATION_NAME>consul
<INIT_CONFIG>en blanco o {}
<INSTANCE_CONFIG>{"url": "https://%%host%%:8500"}
Recopilación de logs

Disponible para la versión 6.0 o posteriores del Agent

La recopilación de logs se encuentra deshabilitada de manera predeterminada en el Datadog Agent. Para habilitarla, consulta Recopilación de logs de Kubernetes.

ParámetroValor
<LOG_CONFIG>{"source": "consul", "service": "<SERVICE_NAME>"}

Validación

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

Nota: Si tus nodos de Consul tienen habilitado el registro de depuración, el sondeo regular del Datadog Agent se muestra en el log de Consul:

2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/status/leader (59.344us) from=127.0.0.1:53768
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/status/peers (62.678us) from=127.0.0.1:53770
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/health/state/any (106.725us) from=127.0.0.1:53772
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/catalog/services (79.657us) from=127.0.0.1:53774
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/health/service/consul (153.917us) from=127.0.0.1:53776
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/coordinate/datacenters (71.778us) from=127.0.0.1:53778
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/coordinate/nodes (84.95us) from=127.0.0.1:53780

Consul Agent a DogStatsD

Usa netstat para verificar que Consul también esté enviando sus métricas:

$ sudo netstat -nup | grep "127.0.0.1:8125.*ESTABLISHED"
udp        0      0 127.0.0.1:53874         127.0.0.1:8125          ESTABLISHED 23176/consul

Datos recopilados

Métricas

Consulta el documento de telemetría del Consul para obtener una descripción de las métricas que el Consul Agent envía a DogStatsD.

Consulta el documento de coordenadas de red de Consul para obtener detalles sobre cómo se calculan las métricas de latencia de red.

Eventos

consul.new_leader:
El Datadog Agent emite un evento cuando el clúster de Consul elige un nuevo líder y lo etiqueta con prev_consul_leader, curr_consul_leader y consul_datacenter.

Checks de servicio

Solucionar problemas

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

Referencias adicionales

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

PREVIEWING: guacbot/translation-pipeline