feat: Sistema de monitoreo base con logging y configuración dinámica
- Implementado monitor de procesos Node.js con detección automática - Sistema de logging con niveles (Info, Warning, Error, Critical) - ConfigManager para gestión dinámica de apps monitoreadas - Interfaz web básica con escaneo de procesos - Integración con API central para reportar estados - User-Agent tracking para identificación de agentes - Persistencia de configuración en JSON - Logs almacenados en archivo con rotación - Sistema modular: monitor, interface, logger, config Estructura: - src/main.rs: Orquestador principal - src/monitor.rs: Monitoreo de procesos y envío a API - src/interface.rs: Servidor web Axum con endpoints - src/logger.rs: Sistema de logging a archivo y consola - src/config.rs: Gestión de configuración persistente - web/: Templates HTML para interfaz web - config/: Configuración de apps monitoreadas - logs/: Archivos de log del sistema Features implementadas: ✅ Detección automática de procesos Node.js ✅ Monitoreo de CPU y RAM por proceso ✅ Reportes periódicos a API central (cada 60s) ✅ Interfaz web en puerto 8080 ✅ Logs estructurados con timestamps ✅ Configuración dinámica sin reinicio ✅ Script de despliegue automatizado Próximos pasos: - Integración con systemd para control de procesos - Dashboard mejorado con cards de apps - Logs en tiempo real vía WebSocket - Start/Stop/Restart de aplicaciones
This commit is contained in:
65
desplegar_agent.sh
Executable file
65
desplegar_agent.sh
Executable file
@@ -0,0 +1,65 @@
|
||||
#!/bin/bash
|
||||
# --- CONFIGURACIÓN GLOBAL ---
|
||||
BINARY_NAME="siax_monitor" # ← Cambié esto para que coincida con Cargo.toml
|
||||
TARGET="x86_64-unknown-linux-gnu" # ← Cambié a gnu en lugar de musl
|
||||
|
||||
echo "📦 Compilando binario para Linux ($TARGET)..."
|
||||
cargo build --release --target $TARGET
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "❌ Error en la compilación."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# --- FUNCIÓN MAESTRA DE DESPLIEGUE ---
|
||||
# Parámetros: IP, USUARIO, RUTA_DESTINO
|
||||
deploy_to_server() {
|
||||
local IP=$1
|
||||
local USER=$2
|
||||
local DEST_PATH=$3
|
||||
|
||||
echo "------------------------------------------------"
|
||||
echo "📡 Desplegando en: $USER@$IP:$DEST_PATH"
|
||||
|
||||
# 1. Crear directorio y asegurar permisos
|
||||
ssh $USER@$IP "mkdir -p $DEST_PATH"
|
||||
|
||||
# 2. Subir binario
|
||||
scp target/$TARGET/release/$BINARY_NAME $USER@$IP:$DEST_PATH/
|
||||
|
||||
# 3. Hacer ejecutable
|
||||
ssh $USER@$IP "chmod +x $DEST_PATH/$BINARY_NAME"
|
||||
|
||||
# 4. Configurar Systemd
|
||||
echo "⚙️ Configurando servicio Systemd para $USER..."
|
||||
ssh $USER@$IP "sudo bash -c 'cat <<EOF > /etc/systemd/system/siax_monitor.service
|
||||
[Unit]
|
||||
Description=SIAX Monitor Agent - $IP
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=$USER
|
||||
WorkingDirectory=$DEST_PATH
|
||||
ExecStart=$DEST_PATH/$BINARY_NAME
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF'"
|
||||
|
||||
# 5. Reiniciar servicio
|
||||
ssh $USER@$IP "sudo systemctl daemon-reload && sudo systemctl enable siax_monitor && sudo systemctl restart siax_monitor"
|
||||
|
||||
echo "✅ Servidor $IP configurado correctamente."
|
||||
}
|
||||
|
||||
# --- LISTA PERSONALIZADA DE SERVIDORES ---
|
||||
#deploy_to_server "192.168.1.140" "root" "/root/app"
|
||||
deploy_to_server "192.168.10.145" "root" "/root/app"
|
||||
deploy_to_server "192.168.10.150" "pablinux" "/home/pablinux/app"
|
||||
deploy_to_server "192.168.10.160" "user_apps" "/home/user_apps/apps"
|
||||
|
||||
echo "------------------------------------------------"
|
||||
echo "🎉 ¡Despliegue masivo completado!"
|
||||
Reference in New Issue
Block a user