Ich habe bereits Prometheus, brauche aber noch Nightingale?

Wenn es um die aktuelle Überwachung geht, ist Prometheus zweifellos das beliebteste Projekt. Wenn Sie nur Maschinen und Netzwerkgeräte überwachen, kann Zabbix immer noch mithalten. Wenn Sie nicht nur Geräte, sondern auch Anwendungen, Kubernetes und andere Infrastrukturen überwachen möchten, ist Prometheus das beste Auswahl. Es gibt sogar einige Open-Source-Projekte, die über eine integrierte Unterstützung für die Indikatorfreigabe des Prometheus-Protokolls verfügen, z. B. neue Versionen von Zookeeper, neue Versionen von RabbitMQ, Nginx vts usw. Der Einfluss von Prometheus ist offensichtlich.

Das in vielen Szenarien erwähnte Wort Prometheus bezieht sich eigentlich nicht nur auf das Prometheus-Projekt selbst, sondern auf das Prometheus-Ökosystem, einschließlich der Indikatorformate, Übertragungsprotokolle, Abfragesprachen, verschiedener Exporter-Sammler, verschiedener von Prometheus definierter kompatibler Speicher usw. .

Im Prometheus-Ökosystem können verschiedene Exporter zum Sammeln verwendet werden, VictoriaMetrics kann zum Speichern verwendet werden und Grafana kann zum Anzeigen von Bildern verwendet werden. Es scheint, dass es ein anderes Open-Source-Projekt namens „Nightingale“ gibt, das dies behauptet mit Prometheus Seamless zusammenarbeiten? Dieser Artikel versucht, ein oder zwei davon zu untersuchen.

Einführung in Nightingale

Ein Auszug aus der Einführung zum Nightingale-Projekt von der offiziellen Website von Nightingale:

Nightingale Monitor ist ein Open-Source-Cloud-natives Beobachtungs- und Analysetool, das das All-in-One-Designkonzept übernimmt. Es integriert Datenerfassung, Visualisierung, Überwachung und Alarmierung sowie Datenanalyse. Es ist eng in das Cloud-native Ökosystem integriert bietet Unternehmen sofort einsatzbereite Funktionen zur Füllstandsüberwachung, -analyse und -alarmierung. Nightingale veröffentlichte die v1-Version am 20. März 2020 auf Github und hat mehr als 100 Versionen gesammelt.

Nightingale wurde ursprünglich von Didi entwickelt und als Open-Source-Lösung bereitgestellt und am 11. Mai 2022 an das China Computer Federation Open Source Development Committee (CCF ODC) gespendet. Damit ist es das erste Open-Source-Projekt, das nach der Gründung von CCF ODC Spenden erhielt. Das Kern-F&E-Team von Nightingale ist auch das ursprüngliche Kern-F&E-Team des Open-Falcon-Projekts aus dem Jahr 2014 (Open-Falcon wurde 2014 als Open-Source-Lösung bereitgestellt), es sind nur 10 Jahre vergangen, um bei der Überwachung gute Arbeit zu leisten.

Nachdem ich die Projekteinführung gelesen habe, weiß ich nur, dass Nightingale ein Überwachungssystem ist. Was sind die Unterschiede zwischen ihm und Prometheus? Keine Sorge, werfen wir zunächst einen Blick auf das Prometheus-Problem.

Prometheus-Problem

Das Sammeln, Speichern und Betrachten von Prometheus-Bildern wurde sehr gut gelöst. Es ist nur ein Alarmsignal. Für einige Unternehmen kann es die folgenden Schwachstellen haben:

  • Ein Unternehmen verfügt über viele Prometheus-Sätze und die Regeln sind auf mehrere Yamls verteilt, was die Verwaltung umständlich macht.
  • Ich hoffe, eine benutzerfreundliche, berechtigungsgetrennte Benutzeroberfläche zu haben, die allen Teams im Unternehmen Überwachungsfunktionen eröffnet und es ihnen ermöglicht, sich nicht für alles selbst an das Überwachungsteam zu wenden.
  • Die direkte Verwendung von Promql zum Abfragen von Daten und zum Konfigurieren von Alarmregeln ist etwas anspruchsvoll. Können einige Regelbibliotheken und Abfrageanweisungen integriert werden, damit Wissen gesammelt werden kann und normale Benutzer es sofort verwenden können?
  • Es besteht die Hoffnung, dass die Alarmregeln flexibler sein können, z. B. durch die Unterstützung verschiedener Regeln mit unterschiedlichen Wirksamkeitszeiten und durch die Bereitstellung einiger integrierter Selbstheilungsmechanismen für Alarme usw.

