Назад к обновлениям
New releaseAug 6, 2026

nightingale v9.1.0

Движок оповещений с открытым исходным кодом для мониторинга временных рядов. Подключается к Prometheus, VictoriaMetrics, ElasticSearch и другим источникам данных. Поддерживает 20+ каналов уведомлений, снижение шума оповещений, эскалацию и автоматическое восстановление.

Поделиться

nightingale - cloud native monitoring

Эксперт по оповещению с открытым исходным кодом

Docs Docker pulls GitHub contributors GitHub Repo stars GitHub forks
GitHub Repo issues GitHub Repo issues closed GitHub latest release License GitHub contributors

English | 中文

🎯 Что такое Nightingale

Nightingale — это проект мониторинга с открытым исходным кодом, который фокусируется на оповещении. Как и Grafana, Nightingale также подключается к различным существующим источникам данных. Однако, если Grafana делает упор на визуализацию, Nightingale уделяет больше внимания механизму оповещения, а также обработке и распределению аварийных сигналов.

💡 Nightingale теперь поддерживает MCP «из коробки»: сам сервер предоставляет встроенную конечную точку MCP по адресу /mcp, поэтому ИИ-ассистенты могут управлять оповещением и исследовать данные наблюдения на естественном языке без развертывания дополнительных процессов. См. MCP Server ниже.

Проект Nightingale изначально был разработан и открыт компанией DiDi.inc. 11 мая 2022 года он был передан Комитету по разработке открытого программного обеспечения Компьютерного общества Китая (CCF ODTC).

💡 Как работает Nightingale

Многие пользователи уже собирают метрики и данные журналов. В этом случае вы можете подключить свои хранилища данных (например, VictoriaMetrics, ElasticSearch и т. д.) как источники данных в Nightingale. Это позволяет настраивать правила оповещения и правила уведомлений в Nightingale, обеспечивая генерацию и распространение аварийных сигналов.

Продуктовая архитектура Nightingale

Сам Nightingale не предоставляет возможности сбора данных мониторинга. Мы рекомендуем использовать Categraf в качестве коллектора, который легко интегрируется с Nightingale.

Categraf может собирать данные мониторинга с операционных систем, сетевых устройств, различных middleware и баз данных. Он отправляет эти данные в Nightingale по протоколу Prometheus Remote Write. Затем Nightingale сохраняет данные мониторинга в базе данных временных рядов (например, Prometheus, VictoriaMetrics и т. д.) и предоставляет возможности оповещения и визуализации.

Для некоторых периферийных центров обработки данных с плохим сетевым подключением к центральному серверу Nightingale мы предлагаем распределенный режим развертывания механизма оповещения. В этом режиме, даже если сеть отключена, функциональность оповещения остается работоспособной.

Режим периферийного развертывания

На приведенной выше диаграмме у центра обработки данных A хорошая сеть с центральным центром обработки данных, поэтому он использует процесс Nightingale в центральном центре обработки данных в качестве механизма оповещения. У центра обработки данных B плохая сеть с центральным центром обработки данных, поэтому он развертывает n9e-edge в качестве механизма оповещения для обработки оповещений для своих собственных источников данных.

🤖 MCP Server

В Nightingale есть встроенный MCP Server: сам процесс n9e обслуживает Model Context Protocol по адресу /mcp через транспорт Streamable HTTP. Любой MCP-клиент — Claude Code / Claude Desktop, Cursor, коннекторы ChatGPT или ваш собственный агент — может запрашивать и управлять Nightingale на естественном языке без развертывания дополнительных процессов.

Подключение клиента

Конечная точка: http(s)://<nightingale>:17000/mcp — корневой путь, а не под /api/n9e. Аутентифицируйтесь с помощью персонального токена доступа (создайте его в веб-интерфейсе в разделе Profile → Token Management), передаваемого в заголовке X-User-Token:

{
  "mcpServers": {
    "nightingale": {
      "type": "http",
      "url": "http://127.0.0.1:17000/mcp",
      "headers": { "X-User-Token": "<your-token>" }
    }
  }
}

Каждый вызов инструмента направляется на собственный HTTP API Nightingale внутри процесса с вашим токеном, поэтому RBAC и разрешения бизнес-групп применяются точно так же, как и для этого пользователя в интерфейсе — клиент никогда не сможет получить доступ к тому, к чему не имеет доступа владелец его токена.

Инструменты

74 детализированных инструмента (42 на чтение, 32 на запись) в 13 наборах инструментов: alerts, targets, datasource, mutes, busi_groups, notify_rules, alert_subscribes, event_pipelines, users, metrics, logs, dashboards, roles.

По умолчанию конечная точка доступна только для чтения — инструменты записи (создание / обновление / удаление) включаются явно через конфигурацию.

Конфигурация

Все, что указано ниже, является необязательным; /mcp включен «из коробки» (etc/config.toml):

[HTTP.A2A]
# DisableMCP = true                        # отключает /mcp (Disable = true также отключает /a2a)
# MCPToolsets = ["alerts", "dashboards"]   # ограничивает доступные наборы инструментов; пусто = все
# MCPEnableWriteTools = true               # также регистрирует инструменты записи; по умолчанию только чтение

/mcp повторно использует [HTTP.TokenAuth] для аутентификации, поэтому оставьте его включенным.

OAuth 2.1 вместо токена

/mcp также принимает OAuth-токены доступа через Authorization: Bearer, в двух вариантах:

  • Nightingale сам выступает в роли сервера авторизации, с динамической регистрацией клиентов RFC 7591 и PKCE, поэтому размещенные клиенты, такие как Claude или ChatGPT, могут подключаться без предварительной регистрации — см. doc/api/mcp-oauth-as.md.
  • Nightingale выступает в роли ресурсного сервера для вашего корпоративного IdP (Keycloak, Entra ID, Okta, Auth0), сопоставляя каждый токен с локальным пользователем, чтобы разрешения и аудит оставались персональными — см. doc/api/a2a-oauth-rs.md.

Категории