feat: push-based monitoring with remote agent #37

Merged
rafaga21 merged 1 commits from feat/push-monitoring-agent into master 2026-06-11 18:50:21 -04:00
Collaborator

Resumen

Reemplaza el monitoreo pull-based (cron + SSH) por un sistema push-based donde cada servidor ejecuta un agente que envía métricas por HTTP POST.

Cambios

Nuevos archivos

  • bin/agent.sh — Script bash para servidores remotos
  • database/migrations/006_agent_tokens.sql — Nuevas columnas: agent_key, agent_installed, agent_install_path, agent_last_seen_at
  • install/agent-install.sh — Instalador remoto via SSH
  • install/agent-uninstall.sh — Desinstalador remoto
  • install/servermanager-agent.service — Unidad systemd con Restart=always
  • src/Services/AgentService.php — Orquesta install/uninstall via SSH

Archivos modificados

  • src/Models/Server.php — findByAgentKey, generateAgentKey, regenerateAgentKey, updateAgentLastSeen, setAgentInstalled
  • src/Services/MonitoringService.php — saveMetrics() pasa a public
  • src/Controllers/ApiController.php — pushMetrics(), oculta agent_key en respuestas
  • src/Controllers/ServerController.php — agentInstall, agentUninstall, agentRegenerateKey
  • routes/web.php — 4 rutas nuevas
  • views/servers/show.php — Sección Monitoring Agent + modales install/uninstall
## Resumen Reemplaza el monitoreo pull-based (cron + SSH) por un sistema push-based donde cada servidor ejecuta un agente que envía métricas por HTTP POST. ## Cambios ### Nuevos archivos - **bin/agent.sh** — Script bash para servidores remotos - **database/migrations/006_agent_tokens.sql** — Nuevas columnas: agent_key, agent_installed, agent_install_path, agent_last_seen_at - **install/agent-install.sh** — Instalador remoto via SSH - **install/agent-uninstall.sh** — Desinstalador remoto - **install/servermanager-agent.service** — Unidad systemd con Restart=always - **src/Services/AgentService.php** — Orquesta install/uninstall via SSH ### Archivos modificados - **src/Models/Server.php** — findByAgentKey, generateAgentKey, regenerateAgentKey, updateAgentLastSeen, setAgentInstalled - **src/Services/MonitoringService.php** — saveMetrics() pasa a public - **src/Controllers/ApiController.php** — pushMetrics(), oculta agent_key en respuestas - **src/Controllers/ServerController.php** — agentInstall, agentUninstall, agentRegenerateKey - **routes/web.php** — 4 rutas nuevas - **views/servers/show.php** — Sección Monitoring Agent + modales install/uninstall
agent added 1 commit 2026-06-11 18:49:31 -04:00
The sudo -n check was incorrectly detecting that sudo required a
password, causing fallback to plain bash without root permissions.
Now we always run the installer via sudo bash, consistent with how
all other SSH commands work (systemctl, reboot, etc.).
rafaga21 approved these changes 2026-06-11 18:50:14 -04:00
rafaga21 merged commit 5f6788970f into master 2026-06-11 18:50:21 -04:00
rafaga21 deleted branch feat/push-monitoring-agent 2026-06-11 18:50:22 -04:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: devlab/server-manager#37