c-lightning Plugins 03: Das Prometheus Plugin – Blockstream Engineering Blog

Free Bitcoins: FreeBitcoin | BonusBitcoin

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining


Bei Blockstream betreiben wir eine Reihe von Produktions-Lightning-Knoten, insbesondere den Blockstream Store und das Zahlungssystem für den Blockstream Satellite. Durch das Einstecken unserer Knotenstatistiken in Prometheus und Grafana haben wir Einblick in unsere Produktionssysteme und können rechtzeitig auf Systemprobleme hinweisen.

In diesem Artikel erklären wir kurz, wie Prometheus funktioniert, zeigen, wie Docker verwendet wird, um es neben Ihrem c-lightning-Knoten zu installieren, geben einige Diagramme in Grafana weiter, die wir als nützlich erachten, und geben schließlich ein Beispiel, wie Sie Warnungen einrichten können .

Konfiguration

Sie müssen Docker installiert haben, um alle verschiedenen Dienste als Docker-Container ausführen zu können. Diese Anweisungen setzen voraus, dass Sie einen Bitcoin-Vollknoten ausführen.

Bevor wir hübsche Grafiken anzeigen können, müssen wir unseren C-Lightning-Knoten Prometheus und Grafana einrichten. Wir verwenden die offiziellen Bilder von Prometheus und Grafana Docker, die von den jeweiligen Organisationen verwaltet werden.

Ein kurzer Hinweis zur Sicherheit: Bei diesem Setup werden hauptsächlich Standardeinstellungen verwendet. Vergessen Sie nicht, Ihre eigene Due Diligence durchzuführen und die entsprechenden Konfigurationsoptionen und Sicherheitsempfehlungen für Ihr Setup durchzugehen.

Einrichten unseres C-Lightning-Knotens für Prometheus

Standardmäßig sammelt das Plugin Statistiken von c-lightning und macht sie lokal auf Port 9900 verfügbar. Dies ist im prometheus-Plugin definiert und kann mit konfiguriert werden prometheus-listen Möglichkeit:

Wir haben Prometheus gegründet, um diesen Hafen in der Schweiz zu kratzen Blitz Arbeit in der prometheus.yaml (siehe unten).

Lassen Sie uns nun mit Docker einen LN-Knoten im Mainnet aufrufen. Das Prometheus Plugin wurde bereits im installiert blockstream / lightningd: prom Docker-Image, das wir verwenden werden. Hier können Sie die Docker-Datei überprüfen, mit der das Docker-Image erstellt wurde. Sie müssen sich versichern, dass Sie genau dieses Dockerfile für das Image verwendet haben, oder Sie können es selbst erstellen :).

Als Nächstes müssen wir unseren Lightning-Knoten konfigurieren. Hier ist eine grundlegende lightning.conf:

Das lightning.conf hat ein Plugin-Verzeichnis Option, die sagt Blitz Wo kann man nach vorinstallierten Plugins suchen? Das Standardverzeichnis ist ~ / .lightning / plugins. Wir verwenden nicht die Standardeinstellung, daher stellen wir sie hier ein.

Weitere Informationen zu Blitz Konfigurationsoptionen finden Sie in der Dokumentation oder führen Sie docker run blockstream / lightningd: prom lightningd - hilfe.

Starten wir den C-Lightning-Container. Ein … kreieren ~ / extra / Blitz Verzeichnis, und machen Sie ein lightning.conf Datei innerhalb davon. Dann renne:

Sobald dies abgeschlossen ist, sollte ein Lightning-Knoten lokal ausgeführt werden, bei dem das Prometheus-Plugin aktiviert ist. Testen Sie es mit Locken localhost: 9090 oder führen Sie einen Curl-Befehl im Container aus – Docker Exec Lightning Curl Localhost: 9090. Das sollte einen Text zurückgeben, den Prometheus verstehen kann.

Nun richten wir Prometheus ein. Standardmäßig erfasst Prometheus Metriken von angegebenen Endpunkten. Es wird kratzen für Nachrichten an einem Port (in unserem Fall 9900) und speichert diese Metriken für Sie in einer Zeitreihendatenbank.

Die Prometheus-Konfiguration ist in gespeichert prometheus.yaml. Unser Beispiel ist sehr einfach: Es teilt Prometheus mit, wo nach seinen Warnregeln gesucht werden soll, wie mit Alertmanager kommuniziert werden soll (falls Sie sich dazu entschließen) und ob ein einzelner Scrape-Job den Jobnamen, das Scrape-Intervall und den Endpunkt angibt.

Wenn Sie einen Mac verwenden, müssen Sie ihn möglicherweise ersetzen localhost mit 172.17.0.1 (das Docker Bridge Netzwerk).

Wir müssen auch eine erstellen alerts.yaml Datei, die unsere verschiedenen Warnregeln enthält. Warnungen haben einen Abfrageausdruck (ausdr) Zeile, die angibt, worauf Prometheus hinweisen soll. Weitere nützliche Funktionen für Alert-Ausdrücke finden Sie in den Prometheus-Dokumenten. Probieren Sie verschiedene Warnmeldungen auf der Registerkarte "Grafik" von Prometheus aus (localhost: 9090 / graph).

Hier ist ein einfaches Beispiel mit zwei Warnungen:

Starten Sie den Prometheus-Container. Stellen Sie in diesem Fall sicher, dass Sie die erforderlichen Verzeichnisse erstellt haben ~ extra / prom / data, ~ / extra / prom / prometheus.yaml, und ~ / extra / prom / alerts.yaml.

Wenn Sie einen Mac verwenden, ersetzen Sie ` – Netzwerk = Host` mit `-p 9090: 9090`.

