Agentes Linux y métricas

El agente es un programa pequeño que se instala en los equipos Linux que quieras vigilar por dentro. Cada 30 segundos envía al servidor su uso de CPU, memoria, discos, red y temperaturas, y con eso Atalaya dibuja gráficas y avisa cuando un disco se llena o la memoria se agota.

Funciona en Debian 12 y 13 y en Raspberry Pi OS de 64 bits (Raspberry Pi 3, 4 y 5), en máquinas físicas, máquinas virtuales y contenedores LXC. Hay paquete para amd64 y arm64; la orden de alta elige el que corresponde al equipo.

Dar de alta un equipo

  1. En Agentes, pulsa Añadir agente (o, en la ficha de un equipo, Instalar el agente).
  2. Elige el equipo. Si aún no está en Atalaya, deja la primera opción: el agente lo da de alta con su nombre y su IP.
  3. Pulsa Generar orden y copia lo que aparece.
  4. Pégalo como root en el equipo. Descarga del propio servidor el paquete de su arquitectura (con curl o, si no está, con wget), comprueba su huella SHA-256, lo instala, da de alta el agente y lo arranca.

La orden lleva un código de un solo uso que caduca en 60 minutos, y la huella del certificado de la web, para que el equipo compruebe que habla con tu servidor y no con otro. Si caduca, genera otra.

En el alta, el servidor firma un certificado para el agente con su CA interna. A partir de ahí el agente solo envía datos con ese certificado, por el puerto de agentes (8443 por defecto), y nadie sin él puede hacerse pasar por el equipo.

El equipo tiene que poder llegar al servidor por el puerto de la web (443) para el alta y por el 8443 para enviar datos.

Qué envía

MétricaQué es
CPU usada y esperando al discoPorcentaje del total de núcleos.
CargaLa media de carga de 1, 5 y 15 minutos.
Memoria y swap usadasLa memoria usada descuenta la caché que el sistema puede liberar.
Disco usado, libre e inodosPor cada sistema de ficheros real (ext4, xfs, btrfs, zfs…), calculado como df.
E/S de discoBytes por segundo leídos y escritos de cada disco.
RedBits por segundo recibidos y enviados, y errores, de cada interfaz con enlace.
TemperaturasLas de los sensores del equipo (no hay en las VM ni en los contenedores).
Servicios en falloLas unidades de systemd en estado failed.
Actualizaciones pendientesPaquetes que apt actualizaría (se mira cada 6 horas, sin descargar nada).
Reinicio pendienteSi una actualización pide reiniciar.

Si el servidor no responde, el agente guarda hasta una hora de datos y los envía cuando vuelve.

Otras redes: satélites

Un agente también puede actuar de satélite y vigilar desde dentro una red remota; ver Satélites.

Gráficas

En la ficha de cada equipo con agente aparecen sus datos (sistema, núcleo, tiempo encendido, actualizaciones) y las gráficas, con el periodo a elegir: 1 hora, 6 horas, 24 horas, 7 días, 30 días o 1 año. Al pasar el ratón por una gráfica se ven los valores de ese momento.

Atalaya guarda cada muestra 48 horas, medias de 5 minutos durante 90 días y medias horarias durante 2 años, así que las gráficas largas se ven con menos detalle.

Reglas de alerta

Las reglas avisan cuando una métrica pasa de un umbral durante un tiempo seguido. Vienen siete de serie:

ReglaAvisa cuando
Disco casi llenoUn disco pasa del 90 % durante 5 minutos (crítica).
Disco se llenará prontoA la tendencia actual, un disco llegará al 100 % en menos de 14 días (durante una hora seguida). Ver más abajo.
Inodos casi agotadosUn disco usa más del 90 % de sus inodos durante 5 minutos.
Memoria casi agotadaLa memoria pasa del 95 % durante 10 minutos.
CPU saturadaLa CPU pasa del 95 % durante 15 minutos.
Servicios en falloHay alguna unidad de systemd en fallo durante 2 minutos.
Temperatura altaUn sensor pasa de 85 °C durante 5 minutos.

Predicción de llenado de disco

Cada media hora el servidor ajusta una recta al uso de cada disco en los últimos 7 días y calcula cuántos días faltan para el 100 %. El resultado es la métrica Días hasta llenar el disco (disk.days_to_full), que se ve en la ficha del equipo y en la que se apoya la regla Disco se llenará pronto. Si el disco no crece, vale 3650 (diez años). Hacen falta al menos 24 horas de datos del disco; un disco que se llena y se vacía (copias, registros rotados) da una tendencia plana, y uno que llena de golpe no se anticipa: para eso está la regla de «Disco casi lleno». Puedes crear tus propias reglas sobre esta métrica, por ejemplo crítica con menos de 3 días.

Con Nueva regla puedes crear otras, para todos los equipos o para uno solo; por ejemplo, avisar si el disco de copias de un NAS pasa del 80 %. Las de serie se pueden cambiar o desactivar, pero no borrar.

La alerta se cierra sola, con aviso de recuperación, en cuanto la métrica vuelve a estar bien. Si desactivas o borras una regla, sus alertas abiertas se cierran.

Apagados y agentes parados

Cuando el equipo se apaga o se reinicia, el agente avisa al servidor antes de que se corte la red. Atalaya lo marca como apagado (aviso ⚪) y no lanza la alerta de equipo caído.

Si el equipo sigue respondiendo al ping pero su agente lleva más de tres intervalos sin enviar datos, salta la alerta «el agente no envía datos». Suele ser que el servicio está parado: systemctl status atalaya-agent.

Actualizar los agentes desde la web

Cuando el servidor se actualiza trae consigo la versión nueva del agente. En Agentes, la columna Versión avisa de los agentes que van por detrás y, a su derecha, Actualizar (o Actualizar todos, arriba) pide la actualización: el agente se entera en su siguiente informe, descarga el paquete por su conexión segura con el servidor, lo deja preparado y un servicio de root del propio equipo (atalaya-agent-update) lo instala. Se reinicia unos segundos. Si algo falla, la columna lo dice (⚠ la actualización falló) con el motivo al pasar el ratón.

Cómo se protege: el agente no tiene privilegios, así que quien instala es atalaya-agent-update, y antes de llamar a dpkg comprueba que el paquete lleva la firma de la CA de Atalaya (la guardada en /etc/atalaya-agent/update-ca.pem al dar de alta el agente) y que es de una versión más nueva y de la arquitectura del equipo. Un paquete manipulado, o servido por otro servidor, se rechaza.

Solo se pueden actualizar así los agentes de la 0.9.6 en adelante; los más antiguos hay que instalarlos a mano una vez (la orden de Añadir agente sirve). Los agentes dados de alta antes de la 0.9.6 fijan la CA la primera vez que se actualizan. Los que llegan al servidor a través de un satélite de relevo no reciben la orden de actualizar por ese camino.

Revocar un agente

En Agentes, Revocar invalida el certificado de ese agente al momento: el servidor deja de aceptar sus datos, aunque se conservan los que ya envió. Para volver a usarlo, dalo de alta otra vez. Hazlo si retiras el equipo o si sospechas que alguien ha copiado su clave.

En el equipo

OrdenPara qué
atalaya-agent collectVer las métricas del equipo sin enviar nada.
atalaya-agent onceEnviar una muestra y comprobar la conexión.
systemctl status atalaya-agentVer si está en marcha y sus últimos mensajes.
apt purge atalaya-agentDesinstalarlo y borrar su clave.

La clave y el certificado del agente están en /var/lib/atalaya-agent/, legibles solo por el usuario del servicio. El servicio corre sin privilegios.