
Движок оповещений с открытым исходным кодом для мониторинга временных рядов. Подключается к Prometheus, VictoriaMetrics, ElasticSearch и другим источникам данных. Поддерживает 20+ каналов уведомлений, снижение шума оповещений, эскалацию и автоматическое восстановление.
<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>Открытое оповещение для вашего существующего стека</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">Быстрый старт</a> ·
<a href="https://n9e.github.io/docs">Документация</a> ·
<a href="https://n9e.github.io/download">Скачать</a> ·
<a href="https://github.com/ccfos/nightingale/releases">Релизы</a> ·
<a href="#community">Сообщество</a>
</p>
[English](https://github.com/ccfos/nightingale/blob/main/README.md) | [中文](https://github.com/ccfos/nightingale/blob/main/README_zh.md)
Nightingale объединяет правила оповещений, обработку событий и маршрутизацию уведомлений в одном месте. Подключите Prometheus, VictoriaMetrics, Elasticsearch, Loki, ClickHouse и другие источники данных, которые вы уже используете, а затем доставляйте оповещения в Slack, PagerDuty и существующие инструменты вашей команды.
**Self-hosted · Apache-2.0 · Встроенный AI-агент · MCP-сервер**

## Почему Nightingale?
- **Дайте командам контроль над их оповещениями.** Организуйте правила в бизнес-группы, назначайте права командам и управляйте правилами и настройками уведомлений через UI и API.
- **Соберите разрозненные оповещения в одном месте.** Вычисляйте правила по метрикам, логам и SQL-источникам данных, сохраняя существующие коллекторы, хранилища и дашборды Grafana.
- **Поймите, что произошло с оповещением.** Изучайте записи вычисления правил, исторические события и результаты уведомлений, чтобы проследить путь запроса вплоть до доставки.
## Быстрый старт
Если установлены Git и Docker Compose, запустите входящий в комплект стек для оценки:
```bash
git clone https://github.com/ccfos/nightingale.git
cd nightingale/docker/compose-bridge
docker compose up -d
```
Это запускает Nightingale, MySQL, Redis, VictoriaMetrics и Categraf. Откройте [http://localhost:17000](http://localhost:17000) и войдите с учётными данными **`root` / `root.2020`**.
Чтобы получить первое оповещение:
1. **Подключите источник данных.** Добавьте существующую конечную точку, совместимую с Prometheus, или используйте `http://victoriametrics:8428` для экземпляра VictoriaMetrics в этом стеке Compose.
2. **Создайте правило оповещения.** Выберите бизнес-группу и источник данных, затем введите выражение PromQL. Для теста, срабатывающего всегда, используйте `vector(1) > 0` и установите длительность `0`.
3. **Настройте доставку.** Настройте канал уведомлений, создайте правило уведомления и привяжите его к правилу оповещения. Убедитесь, что тестовое уведомление приходит, затем отключите тестовое оповещение.
Стек Compose использует примерные учётные данные и открывает порты сервисов для локальной оценки. Измените учётные данные и проверьте сетевой доступ перед развёртыванием на общем или публичном хосте. См. [варианты развёртывания](#deployment) для других способов запуска Nightingale.
## Как это встраивается в ваш стек
Nightingale опрашивает ваши источники данных, вычисляет условия оповещений, обрабатывает события и маршрутизирует уведомления. Ваши существующие данные остаются в текущих хранилищах.
Оставьте Grafana для визуализации, а вашу платформу дежурств — для планирования, эскалации и реагирования на инциденты. Nightingale также включает дашборды для команд, которые хотят исследовать данные вместе с оповещениями.
Начинаете без стека мониторинга? Автономная конфигурация включает опциональную встроенную TSDB для небольших развёртываний на одном экземпляре. [Categraf](https://github.com/flashcatcloud/categraf) — опциональный коллектор для хостов, промежуточного ПО, баз данных и сетевых устройств.
## Ключевые возможности
| Возможность | Что вы можете делать |
| --- | --- |
| Оповещения по источникам данных | Используйте PromQL, запросы к логам или SQL для определения условий. Применяйте правило к нескольким экземплярам одного типа источника данных. |
| Командное владение | Группируйте правила и дашборды по бизнес-группам, назначайте права командам и подключайте OIDC, OAuth2, LDAP или CAS для входа. |
| Обработка и маршрутизация событий | Отключайте уведомления, подписывайтесь на оповещения, обогащайте или переписывайте метки и маршрутизируйте события через условные конвейеры. |
| Записи выполнения оповещений | Просматривайте запросы и результаты вычислений, активные и исторические события, а также записи о доставке уведомлений. |
| Переиспользуемые интеграции | Начните с поставляемых конфигураций коллекторов, правил оповещений и дашбордов. Проверьте запросы и пороги для вашей среды перед их включением. |
| Распределённое вычисление | Распределяйте правила между движками оповещений и используйте `n9e-edge` для вычисления оповещений рядом с удалёнными источниками данных. |
Интеграции уведомлений включают **Slack, PagerDuty, Discord, Email, Telegram, Mattermost, Jira и Jira Service Management**, а также HTTP-вебхуки и скрипты для пользовательских назначений. См. [справочник по встроенным каналам уведомлений](https://github.com/ccfos/nightingale/blob/main/doc/api/notify-channel-native.md) для деталей конфигурации.
Для автоматизированного реагирования подключите [ibex](https://github.com/flashcatcloud/ibex), чтобы запускать предопределённые скрипты исправления при срабатывании оповещения.
<a id="-mcp-server"></a>
<a id="ai-assistant-and-mcp"></a>
## Встроенный AI-агент
Nightingale включает AI-агента, которого можно использовать прямо в веб-интерфейсе. Агент работает внутри Nightingale, вызывает инструменты для проверки ваших данных мониторинга и конфигурации и выполняет задачи за несколько шагов.
- **Исследуйте алерты.** Запрашивайте связанные метрики и логи, изучайте затронутые хосты и объясняйте результаты на основе полученных данных.
- **Устраняйте неполадки в процессе алертинга.** Изучайте правила, журналы вычислений, настройки отключения уведомлений, обработку событий и результаты уведомлений, чтобы выяснить, почему алерт не сработал или не дошёл до адресата.
- **Создавайте и обновляйте конфигурацию.** Создавайте правила алертинга и дашборды, генерируйте PromQL и SQL, настраивайте правила уведомлений, отключения уведомлений и подписки в ходе диалога. Встроенные инструменты для обновления существующих правил алертинга и дашбордов предлагают изменения для подтверждения.
- **Расширяйте возможности с помощью Skills.** Встроенные Skills охватывают типовые рабочие процессы мониторинга. Добавляйте процедуры вашей команды, справочные материалы и скрипты в виде пользовательских Skills, включая Skills, импортированные из Git.
Например:
> Почему сработал этот алерт? Проверь метрики и логи затронутого хоста в окрестности момента срабатывания.
> Создай алерт на использование памяти для production-хостов и уведоми нашу команду в Slack.
Для начала настройте эндпоинт модели. Агент поддерживает OpenAI-совместимые API, Claude, Gemini и совместимые self-hosted модели. Вы выбираете сервис модели и учётные данные; базовый алертинг работает независимо от агента.
[Настройка провайдера модели](https://github.com/ccfos/nightingale/blob/main/doc/api/ai-llm-config.md) · [Управление Skills](https://github.com/ccfos/nightingale/blob/main/doc/api/ai-skill.md) · [Встроенные Skills](https://github.com/ccfos/nightingale/blob/main/aiagent/skill/embedded/builtin)
### Подключение внешних агентов
- **MCP** позволяет внешним ассистентам вызывать инструменты Nightingale. Сервер работает внутри Nightingale по пути `/mcp`, по умолчанию предоставляет инструменты чтения и применяет существующие права API вызывающей стороны. Инструменты записи требуют явной настройки. См. [Настройка MCP](https://github.com/ccfos/nightingale/blob/main/doc/api/mcp-server.md).
- **A2A** позволяет другому агенту делегировать задачу встроенному агенту Nightingale. См. [Интеграция A2A](https://github.com/ccfos/nightingale/blob/main/doc/api/a2a-integration.md).
## Скриншоты продукта
Управление правилами алертинга по источникам данных и бизнес-группам:

## Развёртывание
| Вариант | С чего начать |
| --- | --- |
| Локальная оценка с помощью Docker Compose | [Входящий в комплект стек Compose](https://github.com/ccfos/nightingale/blob/main/docker/compose-bridge/docker-compose.yaml) |
| Linux-бинарники для amd64 и arm64 | [Загрузки релизов](https://github.com/ccfos/nightingale/releases) и [справочник по конфигурации](https://github.com/ccfos/nightingale/blob/main/etc/config.toml) |
| Kubernetes | [Helm-чарт и инструкции по установке](https://github.com/flashcatcloud/n9e-helm) |
Для production зафиксируйте версию релиза, настройте учётные данные и TLS, создайте резервную копию базы метаданных и отслеживайте сбои вычисления правил и отправки уведомлений. Несколько экземпляров Nightingale используют общую базу метаданных и Redis; для развёртывания с несколькими экземплярами используйте внешнее хранилище временных рядов. Встроенная TSDB хранит данные на локальном диске одного экземпляра.
Дополнительные рекомендации и сведения о поддерживаемых версиях см. в [документации](https://n9e.github.io/docs), [руководстве по установке](https://n9e.github.io/docs/install/overview), [примечаниях к релизам](https://github.com/ccfos/nightingale/releases) и [политике безопасности](https://github.com/ccfos/nightingale/blob/main/SECURITY.md).
## FAQ
**Нужно ли заменять мои коллекторы или переносить данные мониторинга?**
Нет. Nightingale может напрямую запрашивать ваши существующие источники данных. Сохраните свои экспортёры и коллекторы. Categraf и встроенная TSDB доступны, когда вам нужен сбор данных или локальное хранилище.
**Можно ли импортировать существующие правила алертинга Prometheus?**
Да. Импорт правил поддерживает Prometheus YAML, включая выражения, длительности, метки и аннотации. Проверьте преобразованные правила и заново настройте маршрутизацию уведомлений в Nightingale. Импорт не является полным преобразованием `alertmanager.yml`; во время оценки запускайте обе системы, прежде чем переключать уведомления.
**Можно ли управлять правилами через Git и CI?**
Правила можно экспортировать в JSON и создавать или обновлять через HTTP API, поэтому вы можете построить рабочий процесс на основе конфигурации под контролем версий. В настоящее время Nightingale не предоставляет встроенную историю ревизий правил или откат к предыдущим ревизиям.
**Обязателен ли AI и куда уходят запросы к модели?**
Оповещения работают без ИИ. Встроенный ассистент отправляет запросы и используемые им данные на настроенную вами конечную точку модели; вы можете использовать модель, размещённую в вашей собственной сети. Внешние клиенты MCP используют собственные настройки модели. Учётные данные сервиса модели и расходы на использование управляются вами.
**Предоставляет ли Nightingale дежурное расписание и эскалацию?**
Подключите платформу дежурств, такую как PagerDuty, для расписаний, политик эскалации и реагирования на инциденты. Nightingale отвечает за вычисление правил, обработку событий и маршрутизацию уведомлений.
## Сообщество
Вопросы, сообщения об ошибках, улучшения документации и вклад приветствуются на английском языке.
- [GitHub Discussions](https://github.com/ccfos/nightingale/discussions) — задавайте вопросы и делитесь идеями.
- [GitHub Issues](https://github.com/ccfos/nightingale/issues) — сообщайте об ошибках и запрашивайте функции. Укажите версию, способ развёртывания и шаги для воспроизведения.
- [Slack](https://join.slack.com/t/n9e/shared_invite/zt-480klxytf-P9qm3C1M87kDmRPp_H30Kw) — присоединяйтесь к сообществу.
- [Отчёты пользователей](https://github.com/ccfos/nightingale/issues/897) — узнайте, как другие используют Nightingale, и поделитесь своим опытом.
- [Политика безопасности](https://github.com/ccfos/nightingale/blob/main/SECURITY.md) — сообщайте об уязвимостях конфиденциально и проверяйте поддержку версий.
Для существенных изменений откройте issue, чтобы обсудить подход, прежде чем отправлять pull request. Пожалуйста, соблюдайте [Кодекс поведения](https://github.com/ccfos/nightingale/blob/main/CODE_OF_CONDUCT.md).
Nightingale изначально был разработан в DiDi и передан CCF ODC в 2022 году. Узнайте об [управлении проектом](https://github.com/ccfos/nightingale/blob/main/doc/community-governance.md), [коммиттерах](https://github.com/ccfos/nightingale/blob/main/doc/committers.md) и [участниках](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>
## Звёзды с течением времени
[](https://star-history.dera.page/#ccfos/nightingale&Date)
## Лицензия
Nightingale доступен по [лицензии Apache 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="" />