Sie können zu gehen localhost: 9090 / Ziele um zu überprüfen, ob Prometheus Ihren C-Lightning-Knoten finden kann – sein Status sollte sein NACH OBEN.

Wenn Sie bekommen Kontext-Frist überschritten oder Verbindung abgelehnt Nachrichten, stellen Sie sicher Prometheus kann die Scrape-Metriken Ihres c-lightning-Knotens unter erreichen localhost: 9900 (Verwenden docker exec -it prometheus bash aus dem Container heraus debuggen). Ein weiterer nützlicher Debugging-Tipp: on / WarnungenKlicken Sie auf jeden Ausdruck und testen Sie, ob er etwas zurückgibt, wenn Sie die Bedingung entfernen == 0. Wenn Sie Werte ungleich Null sehen, ist die Warnung nicht aktiv. Das ist gut so – Sie haben Peers und können die Informationen Ihres Knotens anzeigen.

Alertmanager bietet eine Vielzahl von Integrationen für die Übermittlung von Alerts: SMTP-Smarthost, OpsGenie, Slack usw.

Hier ist ein Beispiel für die Verwendung von Googles SMTP-Relay und OpsGenie. Sie müssen dies mit den entsprechenden email_configs und api_key aktualisieren.

Starten Sie den Alertmanager-Container:

Toll! Jetzt haben wir Prometheus und Alertmanager eingerichtet. Sie sind bereit für Ihren ersten Ausfall.

Es wäre schön, wenn wir einen besseren Einblick in unseren Knoten hätten, auch wenn kein Alarm ausgelöst wird. Zu diesem Zweck richten wir Grafana ein, einen erstklassigen Grafikdienst, der mit Prometheus gut zusammenarbeitet.

Um Grafana mit unseren Prometheus-Daten zu verknüpfen, haben wir eine Datenquellendatei bereitgestellt. Grafana installiert damit Ihren lokalen Prometheus als Datenquelle. Dadurch werden die beiden Dienste ohne zusätzliche Konfiguration von Ihrer Seite miteinander verbunden.

Starten Sie den Grafana-Container. Stellen Sie erneut sicher, dass Sie die entsprechenden Verzeichnisse erstellt haben: ~ / extra / grafana, ~ / extra / grafana / data, ~ / extra / grafana / provisioningund dass Sie die obige Datenquellenkonfiguration an der richtigen Stelle platziert haben.

Wenn Grafana gestartet wird, sollte die Anmeldeseite unter http: // localhost: 3000 angezeigt werden. (Es kann bis zu 30 Sekunden dauern, bis Grafana startet.) Die Standardanmeldeinformationen lauten admin / admin. Nachdem Sie sich angemeldet haben, können Sie Ihr erstes Dashboard erstellen:

Klicken Sie auf Neues Dashboard -> Abfrage hinzufügen -> Wählen Sie LN aus der Dropdown-Liste Abfrage -> Wählen Sie eine Blitzmetrik aus der Dropdown-Liste Metriken.

Versuchen Sie, alle Ihre Kanäle oder Ihren HTC-Durchsatz zu sehen. Sobald Sie eine Reihe von Diagrammen haben, die Sie mögen, speichern Sie das Dashboard, indem Sie auf die Diskette oben rechts klicken.

Im Folgenden sehen Sie das Dashboard-Panel genauer, um die aktiven Kollegen im Zeitverlauf zu verfolgen. Wir haben drei verschiedene Knoten, die wir verwenden. Daher haben wir für jeden eine separate Abfrage hinzugefügt:

Ein weiteres nützliches Diagramm ist die Anzeige des aktuellen Kontostands Ihres Gesamtbetrags, der derzeit in Kanälen gespeichert ist. Sie können ein Messgerät verwenden, um einen aktuellen Schnappschuss für Ihren Knoten zu erstellen.

Diese Anzeige zeigt, dass derzeit 84% der Geldmittel des Knotens verfügbar sind

Die Abfrage hierfür ist einfach.

PromQLlightning_funds_output / lightning_funds_total

Sie können dasselbe für Mittel tun, die für Kanäle mit bereitgestellt werden

PromQLlightning_funds_channel / lightning_funds_total

Das ist alles dazu. Wenn Sie die von uns erstellten Dashboards verwenden möchten, finden Sie hier den JSON für die vielen Knoten. Die JSON für nützlichere Einzelknotenstatistiken finden Sie hier. Beachten Sie, dass dieses eine Dropdown-Liste enthält, in der Sie einen bestimmten Knoten auswählen können, für den die Statistiken angezeigt werden sollen. Wenn Sie nur einen Knoten haben, möchten Sie alle "Instanz" -Referenzen entfernen.

Sie können jeden Docker-Container wie oben beschrieben unabhängig ausführen Docker-Compose Datei, mit der Sie alles mit einem einzigen Befehl ausführen können – docker-compose up -d (Hinweis: Möglicherweise müssen Sie docker-compose installieren.)

Docker-Compose ist möglicherweise nicht ideal für Produktionsumgebungen. Ein anderer Ansatz wäre, das zu brechen docker-compose.yaml in separate systemd Dienstleistungen.

Prometheus Integration ist nur einer von vielen C-Blitz Plugins. Weitere von der Community entwickelte Plugins finden Sie in unserem Plugin-Repository: lightningd / plugins.

Möchten Sie Ihr eigenes Plugin erstellen? Lesen Sie unsere PLUGINS-Readme-Datei im Lightning-Github-Repo oder das Webinar von Rusty Russell zum Einstieg in c-lightning.

Dies war das erste Schaufenster in einer Reihe von C-Lightning-Plugins. Für eine regelmäßig aktualisierte Liste der verfügbaren Artikel, Schauen Sie sich unsere Einführung in C-Lightning-Plugins an.

Free Bitcoins: FreeBitcoin | BonusBitcoin

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close