Tutorial

Alternativas self-hosted a Opsgenie antes de abril 2027

Seguridad y monitorización8 min de lectura7 pasos

El 5 de abril de 2027, Opsgenie dejará de funcionar definitivamente. Atlassian publicó el anuncio oficial de fin de vida y recomienda a los usuarios migrar a otros productos. Semanas antes, Grafana Labs archivó el repositorio de Grafana OnCall OSS el 24 de marzo de 2026, eliminando de facto una de las alternativas open source más citadas. Este artículo presenta dos alternativas completamente self-hosted — OneUptime e IncidentRelay — que se pueden desplegar en un VPS estándar, configurar en menos de una hora y mantener sin suscripción SaaS. Complementa las guías ya publicadas sobre monitorización ligera con Beszel y Uptime Kuma, y sobre el despliegue de Wazuh para detección de intrusiones.

Contenido· Opsgenie y Grafana OnCall: dos pilares que desaparecen1/10
  1. 01Opsgenie y Grafana OnCall: dos pilares que desaparecen
  2. 02Lo que debe cubrir una solución de gestión de incidencias
  3. 03OneUptime vs IncidentRelay vs PagerDuty
  4. 04Requisitos de VPS para OneUptime
  5. 05Desplegar OneUptime en un VPS en 7 pasos
  6. 06Configurar las alertas: webhook Prometheus a OneUptime
  7. 07Gestionar guardias y escalados
  8. 08Exponer la página de estado detrás de nginx
  9. 09Solución de problemas — errores comunes al arrancar
  10. 10Planificar la migración de Opsgenie a OneUptime antes de abril 2027

Opsgenie y Grafana OnCall: dos pilares que desaparecen

Atlassian adquirió Opsgenie en 2018 y lo integró progresivamente en la suite Jira. El anuncio de fin de vida se publicó en la página de estado oficial de Atlassian: el servicio se detiene el 5 de abril de 2027. Los usuarios disponen de algo más de un año para migrar sus políticas de guardia, sus integraciones y su historial de incidencias. Grafana OnCall OSS, el componente open source de Grafana OnCall, fue archivado en GitHub el 24 de marzo de 2026. El equipo de Grafana Labs indicó que la versión cloud sigue disponible, pero el repositorio de autoalojamiento ya no recibe parches ni nuevas funcionalidades. La convergencia de estos dos eventos en menos de doce meses crea una ventana de migración que los equipos harían bien en planificar ahora en lugar de esperar la presión de las últimas semanas antes del plazo de abril de 2027.

Lo que debe cubrir una solución de gestión de incidencias

  • Recepción y deduplicación de alertas desde Prometheus, Grafana, Zabbix o cualquier webhook HTTP
  • Enrutamiento de alertas al equipo correcto según reglas configurables (severidad, servicio, horario)
  • Gestión de turnos de guardia (on-call schedules) con rotaciones semanales o personalizadas
  • Escalado automático si una alerta no es reconocida en el tiempo definido
  • Notificaciones multicanal: correo electrónico, SMS, llamada de voz, Slack, Microsoft Teams
  • Página de estado pública para informar a los usuarios en tiempo real
  • Historial de incidencias consultable y exportable para post-mortems
  • API REST para integración en pipelines CI/CD y herramientas de automatización

OneUptime vs IncidentRelay vs PagerDuty

Desplace la tabla

CriterioOneUptimeIncidentRelayPagerDuty (SaaS)
LicenciaApache 2.0MITPropietaria
AlojamientoSelf-hosted (Docker Compose)Self-hosted (Docker Compose)Solo cloud
Stack tecnológicoNode.js / TypeScript, PostgreSQLGo, SQLite/PostgreSQLNo divulgado
RAM mínima recomendada4 GB (producción ligera), 8 GB aconsejado512 MB (SQLite), 2 GB (PostgreSQL)N/A
Página de estado integradaSí, pública y personalizableSí, básicaSí, vía Statuspage (pago separado)
Precio baseGratuito (self-hosted)Gratuito (self-hosted)De pago (ver precios oficiales)

Requisitos de VPS para OneUptime

OneUptime utiliza una arquitectura multicontenedor orquestada por Docker Compose. Para un equipo de menos de veinte personas con un volumen de alertas moderado (menos de mil eventos al día), un VPS con 4 vCPU y 8 GB de RAM es una base sólida. Por debajo de 4 GB de RAM varios contenedores compiten al arranque y provocan reinicios repetidos. El almacenamiento debe estar en un volumen SSD: OneUptime escribe frecuentemente en PostgreSQL y en su bus de eventos interno. Prever al menos 40 GB para los logs y la base de datos en un periodo de seis meses. El servidor debe exponer los puertos 80 y 443; se puede colocar un proxy inverso nginx o Caddy delante si el VPS ya aloja otros servicios. Se requieren Docker Engine versión 24 o superior y Docker Compose versión 2.20 o superior. Una dirección IP fija y un nombre de dominio con registro DNS A son necesarios para el certificado TLS y para que los webhooks entrantes sean accesibles.

