Comprobaciones
Una comprobación vigila una cosa concreta de un equipo: que responde al ping, que un puerto está abierto, que una web contesta bien, que un servidor DNS resuelve, que un plugin de Nagios da el visto bueno, que un comando por SSH devuelve lo esperado o que las interfaces de un router siguen arriba. Cada equipo tiene las suyas y se ven al pulsar su nombre en la lista de equipos.
La comprobación de presencia
Todo equipo nuevo nace con una comprobación ping marcada como presencia del equipo. Es la que dice si el equipo está encendido:
- si responde, el equipo está encendido;
- si deja de responder varias veces seguidas, está caído (24x7) o apagado (intermitente, o con horario fuera de su franja).
No se puede borrar, pero sí cambiar su intervalo, el número de pings o desactivarla. Un equipo sin comprobación de presencia activa no sabe si está encendido: sus demás comprobaciones avisan siempre.
Tipos
| Tipo | Qué comprueba | Datos que pide |
|---|---|---|
| Ping | Que el equipo responde, la latencia y la pérdida de paquetes | Número de pings (3) y, si quieres, una latencia a partir de la cual avisar |
| TCP | Que un puerto acepta conexiones y cuánto tarda | El puerto: 22 para SSH, 445 para SMB, 1883 para MQTT, 8080 para otras webs… |
| HTTP(S) | Que una web o API responde con un código válido, que contiene un texto y, en HTTPS, cuánto le queda al certificado | La URL (por defecto http://<dirección>/), los códigos válidos (200-399) y el texto esperado |
| DNS | Que el equipo, como servidor DNS, resuelve un nombre | El nombre que se consulta, el tipo de registro (A, AAAA, MX…) y, si quieres, la respuesta esperada |
| Certificado TLS | Cuántos días le quedan al certificado de cualquier puerto con TLS (web, correo, LDAP…) | El puerto (443) y, si quieres, los días de aviso (21) y crítico (7) |
| Dominio | Cuántos días faltan para que caduque el registro de un dominio (RDAP) | El dominio y, si quieres, los días de aviso (30) y crítico (7) |
| Script | Que un plugin con la convención de Nagios devuelve «bien» | El programa y sus argumentos (ver más abajo) |
| SSH | Que un comando remoto devuelve lo esperado, sin instalar el agente | Una credencial SSH, el usuario y el comando (ver más abajo) |
| SNMP | El estado y el tráfico de las interfaces de un router, switch o NAS | Una credencial SNMP (ver más abajo) |
max_connect_errors) el servidor de bases de datos bloquea esa IP, también para Atalaya si comparten equipo. Vigila la base de datos con el ping del equipo hasta que llegue una sonda específica.En la URL de una comprobación HTTP, {address} se sustituye por la dirección del equipo: https://{address}:8006/ vigila la web de Proxmox sin repetir la IP.
Para equipos con certificado autofirmado, desmarca Comprobar el certificado TLS: la web se comprueba igual y la caducidad del certificado también se vigila (aviso a 21 días, crítico a 7).
Caducidad de certificados y dominios
Dos comprobaciones sirven para que no te pille por sorpresa una caducidad. Su valor es el número de días que quedan.
- Certificado TLS se conecta al puerto, hace el saludo TLS y mira la fecha de caducidad del certificado, sin pedir nada más. Vale para cualquier puerto con TLS desde el primer byte: 443 (webs), 465 (SMTPS), 993 (IMAPS), 995 (POP3S), 636 (LDAPS), 8006 (Proxmox)… Si el equipo sirve varios certificados según el nombre, escribe el nombre del servidor (SNI). Se mira cada 6 horas; avisa con menos de 21 días y es crítico con menos de 7. Las comprobaciones HTTP(S) ya vigilan la caducidad de la web que comprueban; esta sirve para el resto de puertos o para vigilarla sin pedir la página. No sirve con STARTTLS (587, 143).
- Dominio consulta el registro del dominio por RDAP (a través de
rdap.org, que redirige al registro correspondiente) y lee la fecha de caducidad. Se mira una vez al día; avisa con menos de 30 días y es crítico con menos de 7. Algunos registros (varios dominios de país) no publican la fecha de caducidad: la comprobación queda entonces «sin datos» con ese motivo. Necesita salida a internet desde el servidor.
La dirección del equipo al que añadas una comprobación de dominio no se usa; un buen sitio es un equipo «Dominios» creado para eso (sin presencia activa, para que no dé alarmas de apagado). Estas dos comprobaciones las ejecuta siempre el servidor, aunque el equipo tenga un satélite asignado.
Script (plugins de Nagios)
Ejecuta un programa de /usr/lib/nagios/plugins (el paquete monitoring-plugins de Debian trae casi un centenar: check_disk, check_load, check_procs, check_smtp…), de /usr/lib/atalaya/plugins, de /usr/local/lib/atalaya/plugins o de /etc/atalaya/plugins, para tus propios scripts. Se usa la convención de Nagios:
| Código de salida | Estado |
|---|---|
| 0 | Bien |
| 1 | Aviso |
| 2 | Crítico |
| 3 u otro | Sin datos (el plugin no pudo comprobarlo) |
La primera línea de la salida es el resultado que ves en Atalaya; lo que va detrás de | son datos de rendimiento, y el primero se guarda como valor de la comprobación. Los argumentos se escriben uno por línea, sin comillas, y {address} se cambia por la dirección del equipo. No se usa ninguna shell, y el programa se ejecuta con el usuario atalaya, sin privilegios; si pasa del tiempo máximo se corta.
SSH sin agente
Ejecuta un comando en el equipo por SSH con la clave de una credencial. Sirve para vigilar equipos donde no quieres o no puedes instalar el agente: systemctl is-active nginx, df --output=pcent / | tail -1 | tr -d ' %', cut -d' ' -f1 /proc/loadavg…
- El resultado se interpreta como en Nagios (0 bien, 1 aviso, 2 crítico) o, si lo eliges, «cualquier código distinto de 0 es crítico».
- Texto que debe aparecer exige que la salida lo contenga, por ejemplo
active. - Umbral compara el primer número de la salida con un valor de aviso y otro crítico (por ejemplo, 90 y 95 para el uso de disco). Ese número es el valor de la comprobación.
- La primera vez que se conecta, Atalaya anota la huella de la clave del equipo; si luego cambia, la comprobación falla para avisarte de que puede ser otro equipo. Si lo has reinstalado, borra la huella en la comprobación y se aprenderá de nuevo.
- Crea en cada equipo un usuario sin privilegios para esto y restringe su clave en
authorized_keysa lo necesario, por ejemplorestrict,command="/usr/local/bin/estado-atalaya" ssh-ed25519 AAAA….
SNMP
Lee la tabla de interfaces de un router, switch, NAS o impresora con SNMP v2c o v3 (con la credencial que elijas). Cada vez comprueba:
- Qué interfaces están arriba. Por defecto vigila las que están activadas por el administrador y avisa (crítico) cuando una que ha estado arriba cae; los puertos sin cable que nunca han subido no molestan. Si escribes nombres de interfaz (
eth0, ether1), vigila solo esas y exige que estén arriba. - El tráfico de entrada y salida de cada interfaz, que se guarda como métrica (
net.rx_bps,net.tx_bps) y aparece en las gráficas de la ficha del equipo, aunque no tenga agente. - Los errores de cada interfaz, su velocidad y el tiempo que lleva encendido el equipo, que se ven en el detalle de la comprobación.
El valor de la comprobación es el número de interfaces arriba. El equipo debe tener SNMP activado y permitir consultas desde el servidor de Atalaya.
Valores concretos (OID)
Con Qué se vigila → Valores concretos la comprobación lee los OID que le indiques en vez de las interfaces: la temperatura de un sensor, la carga de un servidor, el nivel de tóner de una impresora, un contador de un SAI… Hasta 10 por comprobación. Cada valor tiene:
- Nombre y OID numérico. Si has subido la MIB del fabricante en MIB, escribe el nombre del objeto en el buscador y elige: el OID, la unidad y los nombres de los valores (por ejemplo
1 = up, 2 = down) se rellenan solos. Los objetos escalares se leen con el sufijo.0; los de una tabla piden el índice de la fila (….1). - Unidad y Multiplicar por: para pasar, por ejemplo, décimas de grado a grados (
0.1). - Es un contador: mide lo que crece por segundo (bytes de un puerto, páginas impresas…) en vez del valor bruto. La primera lectura solo guarda el punto de partida.
- Aviso desde y Crítico desde, con el sentido (igual o mayor, igual o menor).
- Valor esperado: una cifra, un nombre de la MIB o un texto; si el equipo devuelve otra cosa, la comprobación es crítica.
El valor de la comprobación es el del primer OID, su estado el peor de todos, y cada valor numérico se guarda como métrica (snmp.oid) y sale en las gráficas de la ficha del equipo, agrupado por unidad.
Estados
| Estado | Significado |
|---|---|
| Bien | La última vez funcionó. |
| Aviso | Funciona, pero pasa un umbral: tarda más de lo indicado, pierde algún ping o el certificado caduca pronto. |
| Crítico | No funciona: puerto cerrado, error HTTP, sin respuesta… |
| Sin datos | Aún no se ha ejecutado. |
| Suspendida | El equipo está apagado y no tiene por qué estar encendido; se reanuda sola al volver. |
Cuándo se da por fallida
Un fallo suelto no cambia el estado. Tras el primer fallo, Atalaya repite la comprobación a los 10 segundos y solo la marca en aviso o crítico cuando falla las veces seguidas que indique Fallos seguidos para dar la alarma (2 por defecto). En cuanto vuelve a funcionar una vez, pasa a «Bien».
Comprobar ahora
El botón ▶ de cada comprobación la lanza en el momento, sin esperar a su intervalo. Es útil tras arreglar algo, para ver que ya funciona.