Monitoring einer Bitcoin Fullnode

Hallo zusammen,
ich habe mal wieder ein etwas technischeres Thema für euch. :sweat_smile:
Falls ihr eine Bitcoin-Fullnode betreibt, könnte das für euch interessant sein.

In meinem letzten Beitrag habe ich mir bereits ein Grafana Dashboard für meine Investmentmetriken gebaut.

Da ich in den letzten Wochen noch tiefer in das Bitcoin-Rabbit-Hole gefallen bin, habe ich nun einen Fullnode laufen. Da ich ein großer Fan von schönen Metriken bin, wollte ich natürlich einen Einblick in den „Status“ meiner Fullnode haben.
Meine erste Idee war, eine mempool Instanz auf meinem Server zu installieren. Nach einigem Herumprobieren habe ich mich aber dagegen entschieden, da der Overhead für einen kleinen Server massiv ist.

Letztendlich habe ich mich (wieder) für eine eigene Implementierung entschieden. :sweat_smile:
Um die Metriken zu sammeln, habe ich einen Prometheus Exporter geschrieben, der die Daten über das JSON-RPC und ZMQ Interface von Bitcoin-Core sammelt.

Das ganze Projekt ist natürlich wieder Open Source.
Wer weitere Ideen oder Anmerkungen hat, kann diese gerne hier oder auf GitHub posten.

Hier ein kleiner Einblick in das Dashboard:




8 „Gefällt mir“

Coole Sache! Ich habe noch nie mit Docker gearbeitet. Mal schauen ob ich das mit meinem Minibolt Setup zum laufen bekomme.

Danke fürs teilen!

1 „Gefällt mir“

Wow vielen Dank dafür!

Wer auf Docker verzichten möchte:

git clone https://github.com/Primexz/bitcoind-exporter.git
cd bitcoind-exporter
go build

Um es quick’n’dirty zu starten (Leerzeichen davor, um die Credentials nicht in die bash history aufzuzeichnen):

 RPC_ADDRESS=http://127.0.0.1:8332 RPC_USER=X RPC_PASS=X ZMQ_ADDRESS=127.0.0.1:28333 ./bitcoind-exporter &

Habe den Exporter ins bestehende Netdata eingebunden. :+1:

@Primexz Kleiner Fehler in der docker-compose.yml. Es fehlt eine 1 in der localhost IP:
- ZMQ_ADDRESS=27.0.0.1:28333 - ZMQ_ADDRESS=127.0.0.1:28333

3 „Gefällt mir“

Da hat sich wohl ein kleiner Typo eingeschlichen. Fixe ich gleich :sweat_smile:

Eine Möglichkeit anstelle von RPC User und Password auch die Cookie-File nutzen zu können wäre toll :smiley:

Ich habs jetzt tatsächlich in einer Fork mit cookieAuth ausgetauscht.

https://github.com/Pxrzival/bitcoind-exporter/tree/master

Falls du die Zeit hast kannst du auch gerne ein PR mit den Änderungen machen. :wink:

Warum?
Meine Fullnode läuft seit Jahren erfolgreich und ich muss nur wissen wenn sie mal nicht läuft. Alles Andere ist noch nicht von Interesse. Was bringt dir jeden Tag die Information mit wievielen anderen Nodes sie verbunden ist, wie groß der Mempool ist oder was auch immer?

Muss natürlich jeder selbst wissen aber ICH brauche nur die Verbindung wenn ich eine Transaktion tätige und DAS sie läuft.

Das werde ich bald machen!

Wäre es möglich, dass du deine Prometheus config mit uns teilst? Mein Dashboard kriegt irgendwie die Daten nicht abgefragt

Klar, hier einmal eine gekürzte Version meiner Config:

scrape_configs:
  - job_name: "bitcoind_exporter"
    static_configs:
      - targets: ['bitcoind_exporter:3000']

Den Hostnamen musst du entsprechend deiner Netzwerkkonfoguration mit einer IP oder einem Hostnamen austauschen.

Kleiner Tipp am Rande: Prometheus hat ein UI, welches dir ermöglicht zu überprüfen, warum dein Endpunkt nicht abgefragt werden konnte.

Getting Started with Prometheus | Prometheus.

1 „Gefällt mir“

Ich persönlich finde es einfach spannend zu sehen, was mein Node im Laufe des Tages so macht.
Wenn ich Software (egal ob eigene oder „fremde“) laufen habe, möchte ich einfach den Status + zusätzliche Metriken überprüfen können.
Ich verstehe, dass das nicht jeder braucht, aber für mich als Administrator gehört das dazu.

1 „Gefällt mir“

Läuft! Auf sowas hab ich gewartret, vielen Dank :slight_smile: PR mach ich vielleicht heute noch. Ich habs nur noch nie gemacht und muss mir erst anschauen wie das geht. Bin noch relativ neu mit git.

Eventuell hab ich auch noch etwas interessantes für dich.
https://github.com/Pxrzival/mempool-dockerized-v2
Ein kleines Dockerprojekt um Mempool mit mehr Funktionen selbst zu hosten. Habe ebenso deinen Prometheus Exporter mit integriert. Werde es bald verlinken.

Hier so geschrieben, dass er alle Container selbst compiled:

https://github.com/Pxrzival/mempool-dockerized-v2-selfcompiled

1 „Gefällt mir“

Das Projekt sieht auch spannend aus. ;)
Schaue ich mir mal im Laufe des Tages an.

Wow Respekt!

Coole Projekte wie dieses sind wichtig, da Bitcoin für viele Menschen noch immer schwer greifbar ist. Es braucht mehr Initiativen, bei denen man Bitcoin nicht nur theoretisch versteht, sondern auch „visualisieren“ und erleben kann. Leider bin ich nicht so vertraut mit Linux. Zwar habe ich Raspi OS und Bitcoin Core am Laufen, aber ich finde die Bedienung von Linux manchmal recht schwierig. Deshalb habe ich zusätzlich noch eine zweite Node mit Umbrel eingerichtet. Im Gegensatz zu Bitcoin Core kann man dort zumindest visuell einiges visualisieren, was die Bedienung erleichtert.

2 „Gefällt mir“