Desplegar OneUptime en un VPS en 7 pasos

  1. Conéctate al VPS por SSH e instala Docker Engine y Docker Compose v2 desde el repositorio oficial de Docker: curl -fsSL https://get.docker.com | sh, luego verifica con docker compose version.

  2. Clona el repositorio de OneUptime: git clone https://github.com/OneUptime/oneuptime.git y entra en el directorio cd oneuptime.

  3. Copia el archivo de configuración de ejemplo: cp .env.example .env y ábrelo en un editor. Configura como mínimo DOMAIN (tu dominio o subdominio), DISABLE_TELEMETRY=true si no quieres enviar métricas de uso, y las variables SMTP (SMTP_HOST, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD, SMTP_FROM_EMAIL) para las notificaciones por correo.

  4. Lanza los contenedores en segundo plano: docker compose up -d. El primer arranque descarga las imágenes y ejecuta las migraciones de base de datos; espera entre tres y cinco minutos según el ancho de banda.

  5. Verifica que todos los servicios estén sanos: docker compose ps. Los contenedores oneuptime-app, oneuptime-worker, oneuptime-postgres y oneuptime-redis deben mostrar el estado running. Si un contenedor falla, consulta sus logs con docker compose logs <nombre-del-contenedor> --tail=100.

  6. Abre el navegador en https://tu-dominio y crea la cuenta de administrador inicial. Luego ve a *Settings → On-Call Duty → Policies* para crear tu primera política: define el equipo, las ventanas horarias y los canales de notificación.

  7. Activa las actualizaciones automáticas de imágenes con Watchtower o programa un docker compose pull && docker compose up -d semanal vía cron para incorporar parches de seguridad sin interrupciones prolongadas.

Configurar las alertas: webhook Prometheus a OneUptime

OneUptime expone un endpoint webhook entrante para cada monitor o integración creada. En la interfaz, ve a *Integrations → Incoming Webhooks* y crea una nueva integración de tipo Prometheus Alertmanager. La interfaz genera una URL con la forma https://tu-dominio/api/v1/incoming-request/<uuid>. En la configuración de Alertmanager de Prometheus, añade un receptor de tipo webhook apuntando a esa URL. El campo send_resolved: true permite a OneUptime cerrar automáticamente una incidencia cuando Alertmanager envía la notificación de resolución. Para integración desde Grafana, usa el tipo de contacto *Webhook* e introduce la misma URL. OneUptime analiza el JSON entrante y extrae automáticamente el título, la severidad y las etiquetas de la alerta de Prometheus. Si envías alertas desde una herramienta personalizada, el formato esperado está documentado en la página de integración: un campo title y un campo description son suficientes para crear una incidencia.

Gestionar guardias y escalados

Los planificadores de guardia (On-Call Schedules) en OneUptime definen quién está disponible, a qué hora y para qué servicio. Un planning se asocia a una o varias capas: cada capa representa una rotación de equipo. La rotación puede ser diaria, semanal o sobre un periodo personalizado. Cada miembro del equipo puede establecer sus preferencias de notificación en su perfil: correo inmediato, SMS tras dos minutos, llamada de voz si la incidencia no es reconocida tras cinco minutos. Los escalados se configuran en las Alert Policies: si la persona de guardia en el nivel 1 no responde en la ventana configurada, la alerta sube automáticamente al nivel 2, que puede ser otra persona, un equipo diferente o un canal Slack compartido. Esta cadena de escalado es visible en el historial de cada incidencia, lo que facilita las revisiones post-mortem.

Exponer la página de estado detrás de nginx

OneUptime genera una página de estado pública accesible en un subdominio dedicado, por ejemplo status.tu-dominio.com. Para exponerla limpiamente detrás de nginx como proxy inverso, crea un vhost que redirija las peticiones al puerto interno 3105 usado por el contenedor de la página de estado: proxy_pass http://127.0.0.1:3105;. Activa el header X-Forwarded-Proto para que OneUptime genere enlaces HTTPS correctos en las notificaciones. El certificado TLS se puede obtener con Certbot y el plugin nginx: certbot --nginx -d status.tu-dominio.com. La página de estado permite a clientes y usuarios seguir el estado de los servicios en tiempo real sin acceder a la interfaz de administración.

Solución de problemas — errores comunes al arrancar

El problema más frecuente en el primer arranque es un contenedor PostgreSQL que no responde antes de que el contenedor de aplicación intente conectarse. OneUptime incluye directivas healthcheck en su docker-compose.yml oficial; si usas una versión modificada, asegúrate de que el servicio app tiene una entrada depends_on con condición service_healthy sobre el servicio postgres. Un segundo problema común afecta a las variables SMTP: si los correos de verificación de cuenta no se envían, verifica que SMTP_PORT sea 587 (STARTTLS) y no 465 (SSL directo) si tu proveedor SMTP lo requiere. Para diagnosticar errores silenciosos, observa los logs del worker en tiempo real con docker compose logs -f oneuptime-worker. Por último, si el puerto 443 ya está ocupado por otro servicio, OneUptime arrancará pero no será accesible: modifica el mapeo de puerto en docker-compose.yml o detén el servicio que compite antes de lanzar la pila.

Planificar la migración de Opsgenie a OneUptime antes de abril 2027

Opsgenie permite exportar políticas de alerta, planificadores de guardia e historial de incidencias en formato JSON o CSV desde *Settings → Export*. Estas exportaciones contienen reglas de enrutamiento, miembros de equipo e integraciones activas. La importación en OneUptime no es automática: hay que recrear las políticas manualmente o mediante la API REST de OneUptime usando los datos exportados. Empezar por las integraciones críticas (Prometheus, Grafana, Datadog) y avanzar luego hacia los planificadores de guardia y finalmente las notificaciones secundarias es el enfoque recomendado. Planifica un periodo de funcionamiento en paralelo de al menos dos semanas: ambos sistemas reciben las mismas alertas mientras los equipos validan las nuevas políticas. La fecha límite del 5 de abril de 2027 deja tiempo suficiente para una migración cuidadosa si se inicia antes de enero de 2027. Esperar hasta las últimas semanas expone a los equipos a un corte forzado sin posibilidad de vuelta atrás si falta alguna integración.

Despliega OneUptime en un VPS de ServOrbit

Despliega OneUptime con un clic en un VPS de ServOrbit — plantilla preconfigurada, tus datos en tu poder.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva