
nightingale v9.1.0
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.
Especialista em Alertas Open-Source
🎯 O que é o Nightingale
O Nightingale é um projeto de monitoramento open-source focado em alertas. Assim como o Grafana, o Nightingale também se conecta a diversas fontes de dados existentes. No entanto, enquanto o Grafana enfatiza a visualização, o Nightingale dá maior ênfase ao motor de alertas, bem como ao processamento e à distribuição de alarmes.
💡 O Nightingale agora suporta MCP pronto para uso: o próprio servidor expõe um endpoint MCP integrado em
/mcp, permitindo que assistentes de IA gerenciem alertas e explorem dados de observabilidade em linguagem natural, sem a necessidade de implantar um processo extra. Veja Servidor MCP abaixo.O projeto Nightingale foi inicialmente desenvolvido e aberto como open-source pela DiDi.inc. Em 11 de maio de 2022, foi doado ao Comitê de Desenvolvimento de Código Aberto da Federação Chinesa de Computação (CCF ODTC).

💡 Como o Nightingale Funciona
Muitos usuários já coletam métricas e dados de logs. Nesse caso, você pode conectar seus repositórios de armazenamento (como VictoriaMetrics, ElasticSearch etc.) como fontes de dados no Nightingale. Isso permite configurar regras de alerta e regras de notificação dentro do Nightingale, possibilitando a geração e a distribuição de alarmes.

O Nightingale em si não oferece capacidades de coleta de dados de monitoramento. Recomendamos usar o Categraf como coletor, que se integra perfeitamente ao Nightingale.
O Categraf pode coletar dados de monitoramento de sistemas operacionais, dispositivos de rede, diversos middlewares e bancos de dados. Ele envia esses dados ao Nightingale via protocolo Prometheus Remote Write. O Nightingale então armazena os dados de monitoramento em um banco de dados de séries temporais (como Prometheus, VictoriaMetrics etc.) e fornece capacidades de alerta e visualização.
Para determinados data centers de borda com conectividade de rede ruim com o servidor central do Nightingale, oferecemos um modo de implantação distribuída para o motor de alertas. Nesse modo, mesmo que a rede seja desconectada, a funcionalidade de alertas permanece inalterada.

No diagrama acima, o Data Center A possui boa conectividade de rede com o data center central, por isso usa o processo do Nightingale no data center central como motor de alertas. O Data Center B possui conectividade de rede ruim com o data center central, por isso implanta
n9e-edgecomo motor de alertas para lidar com os alertas de suas próprias fontes de dados.
🤖 Servidor MCP
O Nightingale possui um Servidor MCP integrado: o próprio processo n9e atende ao Model Context Protocol em /mcp por meio do transporte HTTP Streamable. Qualquer cliente MCP — Claude Code / Claude Desktop, Cursor, conectores ChatGPT ou seu próprio agente — pode consultar e gerenciar o Nightingale em linguagem natural, sem a necessidade de implantar um processo extra.
Conectando um cliente
O endpoint é http(s)://<nightingale>:17000/mcp — um caminho raiz, não sob /api/n9e. Autentique-se com um token de acesso pessoal (criado na interface web em Perfil → Gerenciamento de Tokens) enviado no cabeçalho X-User-Token:
{
"mcpServers": {
"nightingale": {
"type": "http",
"url": "http://127.0.0.1:17000/mcp",
"headers": { "X-User-Token": "<your-token>" }
}
}
}
Cada chamada de ferramenta é despachada para a própria API HTTP do Nightingale dentro do processo, carregando seu token, de modo que as permissões de RBAC e de grupos de negócios se aplicam exatamente como para aquele usuário na interface — um cliente nunca pode acessar algo que o dono do token não possa.
Ferramentas
74 ferramentas granulares (42 de leitura, 32 de escrita) em 13 conjuntos de ferramentas: alerts, targets, datasource, mutes, busi_groups, notify_rules, alert_subscribes, event_pipelines, users, metrics, logs, dashboards, roles.
O endpoint é somente leitura por padrão — as ferramentas de escrita (criar / atualizar / excluir) são uma adesão explícita via configuração.
Configuração
Tudo abaixo é opcional; /mcp já está habilitado nativamente (etc/config.toml):
[HTTP.A2A]
# DisableMCP = true # turn off /mcp (Disable = true turns off /a2a as well)
# MCPToolsets = ["alerts", "dashboards"] # restrict the exposed toolsets; empty = all of them
# MCPEnableWriteTools = true # also register the write tools; read-only by default
/mcp reutiliza [HTTP.TokenAuth] para autenticação, portanto mantenha isso habilitado.
OAuth 2.1 em vez de um token
/mcp também aceita tokens de acesso OAuth via Authorization: Bearer, em duas variantes:
- O Nightingale atua como o próprio servidor de autorização, com registro dinâmico de clientes RFC 7591 e PKCE, de modo que clientes hospedados como Claude ou ChatGPT possam se conectar sem pré-registro — veja doc/api/mcp-oauth-as.md.
- O Nightingale atua como servidor de recursos para seu IdP corporativo existente (Keycloak, Entra ID, Okta, Auth0), mapeando cada token para seu usuário local, de modo que permissões e auditoria permaneçam por pessoa — veja doc/api/a2a-oauth-rs.md.
Junto com o MCP, o mesmo processo expõe um endpoint A2A em /a2a que encapsula o assistente de IA integrado do Nightingale para integração agente-a-agente (doc/api/a2a.md). Se você preferir executar o MCP como um processo separado contra um Nightingale remoto, o n9e-mcp-server autônomo fornece as mesmas ferramentas.
🔕 Redução de Ruído de Alertas, Escalonamento e Colaboração
O Nightingale foca em ser um motor de alertas, responsável por gerar alarmes e distribuí-los com flexibilidade com base em regras. Ele suporta 20 mídias de notificação integradas (como chamadas telefônicas, SMS, e-mail, DingTalk, Slack etc.).
Se você tiver requisitos mais avançados, como:
- Consolidar eventos de múltiplos sistemas de monitoramento em uma única plataforma para redução unificada de ruído, tratamento de respostas e análise de dados.
- Suportar escalonamento de pessoal, praticar a cultura de plantão (on-call) e oferecer suporte a escalonamento de alertas (para evitar alertas perdidos) e tratamento colaborativo.
Então o Nightingale não é adequado. Recomenda-se escolher produtos de plantão como PagerDuty e FlashDuty. Esses produtos são simples e fáceis de usar.
🗨️ Canais de Comunicação
- Reportar Bugs: É altamente recomendável enviar issues através do rastreador de issues do Nightingale no GitHub.
- Documentação: Para mais informações, recomendamos navegar pelo site de documentação do Nightingale.
🔑 Principais Recursos

