Moonbeam
July 14, 2021

Telemetrie für einen full node

Einführung

Seit Moonbase Alpha v6 und dem kürzlichen Start von Moonriver können Sie einen Node einrichten, der eine Verbindung zum Moonbase Alpha TestNet oder Moonriver auf Kusama herstellt. Sie können diese Schritte in diesem Tutorial überprüfen.

Dieseк Artikel enthält die erforderlichen Schritte zum Aktivieren des Telemetrieservers für Ihren Moonbeam-basierten Node.

Hinweis Die in diesem Artikel beschriebenen Schritte gelten für eine andere Telemetrieinstanz als die standardmäßig aktivierte Polkadot-Telemetrie (Sie können Node ohne Telemetrie betreiben, indem Sie das Flag --no-telemetry verwenden). Die in diesem Artikel beschriebenen Schritte sind nur für Collator Node obligatorisch.

Zusammenfassung des Telemetrie-Exporters

Moonbeam hat einen Telemetrieserver , der Prometheus-Metriken von allen Moonbeam-Parachain-Noden im Netzwerk sammelt. Dies zu betreiben wird uns während unserer Entwicklungsphase eine große Hilfe sein.

Der Messwertexporter kann entweder als Kubernetes sidecar oder als lokale Binärdatei ausgeführt werden, wenn Sie eine VM betreiben. Es überträgt Daten an unsere Server, sodass Sie keine eingehenden Ports für diesen Dienst aktivieren müssen.

Wir verwenden einen Dienst namens Gantree Node Watchdog, um Telemetrie automatisch hochzuladen. Sobald Sie die Telemetrie aktiviert haben, können Sie auch über die Gantree-App auf einen Prometheus/Grafana-Server zugreifen. Detaillierte Anweisungen finden Sie im GitHub-Repository.

Im Moment müssen wir zwei Noden-Watchdogs betreiben, einen für die Parachain und einen für die relay chain. Dies wird in einer zukünftigen Version aktualisiert.

Für Hilfe kontaktieren Sie unseren Discord-Server oder den Gantree Discord.

Voraussetzungen prüfen

Bevor Sie diesem Tutorial folgen, müssen Sie folgendes tun:

  1. Melden Sie sich bei https://app.gantree.io an und erstellen Sie ein Konto (an account). Navigieren Sie zu API-Schlüsseln (API keys) und kopieren Sie Ihren API-Schlüssel (API key).
  2. Fordern Sie einen PCK-Schlüssel (PCK key) in unserem Discord-Server an.

Telemetrie-Exporter mit Docker

Wir werden zwei Instanzen des Gantree-Node-Watchdogs (Gantree node watchdog) mit Docker betreiben: eine für die Parachain und eine für die relay chain.

Erforderliche Konfigurationsinformationen

  • GANTREE_NODE_WATCHDOG_API_KEY
  • GANTREE_NODE_WATCHDOG_PROJECT_ID
  • GANTREE_NODE_WATCHDOG_CLIENT_ID
  • GANTREE_NODE_WATCHDOG_PCKRC
  • GANTREE_NODE_WATCHDOG_METRICS_HOST

Anleitung

Klonen Sie zunächst das Client-Repository für die Instanzüberwachung (instance monitoring) und erstellen Sie das Docker-Image (docker image):

git clone https://github.com/gantree-io/gantree-node-watchdog
cd gantree-node-watchdog
# checkout latest release
git checkout tags/$(git tag | tail -1)
docker build .  
# get the IMAGE-NAME for use below
docker images

Führen Sie den Docker-Container (parachain Gantree node watchdog) aus. Beachten Sie, dass Sie die folgenden Felder ersetzen müssen:

  • IMAGE-NAMEmit dem im vorherigen Schritt abgerufenen
  • YOUR-API-KEYmit dem bereitgestellten von https://app.gantree.io
  • YOUR-SERVER-NAME
  • YOUR-PCK-KEYmit dem auf unserem Discord-Server angeforderten (Sie können denselben für alle Moonbeam-basierten Netzwerke verwenden).

Die PROJECT_ID wird immer auf moonbeam gesetzt, unabhängig davon, mit welchem Netzwerk Sie verbunden sind. Die CLIENT_ID sollte Ihren Firmennamen enthalten, damit wir Sie im Prometheus/Grafana-Dashboard leicht identifizieren können.

docker run -it --network="host" \
-e GANTREE_NODE_WATCHDOG_API_KEY="YOUR-API-KEY" \
-e GANTREE_NODE_WATCHDOG_PROJECT_ID="moonbeam" \
-e GANTREE_NODE_WATCHDOG_CLIENT_ID="YOUR-SERVER-NAME-parachain" \
-e GANTREE_NODE_WATCHDOG_PCKRC="YOUR-PCK-KEY" \
-e GANTREE_NODE_WATCHDOG_METRICS_HOST="http://127.0.0.1:9615" \
--name gantree_watchdog_parachain IMAGE-NAME

Jetzt müssen wir den relay Gantree node watchdog ausführen. Beachten Sie, dass Sie dieselben Informationen wie im vorherigen Schritt ersetzen müssen.

