
Motor de alerta de código aberto para dados de monitoramento de séries temporais. Conecta-se ao Prometheus, VictoriaMetrics, ElasticSearch e outras fontes de dados. Suporta mais de 20 canais de notificação, redução de ruído de alertas, escalonamento e automação de autocorreção.
<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 aberto para sua 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">Início rápido</a> ·
<a href="https://n9e.github.io/docs">Documentação</a> ·
<a href="https://n9e.github.io/download">Download</a> ·
<a href="https://github.com/ccfos/nightingale/releases">Releases</a> ·
<a href="#community">Comunidade</a>
</p>
[English](https://github.com/ccfos/nightingale/blob/main/README.md) | [中文](https://github.com/ccfos/nightingale/blob/main/README_zh.md)
O Nightingale reúne regras de alerta, processamento de eventos e roteamento de notificações em um só lugar. Conecte Prometheus, VictoriaMetrics, Elasticsearch, Loki, ClickHouse e outras fontes de dados que você já utiliza, e então entregue alertas ao Slack, PagerDuty e às ferramentas existentes da sua equipe.
**Auto-hospedado · Apache-2.0 · Agente de IA integrado · Servidor MCP**

## Por que o Nightingale?
- **Dê às equipes a propriedade de seus alertas.** Organize regras em grupos de negócio, atribua permissões de equipe e gerencie regras e configurações de notificação pela UI e pela API.
- **Centralize alertas dispersos em um só lugar.** Avalie regras em fontes de dados de métricas, logs e SQL, mantendo seus coletores, armazenamento e dashboards do Grafana existentes.
- **Entenda o que aconteceu com um alerta.** Inspecione registros de avaliação de regras, eventos históricos e resultados de notificação para rastrear uma consulta até a entrega.
## Início rápido
Com Git e Docker Compose instalados, inicie a stack de avaliação incluída:
```bash
git clone https://github.com/ccfos/nightingale.git
cd nightingale/docker/compose-bridge
docker compose up -d
```
Isso inicia o Nightingale, MySQL, Redis, VictoriaMetrics e Categraf. Abra [http://localhost:17000](http://localhost:17000) e faça login com **`root` / `root.2020`**.
Para obter seu primeiro alerta:
1. **Conecte uma fonte de dados.** Adicione seu endpoint compatível com Prometheus existente ou use `http://victoriametrics:8428` para a instância do VictoriaMetrics neste stack do Compose.
2. **Crie uma regra de alerta.** Escolha um grupo de negócios e uma fonte de dados, depois insira uma expressão PromQL. Para um teste que dispara sempre, use `vector(1) > 0` e defina a duração como `0`.
3. **Configure a entrega.** Configure um canal de notificação, crie uma regra de notificação e anexe-a à regra de alerta. Verifique se a notificação de teste chega e, em seguida, desative o alerta de teste.
O stack do Compose usa credenciais de exemplo e expõe portas de serviço para avaliação local. Altere as credenciais e revise o acesso à rede antes de implantar em um host compartilhado ou público. Consulte [opções de implantação](#deployment) para outras formas de executar o Nightingale.
## Como ele se encaixa no seu stack
O Nightingale consulta suas fontes de dados, avalia condições de alerta, processa eventos e encaminha notificações. Seus dados existentes permanecem em seus armazenamentos atuais.
Mantenha o Grafana para visualização e sua plataforma de on-call para agendamento, escalonamento e resposta a incidentes. O Nightingale também inclui dashboards para equipes que desejam explorar dados junto com seus alertas.
Começando sem um stack de monitoramento? A configuração standalone inclui um TSDB embutido opcional para implantações pequenas de instância única. O [Categraf](https://github.com/flashcatcloud/categraf) é um coletor opcional para hosts, middleware, bancos de dados e dispositivos de rede.
## Principais capacidades
| Capacidade | O que você pode fazer |
| --- | --- |
| Alertas entre fontes de dados | Use PromQL, consultas de log ou SQL para definir condições. Aplique uma regra a várias instâncias do mesmo tipo de fonte de dados. |
| Propriedade por equipe | Agrupe regras e dashboards por grupo de negócios, atribua permissões de equipe e conecte OIDC, OAuth2, LDAP ou CAS para login. |
| Processamento e roteamento de eventos | Silencie notificações, inscreva-se em alertas, enriqueça ou reescreva labels e encaminhe eventos por pipelines condicionais. |
| Registros de execução de alertas | Revise consultas e resultados de avaliação, eventos ativos e históricos e registros de entrega de notificações. |
| Integrações reutilizáveis | Comece com configurações de coletor, regras de alerta e dashboards incluídos. Revise consultas e limites para seu ambiente antes de ativá-los. |
| Avaliação distribuída | Distribua regras entre motores de alerta e use `n9e-edge` para avaliar alertas próximos a fontes de dados remotas. |
As integrações de notificação incluem **Slack, PagerDuty, Discord, Email, Telegram, Mattermost, Jira e Jira Service Management**, com webhooks HTTP e scripts para destinos personalizados. Consulte a [referência de canais de notificação nativos](https://github.com/ccfos/nightingale/blob/main/doc/api/notify-channel-native.md) para detalhes de configuração.
Para respostas automatizadas, conecte o [ibex](https://github.com/flashcatcloud/ibex) para executar scripts de remediação predefinidos quando um alerta disparar.
<a id="-mcp-server"></a>
<a id="ai-assistant-and-mcp"></a>
## Agente de IA integrado
O Nightingale inclui um agente de IA que você pode usar diretamente na interface web. O agente é executado dentro do Nightingale, chama ferramentas para inspecionar seus dados de monitoramento e configuração e executa tarefas em várias etapas.
- **Investigar alertas.** Consulte métricas e logs relacionados, inspecione os hosts afetados e explique os resultados usando os dados recuperados.
- **Solucionar problemas no processo de alerta.** Inspecione regras, logs de avaliação, configurações de silenciamento, processamento de eventos e resultados de notificação para descobrir por que um alerta não disparou ou não chegou ao destino.
- **Criar e atualizar configurações.** Crie regras de alerta e dashboards, gere PromQL e SQL e configure regras de notificação, silenciamentos e assinaturas por meio de conversa. As ferramentas integradas para atualizar regras de alerta e dashboards existentes apresentam as alterações propostas para confirmação.
- **Amplie com Skills.** As Skills incluídas cobrem fluxos de trabalho de monitoramento comuns. Adicione os procedimentos, materiais de referência e scripts da sua equipe como Skills personalizadas, incluindo Skills importadas do Git.
Por exemplo:
> Por que este alerta disparou? Verifique as métricas e os logs do host afetado no momento do disparo.
> Crie um alerta de uso de memória para os hosts de produção e notifique nossa equipe no Slack.
Configure um endpoint de modelo para começar. O agente oferece suporte a APIs compatíveis com OpenAI, Claude, Gemini e modelos auto-hospedados compatíveis. Você escolhe o serviço de modelo e as credenciais; o alerta principal funciona independentemente do agente.
[Configuração do provedor de modelo](https://github.com/ccfos/nightingale/blob/main/doc/api/ai-llm-config.md) · [Gerenciamento de Skills](https://github.com/ccfos/nightingale/blob/main/doc/api/ai-skill.md) · [Skills incluídas](https://github.com/ccfos/nightingale/blob/main/aiagent/skill/embedded/builtin)
### Conectar agentes externos
- **MCP** permite que assistentes externos chamem as ferramentas do Nightingale. O servidor é executado dentro do Nightingale em `/mcp`, expõe ferramentas de leitura por padrão e aplica as permissões de API existentes do chamador. Ferramentas de escrita exigem configuração explícita. Consulte [Configuração do MCP](https://github.com/ccfos/nightingale/blob/main/doc/api/mcp-server.md).
- **A2A** permite que outro agente delegue uma tarefa ao agente integrado do Nightingale. Consulte [Integração A2A](https://github.com/ccfos/nightingale/blob/main/doc/api/a2a-integration.md).
## Capturas de tela do produto
Gerencie regras de alerta por fonte de dados e grupo de negócios:

## Implantação
| Opção | Comece aqui |
| --- | --- |
| Avaliação local com Docker Compose | [Stack Compose incluída](https://github.com/ccfos/nightingale/blob/main/docker/compose-bridge/docker-compose.yaml) |
| Binários Linux para amd64 e arm64 | [Downloads de versões](https://github.com/ccfos/nightingale/releases) e [referência de configuração](https://github.com/ccfos/nightingale/blob/main/etc/config.toml) |
| Kubernetes | [Helm chart e instruções de instalação](https://github.com/flashcatcloud/n9e-helm) |
Para produção, fixe uma versão, configure credenciais e TLS, faça backup do banco de dados de metadados e monitore falhas de avaliação de regras e de notificação. Várias instâncias do Nightingale compartilham um banco de dados de metadados e o Redis; use armazenamento de séries temporais externo para uma implantação com várias instâncias. O TSDB integrado armazena dados no disco local de uma instância.
Consulte a [documentação](https://n9e.github.io/docs), o [guia de instalação](https://n9e.github.io/docs/install/overview), as [notas de versão](https://github.com/ccfos/nightingale/releases) e a [política de segurança](https://github.com/ccfos/nightingale/blob/main/SECURITY.md) para obter mais orientações e versões suportadas.
## Perguntas frequentes
**Preciso substituir meus coletores ou mover meus dados de monitoramento?**
Não. O Nightingale pode consultar suas fontes de dados existentes diretamente. Mantenha seus exporters e coletores. O Categraf e o TSDB integrado estão disponíveis quando você precisar de coleta ou armazenamento local.
**Posso importar regras de alerta existentes do Prometheus?**
Sim. A importação de regras oferece suporte a YAML do Prometheus, incluindo expressões, durações, rótulos e anotações. Revise as regras convertidas e reconstrua o roteamento de notificações no Nightingale. A importação não é uma conversão completa de `alertmanager.yml`; execute ambos os sistemas durante a avaliação antes de migrar as notificações.
**Posso gerenciar regras por meio do Git e CI?**
As regras podem ser exportadas como JSON e criadas ou atualizadas por meio da API HTTP, para que você possa criar um fluxo de trabalho em torno de configuração versionada. Atualmente, o Nightingale não oferece histórico de revisões de regras integrado nem reversão para revisões anteriores.
**A IA é obrigatória e para onde vão as solicitações de modelo?**
O alerta funciona sem IA. O assistente integrado envia prompts e os dados que utiliza para o endpoint de modelo configurado; você pode usar um modelo hospedado na sua própria rede. Clientes MCP externos usam suas próprias configurações de modelo. As credenciais do serviço de modelo e os custos de uso são gerenciados por você.
**O Nightingale fornece agendamento de plantão e escalonamento?**
Conecte uma plataforma de plantão como o PagerDuty para agendamentos, políticas de escalonamento e resposta a incidentes. O Nightingale cuida da avaliação de regras, processamento de eventos e roteamento de notificações.
## Comunidade
Perguntas, relatos de bugs, melhorias na documentação e contribuições são bem-vindos em inglês.
- [GitHub Discussions](https://github.com/ccfos/nightingale/discussions) — faça perguntas e compartilhe ideias.
- [GitHub Issues](https://github.com/ccfos/nightingale/issues) — relate bugs e solicite recursos. Inclua a versão, o método de implantação e os passos para reproduzir.
- [Slack](https://join.slack.com/t/n9e/shared_invite/zt-480klxytf-P9qm3C1M87kDmRPp_H30Kw) — junte-se à comunidade.
- [Relatos de adotantes](https://github.com/ccfos/nightingale/issues/897) — veja como outros usam o Nightingale e compartilhe sua própria experiência.
- [Política de segurança](https://github.com/ccfos/nightingale/blob/main/SECURITY.md) — relate vulnerabilidades de forma privada e verifique o suporte às versões.
Para mudanças substanciais, abra uma issue para discutir a abordagem antes de enviar um pull request. Por favor, siga o [Código de Conduta](https://github.com/ccfos/nightingale/blob/main/CODE_OF_CONDUCT.md).
O Nightingale foi originalmente desenvolvido na DiDi e doado ao CCF ODC em 2022. Saiba mais sobre a [governança do projeto](https://github.com/ccfos/nightingale/blob/main/doc/community-governance.md), os [committers](https://github.com/ccfos/nightingale/blob/main/doc/committers.md) e os [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 ao longo do tempo
[](https://star-history.dera.page/#ccfos/nightingale&Date)
## Licença
O Nightingale está disponível sob a [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="" />
