Supported OS Linux Windows Mac OS

Versión de la integración1.1.0

Información general

Bind 9 es una implementación completa y altamente portable del protocolo del Sistema de Nombres de Dominio (DNS). El servidor de nombres Bind 9 (nombrado), puede actuar como servidor de nombres autoritativo, resolver recursivo, forwarder DNS o las tres cosas simultáneamente.

Esta integración proporciona enriquecimiento y visualización para los tipos de logs Query, Query Errors, Network, Lame Servers, Notify y Security. Ayuda a visualizar información detallada sobre patrones de solicitud DNS, comunicación DNS, configuraciones de servidor adecuadas y ataques DNS, asegurando un entorno de DNS robusto y fiable a través de dashboards predefinidos. Además, esta integración proporciona reglas de detección predefinidas. También recopilará estadísticas de Bind 9 en forma de métricas que pueden utilizarse para visualizaciones según sea necesario.

Configuración

Instalación

Para instalar la integración de Bind 9, ejecuta el siguiente comando de instalación del Agent y los pasos que se indican a continuación. Para obtener más información, consulta la documentación de Gestión de la integración documentation.

Nota: Este paso no es necesario para la versión 7.58.0 o posterior del Agent.

Comando de Linux

sudo -u dd-agent -- datadog-agent integration install datadog-bind9==1.1.0

Recopilación de logs

Monitorización de archivos

  1. Inicia sesión en tu dispositivo de Bind 9.

  2. Abre el archivo named.conf para añadir una cláusula de registro:

    logging {
     channel <example_channel> {
          file "/folder_path/file_name.log" versions <unlimited | <integer>> size <size> suffix <increment | timestamp>;
          print-time (yes | local | iso8601 | iso8601-utc);
          print-category yes;
          print-severity yes;
     };
     category <example-category> { <example_channel>; };
    }
    

    NOTA: El valor recomendado para print-time es iso8601-utc, ya que Datadog espera que todos los logs estén en la zona horaria UTC por defecto. Si la zona horaria de tus logs de Bind 9 no es UTC, asegúrate de seguir los pasos para utilizar una zona horaria diferente. Además, consulta las categorías definidas por Bind 9.

    Ejemplo de canal de generación de logs:

    logging {
     channel default_log {
          file "/var/log/named/query.log" versions 3 size 10m;
          print-time iso8601-utc;
          print-category yes;
          print-severity yes;
     };
       category default { default_log; };
    }
    
  3. Guarda y sal del archivo.

  4. Reinicia el servicio

    service named restart
    

Syslog

  1. Inicia sesión en tu dispositivo de Bind 9.

  2. Abre el archivo named.conf para añadir una cláusula de registro:

    logging {
     channel <example_channel> {
          syslog <syslog_facility>;
          severity (critical | error | warning | notice | info | debug [level ] | dynamic);
          print-time (yes | local | iso8601 | iso8601-utc);
          print-category yes;
          print-severity yes;
     };
     category <example-category> { <example_channel>; };
    }
    

    NOTA: El valor recomendado para print-time es iso8601-utc, ya que Datadog espera que todos los logs estén en la zona horaria UTC por defecto. Si la zona horaria de tus logs de Bind 9 no es UTC, asegúrate de seguir los pasos para utilizar una zona horaria diferente.. Además, consulta las categorías definidas por Bind 9.

    Ejemplo de canal de generación de logs:

    logging {
     channel default_log {
          syslog local3;
          print-time iso8601-utc;
          print-category yes;
          print-severity yes;
     };
       category default { default_log; };
    }
    
  3. Guarda y sal del archivo.

  4. Edita la configuración de syslog/rsyslog para loguear en Datadog utilizando la instalación que seleccionaste en Bind 9:

    <syslog_facility>.* @@<DATADOG_AGENT_IP_ADDRESS>:<PORT>
    
  5. Reinicia los siguientes servicios.

    service syslog/rsyslog restart
    service named restart
    

Nota: Asegúrate de que print-category y print-severity están configurados como yes en la configuración de los canales para la aplicación Bind 9.

Configuración