- O Nightingale suporta regras de alerta, regras de silenciamento, regras de assinatura e regras de notificação. Ele suporta nativamente 20 tipos de mídia de notificação e permite a personalização de modelos de mensagem.
- Suporta pipelines de eventos para processamento de alarmes, facilitando a integração automatizada com sistemas internos. Por exemplo, pode anexar metadados a alarmes ou realizar relabeling em eventos.
- Introduz o conceito de grupos de negócios e um sistema de permissões para gerenciar diversas regras de forma categorizada.
- Muitos bancos de dados e middlewares possuem regras de alerta integradas que podem ser importadas e usadas diretamente. Também suporta importação direta de regras de alerta do Prometheus.
- Suporta auto-cura de alertas, que dispara automaticamente um script para executar lógica predefinida após a geração de um alarme — como limpar espaço em disco ou capturar o estado atual do sistema.

- O Nightingale arquiva alarmes históricos e suporta consulta e estatísticas multidimensionais.
- Suporta agrupamento flexível por agregação, permitindo uma visão clara da distribuição de alarmes em toda a empresa.

- O Nightingale possui descrições de métricas, dashboards e regras de alerta integrados para sistemas operacionais, middlewares e bancos de dados comuns, contribuídos pela comunidade com qualidade variada.
- Recebe dados diretamente por meio de vários protocolos, como Remote Write, OpenTSDB, Datadog e Falcon, integrando-se a diversos Agentes.
- Suporta fontes de dados como Prometheus, ElasticSearch, Loki, ClickHouse, MySQL, Postgres, permitindo alertas baseados em dados dessas fontes.
- O Nightingale pode ser facilmente incorporado a sistemas empresariais internos (ex.: Grafana, CMDB) e ainda suporta a configuração da visibilidade de menus para esses sistemas incorporados.

- O Nightingale suporta funcionalidade de dashboards, incluindo tipos comuns de gráficos, e vem com dashboards pré-construídos. A imagem acima é uma captura de tela de um desses dashboards.
- Se você já está acostumado com o Grafana, é recomendável continuar usando o Grafana para visualização, pois o Grafana tem maior especialização nessa área.
- Para dados de monitoramento relacionados a máquinas coletados pelo Categraf, é aconselhável usar os dashboards integrados do Nightingale para visualização. Isso porque a nomenclatura de métricas do Categraf segue a convenção do Telegraf, que difere da do Node Exporter.
- Devido ao conceito de grupos de negócios do Nightingale (onde máquinas podem pertencer a grupos diferentes), pode haver cenários em que você deseja visualizar apenas as máquinas do grupo de negócios atual no dashboard. Assim, os dashboards do Nightingale podem ser vinculados a grupos de negócios para filtragem interativa.
🌟 Stargazers ao longo do tempo
🔥 Usuários

🤝 Construção Colaborativa da Comunidade
- ❇️ Por favor, leia o Projeto Open-Source Nightingale e o Rascunho de Governança da Comunidade. Recebemos sinceramente todos os usuários, desenvolvedores, empresas e organizações para usar o Nightingale, relatar bugs ativamente, enviar solicitações de recursos, compartilhar melhores práticas e ajudar a construir uma comunidade open-source profissional e ativa.
- ❤️ Colaboradores do Nightingale