Dafür wurde Nightingale geschaffen. Tatsächlich war die alte Version von Nightingale eigenständig und von Open-Falcon abgeleitet. Als Prometheus jedoch populär wurde, begann Nightingale, das Prometheus-Ökosystem zu übernehmen. Nightingale kann als Alarm-Engine für Zeitreihendaten angesehen werden . Natürlich bietet Nightingale auch die Möglichkeit, Diagramme und Dashboards anzuzeigen und kann sogar Daten von Elasticsearch, Loki und TDEngine anzeigen. Die aktuelle Situation ist jedoch, dass die Alarmfunktionen von Nightingale am häufigsten von allen genutzt werden und die meisten Dashboards immer noch Grafana verwenden. Die typische von Nightingale verwendete Architektur ist wie folgt:

Kann Nightingale Prometheus vollständig ersetzen?

Tatsächlich handelt es sich nicht um eine Substitutionsbeziehung, sondern um eine synergistische Beziehung. Nach Ansicht von Nightingale wird Prometheus hauptsächlich als Timing-Bibliothek verwendet. Neben Prometheus können Sie auch andere Timing-Bibliotheken wie VictoriaMetrics, Thanos, M3DB und TDEngine auswählen. Nightingale wird nur als Alarm-Engine für eine Zeitreihenbibliothek verwendet. Es kann mit Prometheus oder anderen Zeitreihenbibliotheken verbunden werden. Benutzer können Alarmregeln in Nightingale einheitlich verwalten, abnormale Daten beurteilen, Alarmereignisse generieren und anschließend Verteilungsbenachrichtigungen vornehmen . Alarm-Selbstheilung und andere Logik.

Wenn Sie außerdem mehrere Computerräume haben, sind die Timing-Bibliotheken auf mehrere Computerräume verteilt und das Netzwerk zwischen den Computerräumen ist nicht gut, und Sie möchten, dass der Edge-Computerraum autonom ist, ohne dass sich dies auf Alarme auswirkt, selbst wenn das Netzwerk fragmentiert ist , Nachtigall ist auch sehr gut geeignet. In diesem Fall nennt Nightingale es den Edge-Computerraum-Bereitstellungsmodus. Die Timing-Bibliothek und die Alarm-Engine werden nach unten bereitgestellt. Es spielt keine Rolle, ob das Netzwerk in Ordnung ist, die Daten können in der Mitte einheitlich angezeigt werden und die Alarmregeln können einheitlich verwaltet werden. Das Architekturdiagramm sieht wie folgt aus:

Im obigen Beispiel wird die Bereitstellungsarchitektur von drei Computerräumen demonstriert. Die Netzwerkverbindung zwischen Computerraum A und dem zentralen Computerraum ist nicht sehr gut Der Computerraum verfügt über eine Timing-Bibliothek. Daher verarbeitet die Nightingale-Alarm-Engine im zentralen Computerraum direkt die Timing-Bibliotheken des zentralen Computerraums und des Computerraums A. Die Timing-Bibliothek von Computerraum B wird von der Alarm-Engine des Computerraums B, also n9e-edge, verarbeitet In der Abbildung wird n9e-edge von Nightingale aus im zentralen Computerraum verarbeitet. Synchronisieren Sie die Alarmregeln und treffen Sie dann Alarmbeurteilungen in der Timing-Bibliothek des lokalen Computerraums.

Selbst wenn das Netzwerk zwischen Computerraum B und dem zentralen Computerraum getrennt ist, kann die Alarm-Engine von Computerraum B aufgrund der Synchronisierung der Alarmregeln im N9E-Edge-Speicher weiterhin die Alarmbestimmungsarbeit des Computerraums verarbeiten Normalerweise zwei Timing-Bibliotheken von Computerraum B. Die allgemeine Hochverfügbarkeit des Überwachungssystems wurde verbessert.

In welcher Szene wird Nachtigall anstelle von Prometheus verwendet?

Der Schlüssel hängt davon ab, was Ihre Schmerzpunkte sind. Wenn Sie zu diesem Zeitpunkt einen einzelnen Punkt von Prometheus verwenden, ist eine Änderung nicht erforderlich. Es ist selbstverständlich, dass die Migration technischer Tools auf verschiedene Widerstände stößt.

Wenn Sie Probleme bei der Alarmregelverwaltung und der hohen Verfügbarkeit von Alarmen in Edge-Computerräumen haben, können Sie Nightingale ausprobieren. Jedes Tool hat seine eigenen Vor- und Nachteile. Wählen Sie es entsprechend dem Szenario aus.