Recopilación de métricas

  1. Edita el archivo bind9.d/conf.yaml, en la carpeta conf.d/ en la raíz de tu directorio de configuración del Agent para comenzar a recopilar tus métricas de Bind 9. Consulta el ejemplo de bind9.d/conf.yaml para conocer todas las opciones de configuración disponibles.

    init_config:
    
    instances:
      - url: "<BIND_9_STATS_URL>"
    
  2. Reinicia el Agent

Recopilación de logs

  1. La recopilación de logs está desactivada por defecto en el Datadog Agent. Actívala en el archivo datadog.yaml:

    logs_enabled: true
    

Monitorización de archivos

  1. Añade este bloque de configuración a tu archivo bind9.d/conf.yaml para empezar a recopilar tus logs de Bind 9:

    Consulta el ejemplo de bind9.d/conf.yaml para conocer las opciones de configuración disponibles.

    logs:
      - type: file
        path: /var/log/named/*.log
        service: bind9
        source: bind9
    

    Nota: Cambia la variable path en conf.yaml a la misma ruta configurada en el parámetro file en canales para la aplicación de Bind 9.

  2. Reinicia el Agent.

Syslog

  1. Añade este bloque de configuración a tu archivo bind9.d/conf.yaml para empezar a recopilar tus logs de Bind 9:

    Consulta el ejemplo de bind9.d/conf.yaml para conocer las opciones de configuración disponibles.

    logs:
      - type: tcp
        port: <PORT>
        service: bind9
        source: bind9
    

    Nota: El valor de port debe ser el mismo que el mencionado en syslog.conf/rsyslog.conf.

  2. Reinicia el Agent.

Especifica una zona horaria distinta de UTC en el pipeline de logs de Bind 9 Datadog

Datadog espera que todos los logs estén en la zona horaria UTC por defecto. Si la zona horaria de tus logs de Bind 9 no es UTC, especifica la zona horaria correcta en el pipeline de Bind 9 Datadog.

Para cambiar la zona horaria en el pipeline de Bind 9:

  1. Ve a la página Pipelines en la aplicación Datadog.

  2. Introduce “Bind 9” en la casilla Filter Pipelines (Filtrar pipelines).

  3. Pasa el ratón por encima del pipeline de Bind 9 y haz clic en el botón clone (clonar). Esto creará un clon editable del pipeline de Bind 9.

  4. Edita el Grok Parser siguiendo los siguientes pasos:

    • En el pipeline clonado, busca un procesador con el nombre “Grok Parser: Parsing Bind 9 common log format” y haz clic en el botón Edit pasando el ratón por encima del pipeline.
    • En Define parsing rules (Definir reglas de parseo),
      • Cambia la cadena UTC por el identificador TZ de la zona horaria de tu servidor Bind 9. Por ejemplo, si tu zona horaria es IST, cambia el valor aAsia/Calcutta.
    • Pulsa el botón update (actualizar).

Validación

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

Compatibilidad

El check es compatible con las principales plataformas.

Datos recopilados

Logs

La integración de Bind 9 recopila los siguientes tipos de log.

Tipos de evento
Query, Query Errors, Lame Servers, Notify, Security

Métricas

bind9.nsstat_AuthQryRej
(gauge)
Número de consultas autoritativas (no recursivas) rechazadas.
Se muestra como consulta
bind9.nsstat_DNS64
(gauge)
bind9.nsstat_ExpireOpt
(gauge)
bind9.nsstat_NSIDOpt
(gauge)
bind9.nsstat_OtherOpt
(gauge)
bind9.nsstat_QryAuthAns
(gauge)
Número de consultas que han dado lugar a una respuesta autoritativa.
Se muestra como consulta
bind9.nsstat_QryDropped
(gauge)
Número de consultas recursivas para las que el servidor ha detectado un número excesivo de consultas recursivas existentes para el mismo nombre, tipo y clase y que posteriormente se descartaron.
Se muestra como consulta
bind9.nsstat_QryDuplicate
(gauge)
Número de consultas para las que el servidor ha intentado recurrir pero detectó una consulta existente con la misma dirección IP, puerto, ID de consulta, nombre, tipo y clase que ya se estaba procesando.
Se muestra como consulta
bind9.nsstat_QryFailure
(gauge)
Número de consultas que han fallado por otro motivo.
Se muestra como consulta
bind9.nsstat_QryFORMERR
(gauge)
Número de consultas que han dado como resultado FORMERR.
Se muestra como consulta
bind9.nsstat_QryNoauthAns
(gauge)
Número de consultas que han dado lugar a una respuesta no autoritativa.
Se muestra como consulta
bind9.nsstat_QryNXDOMAIN
(gauge)
Número de consultas que han dado como resultado NXDOMAIN.
Se muestra como consulta
bind9.nsstat_QryNXRedir
(gauge)
Número de consultas que han dado como resultado NXDOMAIN y han sido redirigidas.
Se muestra como consulta
bind9.nsstat_QryNXRedirRLookup
(gauge)
Número de consultas que han dado como resultado NXDOMAIN, han sido redirigidas y han dado como resultado una búsqueda remota exitosa.
Se muestra como consulta
bind9.nsstat_QryNxrrset
(gauge)
Número de consultas que han dado lugar a respuestas NOERROR sin datos
Se muestra como consulta
bind9.nsstat_QryRecursion
(gauge)
Número de consultas que han llevado al servidor a realizar una recursión para encontrar la respuesta final.
Se muestra como consulta
bind9.nsstat_QryReferral
(gauge)
Número de consultas que han dado lugar a una respuesta de referencia.
Se muestra como consulta
bind9.nsstat_QrySERVFAIL
(gauge)
Número de consultas que han dado como resultado SERVFAIL.
Se muestra como consulta
bind9.nsstat_QrySuccess
(gauge)
Número de consultas que han dado lugar a una respuesta satisfactoria.
Se muestra como consulta
bind9.nsstat_QryTCP
(gauge)
bind9.nsstat_QryUDP
(gauge)
bind9.nsstat_RateDropped
(gauge)
Número de respuestas descartadas por límites de frecuencia.
Se muestra como respuesta
bind9.nsstat_RateSlipped
(gauge)
Número de respuestas truncadas por límites de frecuencia.
Se muestra como respuesta
bind9.nsstat_RecQryRej
(gauge)
Número de consultas recursivas rechazadas.
Se muestra como consulta
bind9.nsstat_RecursClients
(gauge)
bind9.nsstat_ReqBadEDNSVer
(gauge)
Número de solicitudes con versión EDNS no compatible recibidas.
Se muestra como solicitud
bind9.nsstat_ReqBadSIG
(gauge)
Número de solicitudes con firma no válida (TSIG o SIG(0)).
Se muestra como solicitud
bind9.nsstat_ReqEdns0
(gauge)
Número de solicitudes con EDNS(0) recibidas.
Se muestra como solicitud
bind9.nsstat_ReqSIG0
(gauge)
Número de solicitudes con SIG(0) recibidas.
Se muestra como solicitud
bind9.nsstat_ReqTCP
(gauge)
Número de solicitudes TCP recibidas.
Se muestra como solicitud
bind9.nsstat_ReqTSIG
(gauge)
Número de solicitudes con TSIG recibidas.
Se muestra como solicitud
bind9.nsstat_Requestv4
(gauge)
Número de solicitudes IPv4 recibidas (también cuenta las solicitudes que no son de consulta).
Se muestra como solicitud
bind9.nsstat_Requestv6
(gauge)
Número de solicitudes IPv6 recibidas (también cuenta las solicitudes que no son de consulta).
Se muestra como solicitud
bind9.nsstat_RespEDNS0
(gauge)
Número de respuestas con EDNS(0) enviadas.
Se muestra como respuesta
bind9.nsstat_Response
(gauge)
Número de respuestas enviadas.
Se muestra como respuesta
bind9.nsstat_RespSIG0
(gauge)
Número de respuestas con SIG(0) enviadas.
Se muestra como respuesta
bind9.nsstat_RespTSIG
(gauge)
Número de respuestas con TSIG enviadas.
Se muestra como respuesta
bind9.nsstat_RPZRewrites
(gauge)
Número de reescrituras de zonas de la política de respuesta.
bind9.nsstat_SitBadSize
(gauge)
bind9.nsstat_SitBadTime
(gauge)
bind9.nsstat_SitMatch
(gauge)
bind9.nsstat_SitNew
(gauge)
bind9.nsstat_SitNoMatch
(gauge)
bind9.nsstat_SitOpt
(gauge)
bind9.nsstat_TruncatedResp
(gauge)
Número de respuestas truncadas enviadas.
Se muestra como respuesta
bind9.nsstat_UpdateBadPrereq
(gauge)
Actualizaciones dinámicas rechazadas por fallos en los requisitos previos.
bind9.nsstat_UpdateDone
(gauge)
Actualizaciones dinámicas completadas.
bind9.nsstat_UpdateFail
(gauge)
Actualizaciones dinámicas fallidas.
bind9.nsstat_UpdateFwdFail
(gauge)
Reenvío de actualización dinámica fallido.
bind9.nsstat_UpdateRej
(gauge)
Número de solicitudes de actualización dinámica rechazadas.
Se muestra como solicitud
bind9.nsstat_UpdateReqFwd
(gauge)
Número de solicitudes de actualización enviadas.
Se muestra como solicitud
bind9.nsstat_UpdateRespFwd
(gauge)
Número de respuestas de actualización reenviadas.
Se muestra como respuesta
bind9.nsstat_XfrRej
(gauge)
Número de solicitudes de transferencia de zona rechazadas.
Se muestra como solicitud
bind9.nsstat_XfrReqDone
(gauge)
Número de transferencias de zona solicitadas completadas.
bind9.opcode_IQUERY
(gauge)
Número de consultas entrantes.
Se muestra como consulta
bind9.opcode_NOTIFY
(gauge)
bind9.opcode_QUERY
(gauge)
Número de consultas salientes.
Se muestra como consulta
bind9.opcode_RESERVED10
(gauge)
bind9.opcode_RESERVED11
(gauge)
bind9.opcode_RESERVED12
(gauge)
bind9.opcode_RESERVED13
(gauge)
bind9.opcode_RESERVED14
(gauge)
bind9.opcode_RESERVED15
(gauge)
bind9.opcode_RESERVED3
(gauge)
bind9.opcode_RESERVED6
(gauge)
bind9.opcode_RESERVED7
(gauge)
bind9.opcode_RESERVED8
(gauge)
bind9.opcode_RESERVED9
(gauge)
bind9.opcode_STATUS
(gauge)
bind9.opcode_UPDATE
(gauge)
bind9.sockstat_FdwatchBindFail
(gauge)
Número de fallos de sockets FDWatch de enlace.
bind9.sockstat_FDWatchClose
(gauge)
Número de sockets FDWatch cerrados.
bind9.sockstat_FDwatchConn
(gauge)
Número de conexiones FDWatch establecidas con éxito.
Se muestra como conexión
bind9.sockstat_FDwatchConnFail
(gauge)
Número de fallos de los sockets de conexión FDWatch.
bind9.sockstat_FDwatchRecvErr
(gauge)
Número de errores en las operaciones de recepción de sockets FDWatch.
bind9.sockstat_FDwatchSendErr
(gauge)
Número de errores en las operaciones de envío de sockets FDWatch.
bind9.sockstat_RawActive
(gauge)
Número de sockets activos sin procesar.
Se muestra como conexión
bind9.sockstat_RawClose
(gauge)
Número de sockets cerrados.
Se muestra como conexión
bind9.sockstat_RawOpen
(gauge)
Sockets sin procesar abiertos con éxito.
Se muestra como conexión
bind9.sockstat_RawOpenFail
(gauge)
Número de sockets sin procesar con fallos durante la apertura.
Se muestra como conexión
bind9.sockstat_RawRecvErr
(gauge)
Número de errores en operaciones de recepción de sockets sin procesar.
bind9.sockstat_TCP4Accept
(gauge)
Número de conexiones TCP4 entrantes aceptadas con éxito.
Se muestra como conexión
bind9.sockstat_TCP4AcceptFail
(gauge)
Número de fallos de aceptación de solicitudes de conexiones TCP4 entrantes.
bind9.sockstat_TCP4Active
(gauge)
Número de sockets TCP4 activos.
Se muestra como conexión
bind9.sockstat_TCP4BindFail
(gauge)
Número de fallos de sockets de enlace TCP4.
bind9.sockstat_TCP4Close
(gauge)
Número de sockets TCP4 cerrados.
Se muestra como conexión
bind9.sockstat_TCP4Conn
(gauge)
Número de conexiones TCP4 establecidas con éxito.
Se muestra como conexión
bind9.sockstat_TCP4ConnFail
(gauge)
Número de fallos de sockets de conexión TCP4.
bind9.sockstat_TCP4Open
(gauge)
Número de sockets TCP4 abiertos con éxito.
Se muestra como conexión
bind9.sockstat_TCP4OpenFail
(gauge)
Número de sockets TCP4 con fallos durante la apertura.
Se muestra como conexión
bind9.sockstat_TCP4RecvErr
(gauge)
Número de errores en operaciones de recepción de sockets TCP4.
bind9.sockstat_TCP4SendErr
(gauge)
Número de errores en operaciones de envío de sockets TCP4.
bind9.sockstat_TCP6Accept
(gauge)
Número de conexiones TCP4 entrantes aceptadas con éxito.
Se muestra como conexión
bind9.sockstat_TCP6AcceptFail
(gauge)
Número de fallos de aceptación de solicitudes de conexión TCP6 entrantes.
bind9.sockstat_TCP6Active
(gauge)
Número de sockets TCP6 activos.
Se muestra como conexión
bind9.sockstat_TCP6BindFail
(gauge)
Número de fallos de sockets de enlace TCP6.
bind9.sockstat_TCP6Close
(gauge)
Número de sockets TCP6 cerrados.
Se muestra como conexión
bind9.sockstat_TCP6Conn
(gauge)
Número de conexiones TCP6 establecidas con éxito.
Se muestra como conexión
bind9.sockstat_TCP6ConnFail
(gauge)
Número de fallos de conexión de sockets TCP6.
bind9.sockstat_TCP6Open
(gauge)
Número de sockets TCP6 abiertos con éxito.
Se muestra como conexión
bind9.sockstat_TCP6OpenFail
(gauge)
Número de sockets TCP6 con fallos durante la apertura.
Se muestra como conexión
bind9.sockstat_TCP6RecvErr
(gauge)
Número de errores en operaciones de recepción de sockets TCP6.
bind9.sockstat_TCP6SendErr
(gauge)
Número de errores en operaciones de envío de sockets TCP6.
bind9.sockstat_UDP4Active
(gauge)
Número de sockets UDP4 activos.
Se muestra como conexión
bind9.sockstat_UDP4BindFail
(gauge)
Número de fallos de sockets de enlace UDP4.
bind9.sockstat_UDP4Close
(gauge)
Número de sockets UDP4 cerrados.
Se muestra como conexión
bind9.sockstat_UDP4Conn
(gauge)
Número de conexiones UDP4 establecidas con éxito.
Se muestra como conexión
bind9.sockstat_UDP4ConnFail
(gauge)
Número de fallos de sockets de conexión UDP4.
bind9.sockstat_UDP4Open
(gauge)
Número de sockets UDP4 abiertos con éxito.
Se muestra como conexión
bind9.sockstat_UDP4OpenFail
(gauge)
Número de sockets UDP4 con fallos durante la apertura.
Se muestra como conexión
bind9.sockstat_UDP4RecvErr
(gauge)
Número de errores en operaciones de recepción de sockets UDP4.
bind9.sockstat_UDP4SendErr
(gauge)
Número de errores en operaciones de envío de sockets UDP4.
bind9.sockstat_UDP6Active
(gauge)
Número de sockets UDP6 activos.
Se muestra como conexión
bind9.sockstat_UDP6BindFail
(gauge)
Número de fallos de sockets de enlace UDP6.
bind9.sockstat_UDP6Close
(gauge)
Número de sockets UDP6 cerrados.
Se muestra como conexión
bind9.sockstat_UDP6Conn
(gauge)
Número de conexiones UDP6 establecidas con éxito.
Se muestra como conexión
bind9.sockstat_UDP6ConnFail
(gauge)
Número de fallos de sockets de enlace UDP6.
bind9.sockstat_UDP6Open
(gauge)
Número de sockets UDP6 abiertos con éxito.
Se muestra como conexión
bind9.sockstat_UDP6OpenFail
(gauge)
Número de sockets UDP6 con fallos durante la apertura.
Se muestra como conexión
bind9.sockstat_UDP6RecvErr
(gauge)
Número de errores en operaciones de recepción de sockets UDP6.
bind9.sockstat_UDP6SendErr
(gauge)
Número de errores en operaciones de envío de sockets UDP6.
bind9.sockstat_UnixAccept
(gauge)
Número de conexiones Unix entrantes aceptadas con éxito.
bind9.sockstat_UnixAcceptFail
(gauge)
Número de fallos de aceptación de solicitudes de conexión Unix entrantes.
bind9.sockstat_UnixActive
(gauge)
Número de sockets Unix activos.
Se muestra como conexión
bind9.sockstat_UnixBindFail
(gauge)
Número de fallos de sockets de enlace Unix.
bind9.sockstat_UnixClose
(gauge)
Número de sockets Unix cerrados.
bind9.sockstat_UnixConn
(gauge)
Número de conexiones Unix establecidas con éxito.
bind9.sockstat_UnixConnFail
(gauge)
Número de fallos de sockets de enlace Unix.
bind9.sockstat_UnixOpen
(gauge)
Número de sockets Unix abiertos con éxito.
bind9.sockstat_UnixOpenFail
(gauge)
Número de sockets Unix con fallos durante la apertura.
bind9.sockstat_UnixRecvErr
(gauge)
Número de errores en operaciones de recepción de sockets Unix.
bind9.sockstat_UnixSendErr
(gauge)
Número de errores en operaciones de envío de sockets Unix.
bind9.zonestat_AXFRReqv4
(gauge)
IPv4 AXFR solicitado.
bind9.zonestat_AXFRReqv6
(gauge)
IPv6 AXFR solicitado.
bind9.zonestat_IXFRReqv4
(gauge)
IPv4 IXFR solicitado.
bind9.zonestat_IXFRReqv6
(gauge)
IPv6 IXFR solicitado.
bind9.zonestat_NotifyInv4
(gauge)
Notificaciones IPv4 recibidas.
bind9.zonestat_NotifyInv6
(gauge)
Notificaciones IPv6 recibidas.
bind9.zonestat_NotifyOutv4
(gauge)
Notificaciones IPv4 enviadas.
bind9.zonestat_NotifyOutv6
(gauge)
Notificaciones IPv6 enviadas.
bind9.zonestat_NotifyRej
(gauge)
Notificaciones entrantes rechazadas.
bind9.zonestat_SOAOutv4
(gauge)
Número de consultas SOA IPv4 enviadas.
Se muestra como consulta
bind9.zonestat_SOAOutv6
(gauge)
Número de consultas SOA IPv4 enviadas.
Se muestra como consulta
bind9.zonestat_XfrFail
(gauge)
Número de solicitudes de transferencia de zona fallidas.
Se muestra como solicitud
bind9.zonestat_XfrSuccess
(gauge)
Número de solicitudes de transferencia de zona aceptadas.
Se muestra como solicitud

Eventos

El check de Bind 9 no incluye eventos.

Checks de servicio

bind9.can_connect

Devuelve OK Si la URL del canal de estadísticas de DNS está presente en la instancia. Devuelve CRITICAL si se producen errores de URL.

Estados: ok, crítico

Solucionar problemas

Si ves un error de Permission denied (Permiso denegado) durante la monitorización de los archivos de log, debes dar al usuario el permiso de lectura dd-agent sobre ellos.

sudo chown -R dd-agent:dd-agent /var/log/named/

Si necesitas más ayuda, ponte en contacto con el servicio de asistencia de Datadog.