docker run -it --network="host" \
-e GANTREE_NODE_WATCHDOG_API_KEY="YOUR-API-KEY" \
-e GANTREE_NODE_WATCHDOG_PROJECT_ID="moonbeam" \
-e GANTREE_NODE_WATCHDOG_CLIENT_ID="YOUR-SERVER-NAME-relay" \
-e GANTREE_NODE_WATCHDOG_PCKRC="YOUR-PCK-KEY" \
-e GANTREE_NODE_WATCHDOG_METRICS_HOST="http://127.0.0.1:9616" \
--name gantree_watchdog_relay IMAGE-NAME

In den Logs sollte "waiting for provisioning" angezeigt werden. Wenn Sie Gantree zum ersten Mal ausführen, wird gewartet, bis Sie sich wieder im Portal anmelden und auf "provision dashboard" klicken, um zu "provisioning" zu wechseln. Dieser Wechsel kann einige Minuten dauern. Sobald dies abgeschlossen ist, können Sie sich bei https://app.gantree.io anmelden und Netzwerke auswählen. Sie sehen einen Link View Monitoring Dashboard zu Ihrem benutzerdefinierten Prometheus / Grafana-Dashboard, das Sie an Ihre Bedürfnisse anpassen können.

Sobald alles gut funktioniert, können Sie die Befehle aktualisieren, damit sie im Daemon-Modus ausgeführt werden. Entfernen Sie-itund fügen Sie -d zum obigen Befehl hinzu.

Telemetrie-Exporter mit Systemd

Wir werden zwei Instanzen des Gantree-Noden-Watchdog ausführen: eine für die Parachain und eine für die relay chain.

Erforderliche Konfigurationsinformationen

  • GANTREE_NODE_WATCHDOG_API_KEY
  • GANTREE_NODE_WATCHDOG_PROJECT_ID
  • GANTREE_NODE_WATCHDOG_CLIENT_ID
  • GANTREE_NODE_WATCHDOG_PCKRC
  • GANTREE_NODE_WATCHDOG_METRICS_HOST

Anleitung

Zuerst müssen wir die Gantree-Noden-Watchdog-Binärdatei (Gantree node watchdog binary) von der Release-Seite herunterladen und in einen Ordner extrahieren, zum Beispiel /usr/local/bin

Als Nächstes erstellen wir zwei Ordner für die Konfigurationsdateien:

mkdir -p /var/lib/gantree/parachain
mkdir -p /var/lib/gantree/relay

Jetzt müssen wir die Konfigurationsdateien generieren und jede in den im vorherigen Schritt erstellten Ordnern ablegen. Beachten Sie, dass Sie die folgenden Felder ersetzen müssen:

  • YOUR-API-KEYmit dem bereitgestellten von https://app.gantree.io .
  • YOUR-SERVER-NAME
  • YOUR-PCK-KEYmit dem, der in unserem Discord-Server angefordert wurde

Die project_id wird immer auf moonbeam gesetzt, unabhängig davon, mit welchem Netzwerk Sie verbunden sind. Die client_id sollte Ihren Firmennamen enthalten, damit wir Sie im Prometheus/Grafana-Dashboard leicht identifizieren können.

Parachain:

# Contents of /var/lib/gantree/parachain/.gnw_config.json
{
  "api_key": "YOUR-API-KEY",
  "project_id": "moonbeam",
  "client_id": "YOUR-SERVER-NAME-parachain",
  "pckrc": "YOUR-PCK-KEY",
  "metrics_host": "http://127.0.0.1:9615"
}

Eingebettete relay chain (embedded relay chain):

# Contents of /var/lib/gantree/relay/.gnw_config.json
{
  "api_key": "YOUR-API-KEY",
  "project_id": "moonbeam",
  "client_id": "YOUR-SERVER-NAME-relay",
  "pckrc": "YOUR-PCK-KEY",
  "metrics_host": "http://127.0.0.1:9616"
}

Der nächste Schritt: systemd-Konfigurationsdatei generieren.

Parachain:

# Contents of /etc/systemd/system/gantree-parachain.service

[Unit]
Description=Gantree Node Watchdog Parachain
After=network.target

[Service]
WorkingDirectory=/var/lib/gantree/parachain
Type=simple
Restart=always
ExecStart=/usr/local/bin/gantree_node_watchdog

[Install]
WantedBy=multi-user.target

Eingebettete relay chain (embedded relay chain):

# Contents of /etc/systemd/system/gantree-relay.service

[Unit]
Description=Gantree Node Watchdog Relay
After=network.target

[Service]
WorkingDirectory=/var/lib/gantree/relay
Type=simple
Restart=always
ExecStart=/usr/local/bin/gantree_node_watchdog

[Install]
WantedBy=multi-user.target

Wir sind fast fertig! Es bleibt nur noch die systemd-Dienste aktivieren und starten, Logs auf Fehler kontrollieren:

sudo systemctl enable gantree-parachain
sudo systemctl start gantree-parachain && journalctl -f -u gantree-parachain

sudo systemctl enable gantree-relay
sudo systemctl start gantree-relay && journalctl -f -u gantree-relay

In den Logs sollte das "waiting for provisioning" angezeigt werden. Sobald dies abgeschlossen ist, können Sie sich bei https://app.gantree.io anmelden und Netzwerke auswählen. Sie sehen einen Link View Monitoring Dashboard zu Ihrem benutzerdefinierten Prometheus / Grafana-Dashboard, das Sie an Ihre Bedürfnisse anpassen können.

Original (engl.)