La historia de Nagios: el santo que se convirtió en el pager

Mascote do LinuxPro pressionando alerta vermelho no painel Nagios

En 14 de marzo de 1999 Ethan Galstad lanzó NetSaint 0.0.1. Pensaba que unas doce personas se apuntarían. El bicho hacía ping al host, ejecutaba un plugin, enviaba correo y pager cuando el servicio caía — y de nuevo cuando volvía. En 2002 el nombre cambió a Nagios: “Nagios Ain’t Gonna Insist On Sainthood”, hagios = santo, porque NetSaint chocó con la marca. Veintisiete años después Nagios Core 4.5.14 (5 de agosto de 2026) sigue siendo GPLv2, sigue siendo C, sigue siendo la forma en que toda una generación de administradores Linux aprendió a vigilar máquinas. La N manuscrita de la portada es el mismo dibujo torcido de siempre.

1996: un ping en DOS y un pager

Galstad, en EE. UU., escribió un pequeño programa MS-DOS para hacer ping a un servidor Novell NetWare y activar un buscapersonas numérico. La comprobación y el aviso ya venían de una herramienta de terceros — la semilla del modelo de plugin. En 1998 pensó en monitorización alojada y lo reescribió para Linux. En marzo de 1999 publicó el código. Los plugins salieron del tarball poco después y se convirtieron en un proyecto aparte: hoy todavía es nagios-plugins / Monitoring Plugins. Sin ese recorte — un binario tonto que solo programa tareas, y un ejército de check_* — Nagios no se habría convertido en estándar.

2002: el santo que no insistió

Marca parecida, abogado, acuerdo. Galstad cambió el nombre aun así. Nagios se pronuncia “ná-gui-ous”. La arquitectura quedó: daemon en C, archivo de texto como fuente de verdad (nagios.cfg, hosts.cfg, services.cfg), CGI en Perl/C en Apache, estado OK / WARNING / CRITICAL / UNKNOWN, hard/soft state, flap detection, notificación por contacto. NRPE para comprobar Linux desde dentro. NSCA para el check pasivo (es el host el que empuja). Quien haya configurado 400 host a mano recuerda el detalle: Nagios no dibuja gráficos. Nagios grita.

En junio de 2005 fue Project of the Month en SourceForge. En 2006 eWeek lo incluyó en la lista de herramientas “must have” para la empresa. Todavía no había empresa. Estaban Ethan y la lista.

2.0, 3.0, 4.0: NEB, escala, Core

Nagios 2.0 (febrero de 2006): interfaz nueva y el Event Broker (NEB): API para que los módulos vean la estructura interna. De ahí salieron NDOUtils (estado en MySQL), de ahí lo que XI y Centreon aprovecharon. Nagios 3.0 (marzo de 2008): monitorización adaptativa y aliento para instalaciones grandes. Nagios 4 (2014) reescribió el scheduler: menos CPU para la misma cantidad de checks.

Hacia 2007 Galstad fundó Nagios Enterprises. El Core quedó bajo GPLv2. El producto de pago — Nagios XI, después Log Server, Network Analyzer, Fusion — apila interfaz, asistente, informes y soporte encima del mismo motor. Open core antes de que la moda tuviera nombre. En 2024 la empresa cumplió 25 años. XI, Log Server, Analyzer y Fusion ya van por la línea 2026R1. La World Conference 2026 se celebra en St. Paul, Minnesota, del 14 al 17 de septiembre, en la sede.

La escisión: Icinga, Naemon, Checkmk

En 2009 parte de la comunidad — cansada del ritmo y de la línea entre lo que era libre y lo que iba a XI — forkó el proyecto. Nació Icinga. Después llegó Naemon (2014), fork del Core 4. Check_MK de Mathias Kettner (hoy Checkmk) empezó como un conjunto de plugins y se convirtió en producto. Centreon, Shinken, Opsview. La API de plugins era tan sencilla que el ecosistema entero cabe en un check_disk -w 20% -c 10%. El precio: configuración en archivos de texto que no escala sin herramientas. Ahí es donde entra NagiosQL.

Lo que enseñó Nagios

  • Host y service son objetos. La dependencia (parent) evita la tormenta de alertas cuando cae el switch.
  • Check es un proceso externo. Cualquier lenguaje. Timeout. Código de salida 0/1/2/3.
  • La notificación tiene ventana, escalado, tiempo de inactividad y acuse de recibo.
  • El mapa de estado CGI — los cuadraditos verdes y rojos — es la estética de una era. Grafana no existía.

O Zabbix tomó el otro camino: ítem en la base de datos, agente que recolecta, disparador que evalúa, gráfico nativo. Prometheus, en este blog, es la tercera vía: pull, métrica, Node Exporter.

