
Motor de alertas de código abierto para datos de monitorización de series temporales. Se conecta a Prometheus, VictoriaMetrics, ElasticSearch y otras fuentes de datos. Soporta más de 20 canales de notificación, reducción de ruido de alertas, escalado y automatización de autocuración.
<p align="center">
<a href="https://github.com/ccfos/nightingale">
<img src="https://assets.kitploit.com/production/public/readmes/6912/478fc7d999847e20a15fb5b231650ebbb0d483edba4ce0b313091fac474416f2.png" alt="Nightingale" width="100" />
</a>
</p>
<p align="center">
<b>Alertas de código abierto para tu stack existente</b>
</p>
<p align="center">
<a href="https://github.com/ccfos/nightingale/releases"><img alt="Latest release" src="https://img.shields.io/github/v/release/ccfos/nightingale" /></a>
<a href="https://github.com/ccfos/nightingale/blob/main/LICENSE"><img alt="Apache-2.0 license" src="https://img.shields.io/badge/license-Apache--2.0-blue" /></a>
<a href="https://github.com/ccfos/nightingale/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/ccfos/nightingale" /></a>
<a href="https://hub.docker.com/r/flashcatcloud/nightingale"><img alt="Docker pulls" src="https://img.shields.io/docker/pulls/flashcatcloud/nightingale" /></a>
<a href="https://join.slack.com/t/n9e/shared_invite/zt-480klxytf-P9qm3C1M87kDmRPp_H30Kw"><img alt="Join the Nightingale Slack community" src="https://img.shields.io/badge/Slack-join%20the%20community-brightgreen" /></a>
</p>
<p align="center">
<a href="#quick-start">Inicio rápido</a> ·
<a href="https://n9e.github.io/docs">Documentación</a> ·
<a href="https://n9e.github.io/download">Descarga</a> ·
<a href="https://github.com/ccfos/nightingale/releases">Versiones</a> ·
<a href="#community">Comunidad</a>
</p>
[English](https://github.com/ccfos/nightingale/blob/main/README.md) | [中文](https://github.com/ccfos/nightingale/blob/main/README_zh.md)
Nightingale reúne las reglas de alerta, el procesamiento de eventos y el enrutamiento de notificaciones en un solo lugar. Conecta Prometheus, VictoriaMetrics, Elasticsearch, Loki, ClickHouse y otras fuentes de datos que ya utilizas, y luego entrega las alertas a Slack, PagerDuty y las herramientas existentes de tu equipo.
**Autoalojado · Apache-2.0 · Agente de IA integrado · Servidor MCP**

## ¿Por qué Nightingale?
- **Da a los equipos la propiedad de sus alertas.** Organiza las reglas en grupos de negocio, asigna permisos de equipo y gestiona las reglas y la configuración de notificaciones a través de la UI y la API.
- **Centraliza las alertas dispersas en un solo lugar.** Evalúa reglas contra fuentes de datos de métricas, logs y SQL mientras mantienes tus recolectores, almacenamiento y paneles de Grafana existentes.
- **Entiende qué le ocurrió a una alerta.** Inspecciona los registros de evaluación de reglas, los eventos históricos y los resultados de las notificaciones para rastrear una consulta hasta su entrega.
## Inicio rápido
Con Git y Docker Compose instalados, inicia el stack de evaluación incluido:
```bash
git clone https://github.com/ccfos/nightingale.git
cd nightingale/docker/compose-bridge
docker compose up -d
```
Esto inicia Nightingale, MySQL, Redis, VictoriaMetrics y Categraf. Abre [http://localhost:17000](http://localhost:17000) e inicia sesión con **`root` / `root.2020`**.
Para obtener tu primera alerta:
1. **Conecta una fuente de datos.** Añade tu endpoint compatible con Prometheus existente, o usa `http://victoriametrics:8428` para la instancia de VictoriaMetrics en este stack de Compose.
2. **Crea una regla de alerta.** Elige un grupo de negocio y una fuente de datos, luego introduce una expresión PromQL. Para una prueba que se dispare siempre, usa `vector(1) > 0` y establece la duración en `0`.
3. **Configura la entrega.** Configura un canal de notificación, crea una regla de notificación y adjúntala a la regla de alerta. Verifica que llegue la notificación de prueba, luego desactiva la alerta de prueba.
El stack de Compose usa credenciales de ejemplo y expone los puertos de los servicios para evaluación local. Cambia las credenciales y revisa el acceso a la red antes de desplegar en un host compartido o público. Consulta [opciones de despliegue](#deployment) para otras formas de ejecutar Nightingale.
## Cómo encaja en tu stack
Nightingale consulta tus fuentes de datos, evalúa las condiciones de alerta, procesa eventos y enruta notificaciones. Tus datos existentes permanecen en sus almacenes actuales.
Mantén Grafana para la visualización y tu plataforma de guardia para la programación, escalado y respuesta a incidentes. Nightingale también incluye dashboards para equipos que quieren explorar datos junto a sus alertas.
¿Empiezas sin un stack de monitorización? La configuración independiente incluye un TSDB embebido opcional para despliegues pequeños de instancia única. [Categraf](https://github.com/flashcatcloud/categraf) es un colector opcional para hosts, middleware, bases de datos y dispositivos de red.
## Capacidades clave
| Capacidad | Qué puedes hacer |
| --- | --- |
| Alertas entre fuentes de datos | Usa PromQL, consultas de logs o SQL para definir condiciones. Aplica una regla a múltiples instancias del mismo tipo de fuente de datos. |
| Propiedad por equipos | Agrupa reglas y dashboards por grupo de negocio, asigna permisos de equipo y conecta OIDC, OAuth2, LDAP o CAS para el inicio de sesión. |
| Procesamiento y enrutamiento de eventos | Silencia notificaciones, suscríbete a alertas, enriquece o reescribe etiquetas y enruta eventos a través de pipelines condicionales. |
| Registros de ejecución de alertas | Revisa las consultas y resultados de evaluación, los eventos activos e históricos y los registros de entrega de notificaciones. |
| Integraciones reutilizables | Comienza con configuraciones de colectores, reglas de alerta y dashboards incluidos. Revisa las consultas y umbrales para tu entorno antes de habilitarlos. |
| Evaluación distribuida | Distribuye reglas entre motores de alertas y usa `n9e-edge` para evaluar alertas cerca de fuentes de datos remotas. |
Las integraciones de notificación incluyen **Slack, PagerDuty, Discord, Email, Telegram, Mattermost, Jira y Jira Service Management**, con webhooks HTTP y scripts para destinos personalizados. Consulta la [referencia de canales de notificación nativos](https://github.com/ccfos/nightingale/blob/main/doc/api/notify-channel-native.md) para detalles de configuración.
Para respuestas automatizadas, conecta [ibex](https://github.com/flashcatcloud/ibex) para ejecutar scripts de remediación predefinidos cuando se dispare una alerta.
<a id="-mcp-server"></a>
<a id="ai-assistant-and-mcp"></a>
## Agente de IA integrado
Nightingale incluye un agente de IA que puedes usar directamente en la interfaz web. El agente se ejecuta dentro de Nightingale, llama a herramientas para inspeccionar tus datos de monitorización y configuración, y trabaja en tareas a través de múltiples pasos.
- **Investigar alertas.** Consultar métricas y registros relacionados, inspeccionar los hosts afectados y explicar los hallazgos utilizando los datos que recupera.
- **Solucionar problemas del proceso de alertas.** Inspeccionar reglas, registros de evaluación, configuraciones de silenciamiento, procesamiento de eventos y resultados de notificaciones para descubrir por qué una alerta no se activó o no llegó a su destino.
- **Crear y actualizar la configuración.** Crear reglas de alerta y paneles, generar PromQL y SQL, y configurar reglas de notificación, silenciamientos y suscripciones mediante conversación. Las herramientas integradas para actualizar reglas de alerta y paneles existentes presentan los cambios propuestos para su confirmación.
- **Ampliarlo con Skills.** Las Skills incluidas cubren flujos de trabajo de monitorización habituales. Añade los procedimientos, el material de referencia y los scripts de tu equipo como Skills personalizadas, incluidas las Skills importadas desde Git.
Por ejemplo:
> ¿Por qué se activó esta alerta? Revisa las métricas y los registros del host afectado en torno al momento del desencadenamiento.
> Crea una alerta de uso de memoria para los hosts de producción y notifica a nuestro equipo en Slack.
Configura un endpoint de modelo para empezar. El agente admite API compatibles con OpenAI, Claude, Gemini y modelos autoalojados compatibles. Tú eliges el servicio de modelo y las credenciales; las alertas principales funcionan independientemente del agente.
[Configuración del proveedor de modelos](https://github.com/ccfos/nightingale/blob/main/doc/api/ai-llm-config.md) · [Gestión de Skills](https://github.com/ccfos/nightingale/blob/main/doc/api/ai-skill.md) · [Skills incluidas](https://github.com/ccfos/nightingale/blob/main/aiagent/skill/embedded/builtin)
### Conectar agentes externos
- **MCP** permite que asistentes externos llamen a las herramientas de Nightingale. El servidor se ejecuta dentro de Nightingale en `/mcp`, expone herramientas de lectura de forma predeterminada y aplica los permisos de API existentes del llamador. Las herramientas de escritura requieren configuración explícita. Consulta [Configuración de MCP](https://github.com/ccfos/nightingale/blob/main/doc/api/mcp-server.md).
- **A2A** permite que otro agente delegue una tarea al agente integrado de Nightingale. Consulta [Integración de A2A](https://github.com/ccfos/nightingale/blob/main/doc/api/a2a-integration.md).
## Capturas de pantalla del producto
Gestiona las reglas de alerta por fuente de datos y grupo de negocio:

## Despliegue
| Opción | Empieza aquí |
| --- | --- |
| Evaluación local con Docker Compose | [Stack de Compose incluido](https://github.com/ccfos/nightingale/blob/main/docker/compose-bridge/docker-compose.yaml) |
| Binarios de Linux para amd64 y arm64 | [Descargas de versiones](https://github.com/ccfos/nightingale/releases) y [referencia de configuración](https://github.com/ccfos/nightingale/blob/main/etc/config.toml) |
| Kubernetes | [Chart de Helm e instrucciones de instalación](https://github.com/flashcatcloud/n9e-helm) |
Para producción, fija una versión, configura las credenciales y TLS, haz copias de seguridad de la base de datos de metadatos y monitoriza los fallos de evaluación de reglas y de notificaciones. Varias instancias de Nightingale comparten una base de datos de metadatos y Redis; utiliza almacenamiento de series temporales externo para un despliegue con varias instancias. La TSDB integrada almacena los datos en el disco local de una instancia.
Consulta la [documentación](https://n9e.github.io/docs), la [guía de instalación](https://n9e.github.io/docs/install/overview), las [notas de la versión](https://github.com/ccfos/nightingale/releases) y la [política de seguridad](https://github.com/ccfos/nightingale/blob/main/SECURITY.md) para obtener más orientación y conocer las versiones compatibles.
## Preguntas frecuentes
**¿Necesito sustituir mis recolectores o trasladar mis datos de monitorización?**
No. Nightingale puede consultar tus fuentes de datos existentes directamente. Conserva tus exportadores y recolectores. Categraf y la TSDB integrada están disponibles cuando necesites recolección o almacenamiento local.
**¿Puedo importar reglas de alerta de Prometheus existentes?**
Sí. La importación de reglas admite YAML de Prometheus, incluidas expresiones, duraciones, etiquetas y anotaciones. Revisa las reglas convertidas y vuelve a crear el enrutamiento de notificaciones en Nightingale. La importación no es una conversión completa de `alertmanager.yml`; ejecuta ambos sistemas durante la evaluación antes de cambiar las notificaciones.
**¿Puedo gestionar las reglas mediante Git y CI?**
Las reglas se pueden exportar como JSON y crear o actualizar a través de la API HTTP, de modo que puedes crear un flujo de trabajo en torno a una configuración controlada por versiones. Actualmente, Nightingale no ofrece un historial de revisiones de reglas integrado ni la posibilidad de revertir a revisiones anteriores.
**¿Es obligatoria la IA y a dónde van las solicitudes al modelo?**
El alertado funciona sin IA. El asistente integrado envía prompts y los datos que utiliza a tu endpoint de modelo configurado; puedes usar un modelo alojado en tu propia red. Los clientes MCP externos usan su propia configuración de modelo. Las credenciales del servicio de modelo y los costos de uso son gestionados por ti.
**¿Nightingale proporciona programación de guardias y escalamiento?**
Conecta una plataforma de guardias como PagerDuty para horarios, políticas de escalamiento y respuesta a incidentes. Nightingale se encarga de la evaluación de reglas, el procesamiento de eventos y el enrutamiento de notificaciones.
## Comunidad
Las preguntas, los informes de errores, las mejoras de documentación y las contribuciones son bienvenidos en inglés.
- [GitHub Discussions](https://github.com/ccfos/nightingale/discussions) — haz preguntas y comparte ideas.
- [GitHub Issues](https://github.com/ccfos/nightingale/issues) — informa errores y solicita funcionalidades. Incluye la versión, el método de despliegue y los pasos para reproducir el problema.
- [Slack](https://join.slack.com/t/n9e/shared_invite/zt-480klxytf-P9qm3C1M87kDmRPp_H30Kw) — únete a la comunidad.
- [Informes de adoptantes](https://github.com/ccfos/nightingale/issues/897) — descubre cómo otros usan Nightingale y comparte tu propia experiencia.
- [Política de seguridad](https://github.com/ccfos/nightingale/blob/main/SECURITY.md) — reporta vulnerabilidades de forma privada y consulta el soporte de versiones.
Para cambios sustanciales, abre un issue para discutir el enfoque antes de enviar un pull request. Por favor, sigue el [Código de Conducta](https://github.com/ccfos/nightingale/blob/main/CODE_OF_CONDUCT.md).
Nightingale fue desarrollado originalmente en DiDi y donado a CCF ODC en 2022. Conoce la [gobernanza del proyecto](https://github.com/ccfos/nightingale/blob/main/doc/community-governance.md), los [committers](https://github.com/ccfos/nightingale/blob/main/doc/committers.md) y los [contribuidores](https://github.com/ccfos/nightingale/graphs/contributors).
<a href="https://github.com/ccfos/nightingale/graphs/contributors">
<img alt="Nightingale contributors" src="https://contrib.rocks/image?repo=ccfos/nightingale" />
</a>
## Stargazers a lo largo del tiempo
[](https://star-history.dera.page/#ccfos/nightingale&Date)
## Licencia
Nightingale está disponible bajo la [Apache License 2.0](https://github.com/ccfos/nightingale/blob/main/LICENSE).
<img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=3f539666-22f5-468d-914d-1e344945d3d8" alt="" />
