feat: push-based monitoring with remote agent

- Add database migration 006 for agent_key, agent_installed, agent_install_path, agent_last_seen_at columns
- Add Server model methods: findByAgentKey, generateAgentKey, regenerateAgentKey, updateAgentLastSeen, setAgentInstalled
- Auto-generate agent_key on server creation
- Create AgentService for SSH-based install/uninstall of remote agent
- Create bin/agent.sh - bash agent script for remote servers
- Create install/agent-install.sh and install/agent-uninstall.sh
- Create install/servermanager-agent.service systemd unit
- Add POST /api/metrics/push endpoint (auth via agent_key)
- Add web routes for agent install/uninstall/regenerate-key
- Add agent status section to server detail view with install/uninstall modals
- Make MonitoringService::saveMetrics() public for reuse
This commit is contained in:
2026-06-11 18:28:22 -04:00
parent 6e4bf2ad1d
commit bfa102cf97
12 changed files with 731 additions and 1 deletions

View File

@@ -111,7 +111,7 @@ class MonitoringService
return trim(str_replace('up ', '', $result['output']));
}
private function saveMetrics(array $metrics): void
public function saveMetrics(array $metrics): void
{
$now = date('Y-m-d H:i:s');