Busqueda sobre Linux y software libre

Noticias sobre linux y software libre - Google 

Cómo resolver problemas de Alerta en linux

 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 linux

Resolver 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:

ComponenteComando / Ubicación del LogPropósito del Diagnóstico
API Backend (Systemd)journalctl -u alerta -f -n 100Excepciones de Python, errores de sintaxis en alertad.conf, fallos al cargar plugins.
Errores de Gunicorn/var/log/alerta-error.logFallos de arranque del WSGI, workers colgados o falta de memoria.
Proxy Inverso (Nginx)/var/log/nginx/error.logErrores 502/504, problemas de resolución de nombres, límites de tamaño en POST.
Base de Datos (Postgres)/var/log/postgresql/postgresql-*-main.logErrores de autenticación de usuario, timeout de conexiones, tablas no encontradas.

2. Problema: Error "502 Bad Gateway" o "504 Gateway Timeout"

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 get

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

Ads by CJ - Linux Foundation

Share This