folder DevOps code Rust monitoring Monitoring

SIAX Monitor: Sistema de Monitoreo y Gestión de Aplicaciones Node.js y Python

person
Por pablinux
calendar_today
schedule 10 min de lectura
monitoring

Monitoreo inteligente con Rust + Systemd

En el mundo del desarrollo moderno, gestionar múltiples aplicaciones Node.js y Python en servidores de producción puede convertirse rápidamente en un dolor de cabeza. SIAX Monitor nace como una solución elegante, ligera y poderosa para este problema, aprovechando la velocidad y seguridad de Rust.

¿Qué es SIAX Monitor?

SIAX Monitor es un agente de monitoreo inteligente diseñado específicamente para entornos Linux con systemd. A diferencia de soluciones enterprise como Prometheus o Grafana que pueden resultar excesivas para equipos pequeños, SIAX Monitor ofrece exactamente lo que necesitas sin complicaciones innecesarias.

Desarrollado completamente en Rust, combina alto rendimiento con un consumo mínimo de recursos. El proyecto utiliza tecnologías modernas como Tokio para async runtime, Axum para el servidor web, y se integra nativamente con systemd y journalctl.

Características Principales

🔍 Escaneo Automático de Procesos

El sistema detecta automáticamente procesos Node.js y Python en ejecución, recopilando información detallada como:

⚙️ Gestión de Ciclo de Vida

Control total sobre tus aplicaciones mediante la API REST:

El sistema incluye rate limiting (1 operación/segundo por app) para evitar abusos y validaciones de seguridad en todos los endpoints.

📝 Logs en Tiempo Real

Uno de los puntos más fuertes es el streaming de logs vía WebSocket. Conectándote al endpoint ws://localhost:8080/api/apps/:name/logs, recibes logs en tiempo real desde journalctl sin necesidad de SSH al servidor.

La interfaz web incluye un visor tipo terminal con:

🛡️ Seguridad y Validaciones

SIAX Monitor toma la seguridad en serio:

🎨 Dashboard Moderno

La interfaz web está construida con Tailwind CSS en tema oscuro (#101922 de fondo, #137fec como color primario). Incluye:

¿Cómo Funciona?

Arquitectura Multi-Threaded

SIAX Monitor utiliza una arquitectura basada en tres componentes principales:

1. Monitor en Background

Un thread dedicado ejecuta cada 60 segundos para:

2. Servidor Web Unificado

Un servidor HTTP en puerto 8080 que fusiona:

Esto elimina problemas de CORS al servir todo desde el mismo origen.

3. Integración Systemd

El módulo systemd_manager genera archivos .service automáticamente con:

[Unit]
Description=App gestionada por SIAX Monitor
After=network.target

[Service]
Type=simple
User=app-user
WorkingDirectory=/opt/app
ExecStart=/usr/bin/node server.js
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

Stack Tecnológico

El proyecto está construido sobre tecnologías modernas y probadas:

Ventajas y Consideraciones

✅ Ventajas

⚠️ Consideraciones

Casos de Uso

👔 Equipos DevOps

Gestión centralizada de microservicios en múltiples servidores. El monitor actúa como worker node que reporta al cloud API central, permitiendo visibilidad de toda la infraestructura desde un solo panel.

💻 Desarrolladores

Monitoreo de aplicaciones en entornos de desarrollo y staging sin la complejidad de herramientas enterprise. Perfecto para proyectos pequeños a medianos que necesitan control básico de servicios.

🖥️ Administradores de Sistemas

Control de servicios systemd con una interfaz web moderna. Alternativa visual a comandos systemctl repetitivos, con la ventaja de logs centralizados y accesibles desde el navegador.

Instalación Rápida

El proceso de instalación es extremadamente simple:

# Clonar el repositorio
git clone https://git.telcotronics.net/pablinux/SIAX-MONITOR.git
cd SIAX-MONITOR

# Compilar en modo release
cargo build --release

# Ejecutar instalador (crea usuario, configura sudoers, instala servicio)
sudo ./instalador.sh

# El servicio estará disponible en http://localhost:8080

El script instalador.sh realiza automáticamente:

Arquitectura de Despliegue

SIAX Monitor fue diseñado pensando en una arquitectura distribuida:

Cada worker reporta cada 60 segundos su estado, permitiendo monitoreo centralizado de toda la infraestructura sin exponer puertos públicamente.

Conclusión

SIAX Monitor demuestra que no siempre necesitas soluciones enterprise complejas para problemas simples. Con menos de 2,000 líneas de código Rust bien estructurado, ofrece exactamente lo necesario para gestionar aplicaciones Node.js y Python en producción.

La combinación de Rust + Systemd + WebSocket resulta en una herramienta rápida, confiable y fácil de mantener. Es perfecta para equipos pequeños o medianos que buscan simplicidad sin sacrificar funcionalidad.

Si administras servidores Linux con aplicaciones Node.js o Python, definitivamente vale la pena darle una oportunidad. El código está disponible en Git Telcotronics bajo licencia open source.

"A veces la mejor solución no es la más compleja, sino la que resuelve tu problema específico de la manera más elegante posible." - Filosofía detrás de SIAX Monitor

Etiquetas

rust systemd monitoring devops nodejs python websocket axum tokio linux