Le preguntamos a Gemini, la inteligencia artificial de Google, cómo instalar y configurar Alerta en linux
Explicanos detalladamente cómo instalar y configurar Alerta en linuxAlerta es un sistema de consolidación, desduplicación y visualización de alertas en tiempo real diseñado para integrarse con múltiples herramientas de monitoreo (como Prometheus, Zabbix, Nagios, Grafana y Webhooks).
Su arquitectura consta de tres partes principales:
Alerta Server: API en Python/Flask que procesa, correlaciona y almacena las alertas.
Base de Datos: PostgreSQL (recomendado) o MongoDB.
Alerta Web UI / CLI: Consola web en HTML5/JavaScript y cliente de línea de comandos para gestión de eventos.
1.1. Instalar Dependencias del Sistema y Base de Datos:
PostgreSQL + Python3 + Nginx.
Instala los paquetes base requeridos en tu servidor Linux (ejemplo para Ubuntu/Debian):
Bash
sudo apt update && sudo apt install -y \
python3-pip python3-venv python3-dev \
postgresql postgresql-contrib \
nginx curl git build-essential
Crea la base de datos y el usuario en PostgreSQL:
Bash
sudo -u postgres psql -c "CREATE USER alerta WITH PASSWORD 'TuPasswordSegura123';"
sudo -u postgres psql -c "CREATE DATABASE alertadb OWNER alerta;"
2.2. Crear Entorno Virtual e Instalar Alerta Server:
Entorno aislado en /opt/alerta.
Bash
# Crear directorio y entorno virtual
sudo mkdir -p /opt/alerta
sudo chown -R $USER:$USER /opt/alerta
python3 -m venv /opt/alerta/venv
# Activar e instalar alerta-server, cliente y servidor WSGI (Gunicorn)
source /opt/alerta/venv/bin/activate
pip install --upgrade pip setuptools
pip install alerta-server alerta psycopg2-binary gunicorn
Verificación: Ejecuta /opt/alerta/venv/bin/alerta-server --version para confirmar que se instaló correctamente.
3.3. Configurar el Servidor de Alerta:
/etc/alertad.conf.
Crea el archivo de configuración global /etc/alertad.conf:
Bash
sudo nano /etc/alertad.conf
Agrega la configuración básica con conexión a PostgreSQL:
DATABASE_URL = 'postgres://alerta:TuPasswordSegura123@localhost:5432/alertadb'
DATABASE_NAME = 'alertadb'
# Seguridad y Clave Secreta (genera una clave aleatoria)
SECRET_KEY = 'cambia_esta_clave_por_una_cadena_larga_y_aleatoria'
# Autenticación (desactivada inicialmente para pruebas; activable con LDAP/Basic/OAuth)
AUTH_REQUIRED = False
CORS_ORIGINS = ['*']
# Plugins activos (ejemplo: desduplicación por defecto)
PLUGINS = ['reject']
Asegura permisos de lectura para el servidor web:
Bash
sudo chmod 644 /etc/alertad.conf
4.4. Descargar e Instalar Alerta Web UI:
Descarga de la consola web estática.
Descarga la versión compilada del frontend Web UI desde GitHub:
Bash
cd /tmp
# Descargar la última versión de la Web UI
curl -LO https://github.com/alerta/alerta-webui/releases/latest/download/alerta-webui.tar.gz
# Extraer en la ruta web de Alerta
sudo mkdir -p /opt/alerta/webui
sudo tar -xvf alerta-webui.tar.gz -C /opt/alerta/webui --strip-components=1
Crea el archivo de configuración del frontend /opt/alerta/webui/config.js:
Bash
sudo nano /opt/alerta/webui/config.js
JavaScriptwindow.config = {
'endpoint': '/api',
'provider': 'basic'
};
5.5. Crear el Servicio del Sistema (Systemd):
Servicio Systemd con Gunicorn.
Crea el archivo de unidad /etc/systemd/system/alerta.service para gestionar la API en segundo plano mediante Gunicorn:
Bash
sudo nano /etc/systemd/system/alerta.service
Ini, TOML[Unit]
Description=Alerta Server Engine
After=network.target postgresql.service
[Service]
User=www-data
Group=www-data
WorkingDirectory=/opt/alerta
Environment="ALERTA_SVR_CONF_FILE=/etc/alertad.conf"
ExecStart=/opt/alerta/venv/bin/gunicorn \
--workers 4 \
--bind 127.0.0.1:8080 \
--access-logfile /var/log/alerta-access.log \
--error-logfile /var/log/alerta-error.log \
alerta.app:app
[Install]
WantedBy=multi-user.target
Ajusta permisos, habilita e inicia el servicio:
Bash
sudo chown -R www-data:www-data /opt/alerta
sudo systemctl daemon-reload
sudo systemctl enable --now alerta
Verificación: Ejecuta systemctl status alerta para comprobar que el estado sea active (running).
6.6. Configurar Nginx como Reverse Proxy:
Proxy inverso /api y estáticos.
Configura Nginx para servir la interfaz web y redirigir las peticiones /api al backend en el puerto 8080.
Crea /etc/nginx/sites-available/alerta:
Nginx
server {
listen 80;
server_name alerta.tu-dominio.com; # O la IP de tu servidor
client_max_body_size 5M;
# Interfaz Web UI
location / {
root /opt/alerta/webui;
index index.html;
try_files $uri $uri/ /index.html;
}
# API Backend
location /api {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Activa el sitio y reinicia Nginx:
Bash
sudo ln -s /etc/nginx/sites-available/alerta /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
7.7. Validar la Instalación y Probar el Cliente CLI:
Envío de alerta de prueba.
Configura el cliente CLI alerta en tu terminal local para enviar tu primera alerta de prueba:
Bash
# Configurar la URL de la API para la CLI
export ALERTA_API_URL=http://localhost/api
# Enviar una alerta sintética de prueba
/opt/alerta/venv/bin/alerta send \
--resource "srv-web-01" \
--event "HighCPU" \
--environment "Production" \
--severity "major" \
--service "WebSite" \
--text "El uso de CPU supera el 90%"
Accede a tu navegador e ingresa a http://<IP_DE_TU_SERVIDOR>
Resumen de Enrutamiento y Puertos
Integrar con Prometheus / Alertmanager
Integrar con Zabbix
Activar Autenticación (LDAP / Basic / OAuth)