Kann Nightingale Alarme von verschiedenen Überwachungssystemen empfangen und eine einheitliche Ereignisbenachrichtigung bereitstellen?

Einige Freunde sahen, dass Nightingale eine Verbindung zu verschiedenen Timing-Bibliotheken herstellen, Alarmbeurteilungen treffen, Alarmereignisse generieren und verteilen kann, und dachten: Können die von meinen anderen Überwachungssystemen generierten Alarme auch von Nightingale gesendet werden? Auf diese Weise können Themen wie Alarmbenachrichtigungsvorlagen, Kontakte, Authentifizierungs-Anmeldeberechtigungen usw. einheitlich verwaltet werden.

Tatsächlich ist dies nicht möglich. Dies ist eine typische OnCall-Ereignisanforderung. Es sammelt Alarme von verschiedenen Überwachungssystemen (wie Prometheus, Zabbix, Open-Falcon, Blue Whale, verschiedenen Cloud-Überwachungssystemen, ElastAlert usw.) und führt eine einheitliche Alarmkonvergenz und Rauschunterdrückung sowie Planung durch. Anspruch und Upgrade, flexible Verteilung nach Konditionen usw. Wenn Sie dies gut machen möchten, lohnt es sich, ein separates Produkt zu verwenden. Nennen wir dieses Produkt das OnCall-Produkt. Die Beziehung zwischen dem OnCall-Produkt und jedem Überwachungssystem ist:

20240509115353

Das heißt: Das Überwachungssystem (einschließlich verschiedener Arten der Cloud-Überwachung) konzentriert sich auf die Lösung der Probleme der Datenerfassung, Speicherung, visuellen Analyse und Alarmermittlung und ist für die Generierung von Alarmereignissen verantwortlich Das OnCall-Center ist für die Verarbeitung zuständig, und das OnCall-Center ist für die Konvergenz und Rauschunterdrückung, Unterdrückung und Abschirmung, Filterung und Verteilung von Alarmereignissen und viele andere Angelegenheiten verantwortlich.

Gute OnCall-Produkte sind kommerzielle Produkte wie PagerDuty, FlashDuty, Opsgenie usw. Sie können sie selbst googeln, um das zu finden, was Sie brauchen.

Welche interessanteren Funktionen hat Nightingale als Prometheus?

Hier werde ich einige Systemdiagramme erstellen und eine kurze Einführung geben.

20240509115411

20240509115426

Nightingale sammelt keine Daten und kann mit verschiedenen Collectors auf dem Markt verbunden werden. Unter diesen ist die Verbindung zwischen dem Categraf-Collector und Nightingale am reibungslosesten. Wenn Sie Categoryf als Collector verwenden, können Sie verschiedene Metainformationen der Maschine sammeln Erstellen Sie eine leichte Maschinenschicht.

20240509115440

Nightingale verfügt über integrierte Alarm-Selbstheilungsfunktionen, das heißt, wenn ein Alarm auftritt, kann es automatisch ein Skript auf dem alarmierenden Computer ausführen. Sie können eine automatisierte Reparaturlogik in das Skript schreiben.

20240509115501

Nightingale verfügt über eine integrierte Indikatoransicht, die in der Beta3-Version von Version 7 veröffentlicht wird. Sie bietet auch viele integrierte PromQL-Funktionen, die zum Abfragen einfach anklicken und für unerfahrene Benutzer äußerst benutzerfreundlich sein werden.

Zusammenfassung

Wir haben Prometheus bereits, warum brauchen wir Nachtigall? Dieser Artikel ist eine explorative Antwort auf diese Frage. Ich hoffe, das hilft. Vielen Dank an alle fürs Lesen.

High-School-Schüler erstellen ihre eigene Open-Source-Programmiersprache als Coming-of-Age-Zeremonie – scharfe Kommentare von Internetnutzern: Unter Berufung auf die Verteidigung hat Apple den M4-Chip RustDesk veröffentlicht. Inländische Dienste wurden wegen grassierenden Betrugs eingestellt . In Zukunft plant er, ein unabhängiges Spiel auf der Windows-Plattform Taobao (taobao.com) zu produzieren. Webversionsoptimierungsarbeiten neu starten, Ziel für Programmierer, Visual Studio Code 1.89 veröffentlicht Java 17, die am häufigsten verwendete Java LTS-Version, Windows 10 hat eine Marktanteil von 70 %, Windows 11 geht weiter zurück ; Google unterstützt Hongmeng bei der Übernahme von Open-Source-Rabbit-R1;
{{o.name}}
{{m.name}}

Ich denke du magst

Origin my.oschina.net/morflameblog/blog/11105690
Empfohlen
Rangfolge