Le preguntamos a Gemini, la inteligencia artificial de Google, cómo resolver problemas de Alerta en linux
Explicanos detalladamente cómo resolver problemas de Alerta en linuxResolver problemas en un entorno de Alerta en Linux requiere aislar la capa donde ocurre el fallo: la interfaz gráfica web (Frontend), la API de Flask/Gunicorn (Backend), la base de datos (PostgreSQL/MongoDB) o el proxy inverso (Nginx).
1. Protocolo y Ubicación de Logs para Diagnóstico
Antes de modificar configuraciones, debes verificar qué componente está generando el fallo revisando sus logs correspondientes:
Este error indica que Nginx no puede comunicarse con el proceso de Alerta (Gunicorn) escuchando en el puerto interno (ej. 127.0.0.1:8080) o socket Unix.
Diagnóstico
Comprueba si el servicio alerta está activo:
Bash
systemctl status alerta
Verifica si el puerto local está en escucha:
Bash
ss -tlpn | grep 8080
Prueba la API directamente sin pasar por Nginx:
Bash
curl -i http://127.0.0.1:8080/api/management/healthcheck
Soluciones Frecuentes
Gunicorn está apagado: Revisa errores de permisos en /etc/alertad.conf o rutas del entorno virtual de Python.
Conflicto de permisos en el socket/puerto: Si usas sockets Unix (/tmp/alerta.sock), asegúrate de que el usuario de Nginx (www-data o nginx) tenga permisos de lectura/escritura:
Bash
sudo chown www-data:www-data /tmp/alerta.sock
Límite de tiempo agotado (Timeout): Si la base de datos es lenta y responde después de 30s, aumenta el tiempo de espera en Nginx:
Nginx
proxy_read_timeout 90s;
proxy_connect_timeout 90s;
3. Problema: La Web UI carga en blanco o muestra "API Error / Network Error"
Ocurre cuando el navegador del usuario no logra consultar el endpoint de la API debido a una mala ruta en el cliente web o políticas de CORS.
Diagnóstico y Solución
Verificar el archivo de configuración de la UI (config.js):
Revisa /opt/alerta/webui/config.js (o la ruta donde instalaste el frontend):
JavaScript
window.config = {
'endpoint': '/api', // Si usas proxy Nginx relativo. Si está en otro dominio: 'http://alerta.dominio.com/api'
'provider': 'basic'
};
Ajustar CORS en el backend (/etc/alertad.conf):
Si la consola web y la API están en subdominios o puertos diferentes, debes autorizar el origen en la API:
Ini, TOML
CORS_ORIGINS = [
'http://localhost',
'http://alerta.tu-dominio.com',
'https://alerta.tu-dominio.com'
]
Contenido Mixto (HTTP vs HTTPS):
Si la consola carga bajo https://, la propiedad endpoint en config.js debe ser HTTPS o relativa (/api). De lo contrario, los navegadores bloquean la petición HTTP implícitamente.
4. Problema: Errores de Base de Datos y Migraciones
Si en journalctl -u alerta aparecen errores como psycopg2.OperationalError o UndefinedTable: relation "alerts" does not exist.
Solución A: Fallo de Conexión a PostgreSQL
Valida la cadena de conexión en /etc/alertad.conf:
Ini, TOML
DATABASE_URL = 'postgres://alerta:TuPasswordSegura@127.0.0.1:5432/alertadb'
Prueba la conexión manual utilizando las mismas credenciales:
Bash
psql -h 127.0.0.1 -U alerta -d alertadb
Si usas PostgreSQL local, asegúrate de que el archivo /etc/postgresql/*/main/pg_hba.conf permita la autenticación md5 o scram-sha-256 para el usuario alerta en 127.0.0.1.
Solución B: Esquema Desactualizado o Tablas Faltantes
Si acabas de actualizar la versión de Alerta Server, debes ejecutar las migraciones de la base de datos:
Bash
# Activar entorno virtual
source /opt/alerta/venv/bin/activate
# Forzar migración del esquema
ALERTA_SVR_CONF_FILE=/etc/alertad.conf alerta-admin db migrate
5. Problema: Error al Cargar Plugins de Python
Al reiniciar Alerta, el servicio falla inmediatamente si hay un módulo nombrado en la directiva PLUGINS de /etc/alertad.conf que no está instalado en el entorno virtual.
Diagnóstico y Solución
Ejemplo de error en logs: ModuleNotFoundError: No module named 'alerta_amqp'.
Revisar plugins configurados:
Ini, TOML
PLUGINS = ['reject', 'amqp', 'telegram']
Instalar los paquetes correspondientes dentro del Venv:
Bash
/opt/alerta/venv/bin/pip install alerta-amqp alerta-telegram
Reiniciar el servicio:
Bash
sudo systemctl restart alerta
6. Problema: Bloqueo de Acceso / Pérdida de la API Key de Administrador
Si activas la autenticación (AUTH_REQUIRED = True) en /etc/alertad.conf sin haber generado previamente un usuario administrador o una clave API de acceso, quedarás bloqueado con errores 401 Unauthorized.
Solución: Generar una API Key de Administración por CLI
Puedes generar credenciales de rescate directamente desde el servidor sin necesidad de la interfaz web:
Bash
# 1. Exportar la ubicación de la configuración
export ALERTA_SVR_CONF_FILE=/etc/alertad.conf
# 2. Generar una API Key con privilegios de Administrador
/opt/alerta/venv/bin/alerta-admin key --admin --username "admin@tu-dominio.com" --text "Key de Emergencia"
El comando devolverá una clave alfanumérica larga. Guárdala y utilízala en tus peticiones CLI o en la cabecera HTTP:
Bash
alerta --api-key <TU_API_KEY_GENERADA>
Comandos Útiles de Mantenimiento de Alerta
Bash
# Verificar estado y conectividad general de la API
alerta status
# Limpiar o purgar alertas antiguas cerradas directamente en la BD
ALERTA_SVR_CONF_FILE=/etc/alertad.conf /opt/alerta/venv/bin/alerta-admin housekeep
# Probar envío rápido de una alerta para verificar el flujo de trabajo
alerta send -r "server01" -e "DiskFull" -s "critical" -t "Prueba de diagnóstico"
¿Deseas profundizar en algún tipo de fallo específico?
Depurar plugin específico (Telegram, Slack, Email)
Configurar HTTPS con Certbot / Let's Encrypt
Optimizar rendimiento de PostgreSQL para Alerta