
Open-Source-Benachrichtigungs-Engine für Zeitreihen-Überwachungsdaten. Verbindet sich mit Prometheus, VictoriaMetrics, ElasticSearch und anderen Datenquellen. Unterstützt über 20 Benachrichtigungskanäle, Alarm-Rauschunterdrückung, Eskalation und Self-Healing-Automatisierung.
<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>Open-Source-Alarmierung für Ihren bestehenden Stack</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">Schnellstart</a> ·
<a href="https://n9e.github.io/docs">Dokumentation</a> ·
<a href="https://n9e.github.io/download">Download</a> ·
<a href="https://github.com/ccfos/nightingale/releases">Releases</a> ·
<a href="#community">Community</a>
</p>
[English](https://github.com/ccfos/nightingale/blob/main/README.md) | [中文](https://github.com/ccfos/nightingale/blob/main/README_zh.md)
Nightingale vereint Alarmregeln, Ereignisverarbeitung und Benachrichtigungsrouting an einem Ort. Verbinden Sie Prometheus, VictoriaMetrics, Elasticsearch, Loki, ClickHouse und andere Datenquellen, die Sie bereits betreiben, und liefern Sie Alarme an Slack, PagerDuty und die vorhandenen Tools Ihres Teams.
**Selbst gehostet · Apache-2.0 · Integrierter KI-Agent · MCP-Server**

## Warum Nightingale?
- **Geben Sie Teams die Verantwortung für ihre Alarme.** Organisieren Sie Regeln in Geschäftsgruppen, weisen Sie Teamberechtigungen zu und verwalten Sie Regeln und Benachrichtigungseinstellungen über die UI und API.
- **Bündeln Sie verstreute Alarmierung an einem Ort.** Werten Sie Regeln gegen Metriken, Logs und SQL-Datenquellen aus und behalten Sie dabei Ihre vorhandenen Collectors, Speichersysteme und Grafana-Dashboards bei.
- **Verstehen Sie, was mit einem Alarm passiert ist.** Prüfen Sie Regelauswertungsdatensätze, historische Ereignisse und Benachrichtigungsergebnisse, um eine Abfrage bis zur Zustellung nachzuvollziehen.
## Schnellstart
Starten Sie mit installiertem Git und Docker Compose den mitgelieferten Evaluierungs-Stack:
```bash
git clone https://github.com/ccfos/nightingale.git
cd nightingale/docker/compose-bridge
docker compose up -d
```
Dies startet Nightingale, MySQL, Redis, VictoriaMetrics und Categraf. Öffnen Sie [http://localhost:17000](http://localhost:17000) und melden Sie sich mit **`root` / `root.2020`** an.
So erhalten Sie Ihren ersten Alarm:
1. **Verbinden Sie eine Datenquelle.** Fügen Sie Ihren vorhandenen Prometheus-kompatiblen Endpunkt hinzu oder verwenden Sie `http://victoriametrics:8428` für die VictoriaMetrics-Instanz in diesem Compose-Stack.
2. **Erstellen Sie eine Alarmregel.** Wählen Sie eine Geschäftsgruppe und eine Datenquelle und geben Sie dann einen PromQL-Ausdruck ein. Für einen Test, der immer auslöst, verwenden Sie `vector(1) > 0` und setzen Sie die Dauer auf `0`.
3. **Konfigurieren Sie die Zustellung.** Richten Sie einen Benachrichtigungskanal ein, erstellen Sie eine Benachrichtigungsregel und hängen Sie diese an die Alarmregel an. Prüfen Sie, ob die Testbenachrichtigung ankommt, und deaktivieren Sie dann den Testalarm.
Der Compose-Stack verwendet Beispiel-Anmeldedaten und stellt Dienstports für die lokale Evaluierung bereit. Ändern Sie die Anmeldedaten und überprüfen Sie den Netzwerkzugriff, bevor Sie auf einem gemeinsam genutzten oder öffentlichen Host bereitstellen. Siehe [Bereitstellungsoptionen](#deployment) für andere Möglichkeiten, Nightingale auszuführen.
## Wie es in Ihren Stack passt
Nightingale fragt Ihre Datenquellen ab, wertet Alarmbedingungen aus, verarbeitet Ereignisse und leitet Benachrichtigungen weiter. Ihre vorhandenen Daten verbleiben in ihren aktuellen Speichern.
Behalten Sie Grafana für die Visualisierung und Ihre On-Call-Plattform für Planung, Eskalation und Incident-Response bei. Nightingale enthält außerdem Dashboards für Teams, die Daten zusammen mit ihren Alarmen erkunden möchten.
Sie starten ohne Monitoring-Stack? Die Standalone-Konfiguration enthält eine optionale eingebettete TSDB für kleine Single-Instance-Bereitstellungen. [Categraf](https://github.com/flashcatcloud/categraf) ist ein optionaler Collector für Hosts, Middleware, Datenbanken und Netzwerkgeräte.
## Zentrale Funktionen
| Funktion | Was Sie tun können |
| --- | --- |
| Alarmierung über Datenquellen hinweg | Verwenden Sie PromQL, Log-Abfragen oder SQL, um Bedingungen zu definieren. Wenden Sie eine Regel auf mehrere Instanzen desselben Datenquellentyps an. |
| Team-Verantwortung | Gruppieren Sie Regeln und Dashboards nach Geschäftsgruppe, weisen Sie Team-Berechtigungen zu und verbinden Sie OIDC, OAuth2, LDAP oder CAS für die Anmeldung. |
| Ereignisverarbeitung und -weiterleitung | Stummschalten von Benachrichtigungen, Abonnieren von Alarmen, Anreichern oder Umschreiben von Labels und Weiterleiten von Ereignissen durch bedingte Pipelines. |
| Aufzeichnungen zur Alarmausführung | Überprüfen Sie Auswertungsabfragen und -ergebnisse, aktive und historische Ereignisse sowie Zustellungsaufzeichnungen von Benachrichtigungen. |
| Wiederverwendbare Integrationen | Beginnen Sie mit gebündelten Collector-Konfigurationen, Alarmregeln und Dashboards. Überprüfen Sie Abfragen und Schwellenwerte für Ihre Umgebung, bevor Sie sie aktivieren. |
| Verteilte Auswertung | Verteilen Sie Regeln auf Alarmierungs-Engines und verwenden Sie `n9e-edge`, um Alarme nahe an entfernten Datenquellen auszuwerten. |
Zu den Benachrichtigungsintegrationen gehören **Slack, PagerDuty, Discord, Email, Telegram, Mattermost, Jira und Jira Service Management**, mit HTTP-Webhooks und Skripten für benutzerdefinierte Ziele. Siehe die [Referenz zu nativen Benachrichtigungskanälen](https://github.com/ccfos/nightingale/blob/main/doc/api/notify-channel-native.md) für Konfigurationsdetails.
Für automatisierte Reaktionen verbinden Sie [ibex](https://github.com/flashcatcloud/ibex), um vordefinierte Behebungsskripte auszuführen, wenn ein Alarm ausgelöst wird.
<a id="-mcp-server"></a>
<a id="ai-assistant-and-mcp"></a>
## Integrierter KI-Agent
Nightingale enthält einen KI-Agenten, den Sie direkt in der Web-Oberfläche verwenden können. Der Agent läuft innerhalb von Nightingale, ruft Tools auf, um Ihre Überwachungsdaten und -konfiguration zu inspizieren, und bearbeitet Aufgaben über mehrere Schritte hinweg.
- **Alarme untersuchen.** Fragen Sie zugehörige Metriken und Logs ab, prüfen Sie betroffene Hosts und erläutern Sie die Ergebnisse anhand der abgerufenen Daten.
- **Den Alarmierungsprozess beheben.** Prüfen Sie Regeln, Auswertungslogs, Stummschaltungseinstellungen, Ereignisverarbeitung und Benachrichtigungsergebnisse, um herauszufinden, warum ein Alarm nicht ausgelöst oder sein Ziel nicht erreicht hat.
- **Konfiguration erstellen und aktualisieren.** Erstellen Sie Alarmregeln und Dashboards, generieren Sie PromQL und SQL und konfigurieren Sie Benachrichtigungsregeln, Stummschaltungen und Abonnements im Dialog. Die integrierten Werkzeuge zum Aktualisieren bestehender Alarmregeln und Dashboards schlagen Änderungen zur Bestätigung vor.
- **Mit Skills erweitern.** Mitgelieferte Skills decken gängige Monitoring-Workflows ab. Fügen Sie die Verfahren, Referenzmaterialien und Skripte Ihres Teams als benutzerdefinierte Skills hinzu, einschließlich aus Git importierter Skills.
Zum Beispiel:
> Warum wurde dieser Alarm ausgelöst? Prüfen Sie die Metriken und Logs des betroffenen Hosts rund um den Auslösezeitpunkt.
> Erstellen Sie einen Alarm zur Speichernutzung für die Produktionshosts und benachrichtigen Sie unser Team in Slack.
Konfigurieren Sie einen Modell-Endpunkt, um zu beginnen. Der Agent unterstützt OpenAI-kompatible APIs, Claude, Gemini und kompatible selbst gehostete Modelle. Sie wählen den Modelldienst und die Anmeldedaten; die Kernalarmierung funktioniert unabhängig vom Agent.
[Konfiguration des Modellanbieters](https://github.com/ccfos/nightingale/blob/main/doc/api/ai-llm-config.md) · [Skill-Verwaltung](https://github.com/ccfos/nightingale/blob/main/doc/api/ai-skill.md) · [Mitgelieferte Skills](https://github.com/ccfos/nightingale/blob/main/aiagent/skill/embedded/builtin)
### Externe Agenten verbinden
- **MCP** ermöglicht externen Assistenten, die Werkzeuge von Nightingale aufzurufen. Der Server läuft innerhalb von Nightingale unter `/mcp`, stellt standardmäßig Lese-Werkzeuge bereit und wendet die bestehenden API-Berechtigungen des Aufrufers an. Schreib-Werkzeuge erfordern eine explizite Konfiguration. Siehe [MCP-Einrichtung](https://github.com/ccfos/nightingale/blob/main/doc/api/mcp-server.md).
- **A2A** ermöglicht einem anderen Agenten, eine Aufgabe an den integrierten Agenten von Nightingale zu delegieren. Siehe [A2A-Integration](https://github.com/ccfos/nightingale/blob/main/doc/api/a2a-integration.md).
## Produkt-Screenshots
Alarmregeln nach Datenquelle und Geschäftsgruppe verwalten:

## Bereitstellung
| Option | Hier beginnen |
| --- | --- |
| Lokale Evaluierung mit Docker Compose | [Enthaltene Compose-Umgebung](https://github.com/ccfos/nightingale/blob/main/docker/compose-bridge/docker-compose.yaml) |
| Linux-Binärdateien für amd64 und arm64 | [Release-Downloads](https://github.com/ccfos/nightingale/releases) und [Konfigurationsreferenz](https://github.com/ccfos/nightingale/blob/main/etc/config.toml) |
| Kubernetes | [Helm-Chart und Installationsanweisungen](https://github.com/flashcatcloud/n9e-helm) |
Für den Produktivbetrieb sollten Sie eine Release-Version festlegen, Anmeldedaten und TLS konfigurieren, die Metadaten-Datenbank sichern und Fehler bei der Regelauswertung und Benachrichtigung überwachen. Mehrere Nightingale-Instanzen teilen sich eine Metadaten-Datenbank und Redis; verwenden Sie für eine Bereitstellung mit mehreren Instanzen externen Zeitreihenspeicher. Die eingebettete TSDB speichert Daten auf der lokalen Festplatte einer Instanz.
Weitere Hinweise und unterstützte Versionen finden Sie in der [Dokumentation](https://n9e.github.io/docs), der [Installationsanleitung](https://n9e.github.io/docs/install/overview), den [Versionshinweisen](https://github.com/ccfos/nightingale/releases) und der [Sicherheitsrichtlinie](https://github.com/ccfos/nightingale/blob/main/SECURITY.md).
## FAQ
**Muss ich meine Collectors ersetzen oder meine Monitoring-Daten verschieben?**
Nein. Nightingale kann Ihre vorhandenen Datenquellen direkt abfragen. Behalten Sie Ihre Exporter und Collectors. Categraf und die eingebettete TSDB stehen zur Verfügung, wenn Sie Erfassung oder lokale Speicherung benötigen.
**Kann ich vorhandene Prometheus-Alarmregeln importieren?**
Ja. Der Regelimport unterstützt Prometheus-YAML, einschließlich Ausdrücken, Dauern, Labels und Anmerkungen. Prüfen Sie die konvertierten Regeln und bauen Sie das Benachrichtigungs-Routing in Nightingale neu auf. Der Import ist keine vollständige Konvertierung von `alertmanager.yml`; betreiben Sie während der Evaluierung beide Systeme, bevor Sie Benachrichtigungen umstellen.
**Kann ich Regeln über Git und CI verwalten?**
Regeln können als JSON exportiert und über die HTTP-API erstellt oder aktualisiert werden, sodass Sie einen Workflow rund um versionierte Konfiguration aufbauen können. Nightingale bietet derzeit keine integrierte Revisionshistorie für Regeln oder Rollback auf frühere Revisionen.
**Ist KI erforderlich, und wohin gehen Modellanfragen?**
Alarmierung funktioniert ohne KI. Der integrierte Assistent sendet Prompts und die von ihm verwendeten Daten an den von Ihnen konfigurierten Modell-Endpunkt; Sie können ein in Ihrem eigenen Netzwerk gehostetes Modell verwenden. Externe MCP-Clients verwenden ihre eigenen Modelleinstellungen. Anmeldedaten für den Modelldienst und Nutzungskosten werden von Ihnen verwaltet.
**Bietet Nightingale Bereitschaftsplanung und Eskalation?**
Binden Sie eine Bereitschaftsplattform wie PagerDuty für Zeitpläne, Eskalationsrichtlinien und Incident-Response an. Nightingale übernimmt die Regelauswertung, Ereignisverarbeitung und Benachrichtigungsweiterleitung.
## Community
Fragen, Fehlerberichte, Dokumentationsverbesserungen und Beiträge sind auf Englisch willkommen.
- [GitHub Discussions](https://github.com/ccfos/nightingale/discussions) — stellen Sie Fragen und teilen Sie Ideen.
- [GitHub Issues](https://github.com/ccfos/nightingale/issues) — melden Sie Fehler und fordern Sie Funktionen an. Geben Sie die Version, die Bereitstellungsmethode und die Schritte zur Reproduktion an.
- [Slack](https://join.slack.com/t/n9e/shared_invite/zt-480klxytf-P9qm3C1M87kDmRPp_H30Kw) — treten Sie der Community bei.
- [Adopter reports](https://github.com/ccfos/nightingale/issues/897) — erfahren Sie, wie andere Nightingale nutzen, und teilen Sie Ihre eigenen Erfahrungen.
- [Security policy](https://github.com/ccfos/nightingale/blob/main/SECURITY.md) — melden Sie Schwachstellen vertraulich und prüfen Sie die Versionsunterstützung.
Für umfangreiche Änderungen eröffnen Sie bitte ein Issue, um den Ansatz zu besprechen, bevor Sie einen Pull Request einreichen. Bitte beachten Sie den [Code of Conduct](https://github.com/ccfos/nightingale/blob/main/CODE_OF_CONDUCT.md).
Nightingale wurde ursprünglich bei DiDi entwickelt und 2022 an CCF ODC gespendet. Erfahren Sie mehr über [project governance](https://github.com/ccfos/nightingale/blob/main/doc/community-governance.md), [committers](https://github.com/ccfos/nightingale/blob/main/doc/committers.md) und [contributors](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 im Zeitverlauf
[](https://star-history.dera.page/#ccfos/nightingale&Date)
## Lizenz
Nightingale ist unter der [Apache License 2.0](https://github.com/ccfos/nightingale/blob/main/LICENSE) verfügbar.
<img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=3f539666-22f5-468d-914d-1e344945d3d8" alt="" />
