Monitoreo

Integración con Nagios / Icinga

Descripción general

El plugin check_seconddns.sh consulta la API de salud de SecondDNS y devuelve códigos de salida estándar de Nagios (0 = OK, 1 = WARNING, 2 = CRITICAL, 3 = UNKNOWN) con perfdata.

Requisitos previos

  • Nagios, Icinga o sistema de monitoreo compatible
  • curl instalado en el servidor de monitoreo
  • Una clave API de SecondDNS (Dashboard → API Key)

1. Descargar el plugin

curl -o /usr/lib/nagios/plugins/check_seconddns.sh \
  https://raw.githubusercontent.com/seconddns/dns_integrations/main/nagios_plugins/check_seconddns.sh

chmod +x /usr/lib/nagios/plugins/check_seconddns.sh

Fuente: github.com/seconddns/dns_integrations/nagios_plugins

2. Definir el comando

Agregar a la configuración de comandos de Nagios (p.ej. /etc/nagios/objects/commands.cfg):

define command {
    command_name    check_seconddns
    command_line    /usr/lib/nagios/plugins/check_seconddns.sh -k $ARG1$ $ARG2$
}

3. Definir el servicio

Verificar todas las zonas a la vez:

define service {
    host_name               your-dns-host
    service_description     SecondDNS Zone Health
    check_command           check_seconddns!your-api-key-here!
    check_interval          15
    retry_interval          5
    max_check_attempts      3
    notification_interval   60
}

O verificar una zona individual:

define service {
    host_name               your-dns-host
    service_description     SecondDNS: example.com
    check_command           check_seconddns!your-api-key-here!-z example.com
    check_interval          15
    ...
}

4. Ejemplos de salida

# All zones healthy:
OK - all 12 zones synced

# Problems detected:
WARNING - example.com stale 135min master=2024041503 ours=2024041501 | stale_min=135;120;360
CRITICAL - broken.net master_unreachable since 2026-04-16T13:00:00Z | stale_min=390;120;360

Cómo funciona

  1. El plugin llama a GET /api/health/zones?format=nagios (o /api/health/zones/ZONE?format=nagios)
  2. La API devuelve texto plano — una línea por zona con problemas, u "OK" si todas están sincronizadas
  3. El plugin analiza la primera palabra (OK/WARNING/CRITICAL) y establece el código de salida
  4. Nagios recoge el código de salida y perfdata para alertas y gráficos