2026: Core 4.5.14, XI 2026R1

El Core 4.5.14 salió el 5 de agosto de 2026. GitHub NagiosEnterprises/nagioscore. NRPE 4.x sigue siendo la forma clásica de hablar con Linux. La distro empaqueta 4.4/4.5. XI 2026R1.4 añadió un asistente para Nutanix y para switch. No es el motor de la nube — Zabbix y Prometheus se comieron esa parte — pero en un NOC de empresa que ya tiene mil .cfg, no se va.

Nagios en la práctica, en cinco minutos

Historia aparte, el motor aún se instala y ejecuta con dos comandos. En Debian o Ubuntu:

sudo apt update
sudo apt install nagios4 monitoring-plugins nagios-nrpe-plugin

La configuración es lo que toda la serie enseñó a odiar y a amar: el archivo de texto es la verdad. Todo vive en /etc/nagios4/, y cada cosa monitorizada es un objeto. Un host nuevo cabe en ocho líneas:

define host {
    use             generic-host
    host_name       servidor-web
    address         192.168.0.20
    max_check_attempts  3
}

define service {
    use                 generic-service
    host_name           servidor-web
    service_description Espaco em disco
    check_command       check_disk!20%!10%!/
}

Ese check_disk!20%!10%!/ es el alma del proyecto: Nagios no sabe lo que es un disco. Simplemente llama a un programa externo, pasa argumentos separados por ! y observa el código de salida — 0 es OK, 1 es WARNING, 2 es CRITICAL, 3 es UNKNOWN. Cualquier cosa que respete ese contrato se convierte en un check, en cualquier lenguaje:

# rodando um plugin na mão, como o daemon faria
/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /
echo $?      # 0 = OK, 1 = WARNING, 2 = CRITICAL, 3 = UNKNOWN

# um "plugin" seu funciona igual: escreva o arquivo abaixo em
# /usr/lib/nagios/plugins/check_meu e marque como executavel
#
#   #!/bin/bash
#   if pgrep -x meu-daemon >/dev/null; then
#       echo "OK - rodando"; exit 0
#   fi
#   echo "CRITICAL - parado"; exit 2

sudo chmod +x /usr/lib/nagios/plugins/check_meu
/usr/lib/nagios/plugins/check_meu; echo $?

Antes de recargar, valida — Nagios se niega a arrancar con una configuración rota, y el verificador señala el archivo y la línea:

sudo nagios4 -v /etc/nagios4/nagios.cfg
sudo systemctl reload nagios4

Para comprobar desde un servidor remoto — carga, memoria, procesos, cosas que ping no ve — se instala NRPE en el destino y se llama desde fuera con check_nrpe. Es el modelo activo. Cuando el destino está detrás de NAT o firewall y es él quien tiene que hablar, se invierte con NSCA: el host envía el resultado al servidor. Dos mecanismos, la misma idea de código de salida.

Línea de tiempo

  • 1996 — Ethan Galstad escribe un programa MS-DOS que hace ping a servidores NetWare y envía mensajes a un busca.
  • 1998 — la idea se convierte en monitorización alojada y se reescribe para Linux.
  • 14/03/1999 — lanzamiento de NetSaint 0.0.1, con el código abierto.
  • 2002 — conflicto de marca obliga a cambiar el nombre: nace Nagios, “Nagios Ain’t Gonna Insist On Sainthood”.
  • jun/2005 — Project of the Month en SourceForge.
  • feb/2006 — Nagios 2.0 incorpora el Event Broker (NEB), la API que abriría camino a NDOUtils, XI y Centreon.
  • 2007 — Galstad funda Nagios Enterprises; el Core sigue siendo GPLv2 y XI nace como producto de pago.
  • mar/2008 — Nagios 3.0: monitorización adaptativa y aliento para instalaciones grandes.
  • 2009 — parte de la comunidad hace un fork del proyecto y crea el Icinga.
  • 2014 — Nagios 4 reescribe el scheduler; en el mismo período surge Naemon, fork del Core 4.
  • 2024 — Nagios Enterprises cumple 25 años.
  • 05/08/2026 — sale Nagios Core 4.5.14, todavía en C y todavía GPLv2.

Cierre

Un ping en DOS, un santo que perdió la marca y un demonio que solo programa plugins. La siguiente generación bifurcó. La empresa hizo XI. El Core, GPLv2, sigue respondiendo nagios -v /etc/nagios/nagios.cfg. 4.5.14, St. Paul, buscapersonas al principio, webhook al final. La N subrayada sigue torcida a propósito.

La GUI que escribe el cfg: NagiosQL. El rival letón: Zabbix.