Guía

Instalar el agente

Un comando en el servidor. No abre ningún puerto a la escucha, funciona sin root e informa en menos de un minuto desde que arranca.

Paso a paso

  1. En el portal, ve a Ajustes → Grupos y pulsa Enrolar un host. Mientras no se vigile nada, el mismo comando está en la primera tarjeta de Incidentes, Hosts y Panel.
  2. Copia la línea. Lleva un token propio, sirve una vez y se muestra una vez.
  3. Ejecútala en el servidor. Abajo está el comando tal como se publica; el portal te da esa misma línea con el token ya puesto.
  4. Espera un minuto y mira en Hosts. El servidor está ahí, con sus discos, memoria, servicios, contenedores y certificados ya descubiertos y con reglas razonables puestas.
  5. Si no está, el instalador ha dicho por qué en la terminal donde se ejecutó. Las dos respuestas habituales son una máquina sin curl y un token ya gastado.

El comando

Añade tu primer servidor

Una imagen mínima de Debian o Ubuntu no trae curl, así que instálalo antes: apt-get install -y curl

curl -fsSL https://hopmango.com/install.sh | sh -s -- --token <enrollment token>

La línea acaba en un hueco, <enrollment token>: el portal te da esta misma línea con tu token ya dentro, en la primera pantalla después de registrarte. La API y un asistente, también.

O descarga el instalador con wget, y no instales nada:

wget -qO- https://hopmango.com/install.sh | sh -s -- --token <enrollment token>

Lo que no va a hacer

El agente no abre ningún puerto a la escucha por ninguna vía, así que no hay nada nuevo que exponer en tu cortafuegos. Funciona sin root. La clave privada que genera en el host no viaja en ninguna petición. Y nada de HopMango — ninguna pantalla, ninguna llamada a la API, con ningún permiso — puede hacer que ejecute un programa por nosotros.

Cada una de esas cosas es una prueba que bloquea nuestras propias versiones, no una promesa de un folleto. La lista entera, en palabras llanas.

Comprobaciones que escribes tú

El descubrimiento encuentra lo evidente. El resto va en el fichero del propio servidor, /etc/hopmango/hopmango.conf, que el agente nunca reescribe: hopmango validate lo comprueba y hopmango reload lo aplica. Un endpoint HTTP, un fichero, un directorio y una instancia de PostgreSQL son una línea cada uno.

check http site with url https://example.com/healthz
check file appconf with path /etc/app/app.conf
check directory spool with path /var/spool/app
check postgres wal with url postgres:///?user=hopmango_agent

Añade #match= y una expresión regular a la URL — https://example.com/healthz#match=ok — y el cuerpo se comprueba contra ella. El fragmento es la única parte de una URL que nunca llega al servidor, así que el patrón se queda en tu máquina.

PostgreSQL es el que necesita una mano. La comprobación entra con el rol que nombra su destino, no con el usuario con el que corre el agente, así que se le da un rol propio que no puede más que mirar — tres líneas que alguien con permisos sobre la base de datos ejecuta una vez:

CREATE ROLE hopmango_agent LOGIN;
GRANT pg_monitor TO hopmango_agent;
-- and in pg_ident.conf, map the agent's OS user to that role (peer, map=)

Las comprobaciones de programa — una comprobación que ejecuta un binario — no están disponibles en esta versión: el agente no incluye un colector para ellas, y la validación la rechaza incluso en un host cuyo fichero habilita la ejecución.

Lo que más se falla

Reutilizar la misma línea en un segundo servidor. El token sirve una vez y se muestra una vez, así que el segundo pegado falla con un error de enrolamiento que parece un instalador roto. Coge un comando nuevo en Enrolar un host para cada máquina; y si un pegado se quedó a medias, coge uno nuevo en vez de reintentar el viejo.

Por dónde seguir

Después, qué ha encontrado el agente y la espera que lo mantiene callado.