feat: sistema de agente ligero para monitoreo de servidores
Backend: - Servidor model: AgentToken, AgentLastSeen, MetricasJson nuevos campos - AgentHeartbeat: endpoint público POST /agent/heartbeat (auth por token) - GenerateAgentToken: endpoint protegido POST /app/servidor/:id/agent-token - Ruta pública /agent/install.sh sirve el script de instalación Agente Go (agent/): - agent/main.go: binario independiente con gopsutil - Recolecta RAM, CPU, Disco, Uptime, OS, Load average - Lee agent.yml o flags --api-url / --token - Envía POST a /agent/heartbeat cada N segundos - Instala como servicio systemd via install.sh - agent/go.mod: módulo independiente (usite-agent) - agent/agent.yml.sample: configuración de ejemplo - agent/install.sh: instalador en 1 curl para Linux (systemd) Frontend servidor_dashboard.html: - Cards: badge ● En línea / ● Fuera / ○ Sin agente - Barras de progreso live: RAM%, CPU%, Disco% - Valores: GB usado/total, núcleos, uptime, OS real - Tiempo desde último reporte - Botón 'Agente' en cada card → modal de configuración - Modal agente: estado, token con copy, comando curl 1 línea, instalación manual/avanzada con collapse, métricas actuales Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
co-authored by
Copilot
parent
f52e266527
commit
d9d3f8a5eb
@@ -2,6 +2,7 @@ package models
|
||||
|
||||
import (
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"github.com/sujit-baniya/fiber-boilerplate/app"
|
||||
"gorm.io/gorm"
|
||||
@@ -21,6 +22,10 @@ type Servidor struct {
|
||||
ProvServidor ProvServidor `json:"prov_servidor" gorm:"foreignKey:ProvServidorID"`
|
||||
TipoServidorID uint `json:"tipo_servidor_id" gorm:"column:tipo_servidor_id;foreignKey:TipoServidorID"`
|
||||
TipoServidor TipoServidor `json:"tipo_servidor" gorm:"foreignKey:TipoServidorID"`
|
||||
// Campos del agente de monitoreo
|
||||
AgentToken string `json:"agent_token" gorm:"column:agent_token;uniqueIndex"`
|
||||
AgentLastSeen *time.Time `json:"agent_last_seen" gorm:"column:agent_last_seen"`
|
||||
MetricasJson string `json:"metricas_json" gorm:"column:metricas_json;type:text"`
|
||||
}
|
||||
|
||||
func (Servidor) TableName() string {
|
||||
|
||||
Reference in New Issue
Block a user