Monitorizarea Geth cu InfluxDB și Grafana
Acest tutorial vă va ajuta să configurați monitorizarea nodului dvs. Geth ca să-i înțelegeți performanțele și să identificați posibilele probleme.
Condiții prealabile
- Trebuie să știți deja să rulați o instanță de Geth.
- Ar fi util să aveți câteva cunoștințe elementare de terminal în Linux, deoarece majoritatea etapelor și exemplelor sunt din acest mediu.
- Consultați acest videoclip cu prezentarea generală a setului de metrici Geth: Monitorizarea unei infrastructuri Ethereum de Péter Szilágyi(opens in a new tab).
Stiva de monitorizare
Un client Ethereum colectează numeroase date care se pot citi sub forma unei baze de date cronologice. Pentru a face monitorizarea mai ușoară, puteți introduce aceste date într-un software de vizualizare a datelor. Sunt disponibile mai multe opțiuni:
- Prometheus(opens in a new tab) (model „pull”)
- InfluxDB(opens in a new tab) (model „push”)
- Telegraf(opens in a new tab)
- Grafana(opens in a new tab)
- Datadog(opens in a new tab)
- Chronograf(opens in a new tab)
De asemenea, există Geth Prometheus Exporter(opens in a new tab), o opțiune preconfigurată cu InfluxDB și Grafana. Se poate configura cu ușurință folosind docker și Ethbian OS(opens in a new tab) pentru RPi 4.
În acest tutorial vă vom configura clientul Geth pentru a împinge date către InfluxDB, care va crea cu ele o bază de date, apoi Grafana pentru a crea o vizualizare grafică a acestora. Dacă executați manual acest proces, vă va ajuta să îl înțelegeți mai bine, să îl modificați și să îl implementați în diferite medii.
Configurarea InfluxDB
Întâi și-ntâi să descărcăm și să instalăm InfluxDB. Pe pagina de lansare a InfluxDB(opens in a new tab) găsim mai multe opțiuni de instalare. Alegeți-o pe cea potrivită mediului dumneavoastră. O puteți instala și dintr-un repository(opens in a new tab) (depozitar). De exemplu, pentru distribuția bazată pe Debian:
1curl -tlsv1.3 --proto =https -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add2source /etc/lsb-release3echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list4sudo apt update5sudo apt install influxdb -y6sudo systemctl enable influxdb7sudo systemctl start influxdb8sudo apt install influxdb-client
După ce ați terminat instalarea cu succes a InfluxDB, asigurați-vă că acesta funcționează în fundal. În mod implicit, poate fi accesat la adresa localhost:8086
. Înaintea folosirii clientului influx
, va trebui să creați un nou client cu privilegii administrative. Acesta va fi responsabil cu managementul la nivel înalt, crearea de baze de date și utilizatori.
1curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE USER username WITH PASSWORD 'password' WITH ALL PRIVILEGES"
Abia acum veți putea folosi clientul „influx” pentru a intra in shell-ul InfluxDB(opens in a new tab) cu acest utilizator.
1influx -username 'username' -password 'password'
Prin comunicarea directă cu InfluxDB, vă puteți crea baze de date și utilizatori pentru metricile geth.
1create database geth2create user geth with password choosepassword
Verificați datele de intrare create cu:
1show databases2show users
Părăsiți shell-ul InfluxDB.
1exit
Acum InfluxDB funcționează și este configurat să stocheze metricile Geth.
Pregătirea Geth
După configurarea unei baze de date, trebuie să activăm colectarea metricilor în Geth. Mare atenție la METRICS AND STATS OPTIONS
din geth --help
. Acolo vom găsi mai multe opțiuni, iar în cazul nostru vrem ca Geth să împingă („push”) date în InfluxDB. Configurarea de bază specifică atât punctul final unde InfluxDB este accesibil, cât și autentificarea pentru bazele de date.
1geth --metrics --metrics.influxdb --metrics.influxdb.endpoint "http://0.0.0.0:8086" --metrics.influxdb.username "geth" --metrics.influxdb.password "chosenpassword"
Aceste flaguri pot fi adăugate la o comandă care pornește clientul sau pot fi salvate în fișierul de configurare.
Puteți verifica dacă Geth împinge cu succes date, de exemplu, prin listarea metricilor din baza de date. În shell-ul InfluxDB:
1use geth2show measurements
Configurarea Grafana
În următoarea etapă vom instala Grafana, care va interpreta grafic datele. Urmați procesul de instalare pentru mediul dvs. din documentația Grafana. Aveți grijă să instalați versiunea OSS, dacă nu doriți altfel. Exemple de etape de instalare pentru distribuțiile Debian care utilizează depozitarul:
1curl -tlsv1.3 --proto =https -sL https://packages.grafana.com/gpg.key | sudo apt-key add -2echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list3sudo apt update4sudo apt install grafana5sudo systemctl enable grafana-server6sudo systemctl start grafana-server
Când ați reușit să rulați Grafana, poate fi accesat la localhost:3000
. Utilizați browserul preferat pentru a accesa această cale, apoi conectați-vă cu datele de autentificare implicite (utilizator: admin
și parolă: admin
). Atunci când vi se solicită, schimbați parola implicită și salvați-o.
Veți fi redirecționat către pagina de pornire Grafana. Mai întâi configurați datele sursă. Faceți clic pe pictograma din bara din stânga și selecționați „Data sources” (Surse de date).
Încă nu a fost creată nicio sursă de date, deci ca să definiți una faceți clic pe „Add data source” (Adăugați o sursă de date).
Pentru această configurare selectați „InfluxDB” și continuați.
Configurarea sursei de date este destul de simplă dacă instrumentele folosite sunt pe aceeași mașină. Pentru accesarea bazei de date, trebuie să configurați adresa InfluxDB și detaliile. Consultați imaginea de mai jos.
Dacă totul este complet și InfluxDB este accesibil, faceți clic pe „Save and test” (Salvați și testați) și așteptați să apară confirmarea.
Grafana este acum configurat să citească date din InfluxDB. Iar acum va trebui să creați un tablou de bord care să le interpreteze și să le afișeze. Proprietățile tablourilor de bord sunt codificate în fișiere JSON care pot fi create de oricine și pot fi importate cu ușurință. În bara din stânga, faceți clic pe „Create and Import” (Creați și importați).
Pentru un tablou de bord de monitorizare Geth, copiați ID-ul acestui tablou de bord(opens in a new tab) și inserați-l în „Import page” (Pagina de import) din Grafana. După salvarea tabloului de bord, acesta ar trebui să arate astfel:
Vă puteți modifica tabloul de bord. Fiecare panou poate fi editat, mutat, eliminat sau adăugat. Vă puteți schimba configurațiile. Dvs. hotărâți! Pentru a afla mai multe despre cum funcționează tablourile de bord, consultați documentația Grafana(opens in a new tab). S-ar putea să vă intereseze și Alerting(opens in a new tab) (Alertarea). Aceasta vă permite să configurați notificări de alertă atunci când metricile ating anumite valori. Sunt acceptate diverse canale de comunicare.
Ultima modificare: @nhsz(opens in a new tab), 15 august 2023