Lanjut ke konten utama

Mengawasi Geth dengan InfluxDB dan Grafana

kliennode
Tingkat menengah
Mario Havel
13 Januari 2021
4 bacaan singkat minute read

Tutorial ini akan menolong Anda menyiapkan node Geth Anda sehingga Anda dapat lebih baik memahami kinerjanya dan mengenali masalah yang mungkin muncul.

Prasyarat

Mengawasi tumpukan

Klien Ethereum mengumpulkan banyak data yang dapat dibaca dalam bentuk basis data kronologis. Untuk mempermudah pengawasan, Anda dapat mem-feed ini ke dalam perangkat lunak visualisasi data. Ada beberapa opsi yang tersedia:

Ada juga Pengekspor Prometheus Geth(opens in a new tab), suatu opsi yang dikonfigurasi sebelumnya dengan InfluxDB dan Grafana. Anda dapat menyiapkannya dengan mudah menggunakan docker dan Sistem Operasi Ethbian(opens in a new tab) untuk RPi 4.

Dalam tutorial ini, kita akan menyiapkan klien Geth Anda untuk mendorong data ke InfluxDB untuk membuat basis data dan Grafana untuk membuat visualisasi grafik datanya. Melakukan ini secara manual akan membantu Anda untuk dengan lebih baik memahami prosesnya, mengubahnya, dan menyebarkannya di lingkungan yang berbeda.

Menyiapkan InfluxDB

Pertama - tama, mari kita unduh dan instal InfluxDB. Berbagai opsi pengunduhan dapat ditemukan di halaman rilis influxdata(opens in a new tab). Pilih salah satu yang cocok dengan lingkungan Anda. Anda juga dapat menginstalnya dari suatu repository(opens in a new tab). Sebagai contoh dalam distribusi berbasis Debian:

1curl -tlsv1.3 --proto =https -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add
2source /etc/lsb-release
3echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
4sudo apt update
5sudo apt install influxdb -y
6sudo systemctl enable influxdb
7sudo systemctl start influxdb
8sudo apt install influxdb-client

Setelah berhasil menginstal InfluxDB, pastikan program itu beroperasi di latar belakang. Secara default, ia dapat ditemukan pada localhost:8086. Sebelum menggunakan klien influx, Anda harus membuat pengguna baru dengan hak istimewa administrator. Pengguna ini akan berguna untuk manajemen tingkat tinggi, yang membuat basis data dan pengguna.

1curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE USER username WITH PASSWORD 'password' WITH ALL PRIVILEGES"

Sekarang Anda dapat menggunakan klien influx untuk masuk ke shell InfluxDB(opens in a new tab) dengan pengguna ini.

1influx -username 'username' -password 'password'

Dengan berkomunikasi secara langsung dengan InfluxDB dalam shell-nya, Anda dapat membuat basis data dan pengguna untuk metrik geth.

1create database geth
2create user geth with password choosepassword

Verifikasi entri yang dibuat dengan:

1show databases
2show users

Biarkan shell InfluxDB.

1exit

InfluxDB beroperasi dan dikonfigurasi untuk menyimpan metrik dari Geth.

Menyiapkan Geth

Setelah menyiapkan basis data, kita perlu mengaktifkan pengumpulan metrik di Geth. Perhatikan METRICS AND STATS OPTIONS dalam geth --help. Beberapa opsi dapat ditemukan di sana, dalam kasus ini kita ingin Geth mendorong data ke dalam InfluxDB. Penyiapan dasar menentukan endpoint di mana InfluxDB dapat dijangkau dan otentikasi untuk basis data.

1geth --metrics --metrics.influxdb --metrics.influxdb.endpoint "http://0.0.0.0:8086" --metrics.influxdb.username "geth" --metrics.influxdb.password "chosenpassword"

Bendera ini dapat ditambahkan ke command yang memulai klien atau yang disimpan ke dalam berkas konfigurasi.

Anda dapat memverifikasi bahwa Geth berhasil mendorong data, sebagai contoh dengan merincikan metrik dalam basis data. Dalam shell InfluxDB:

1use geth
2show measurements

Menyiapkan Grafana

Langkah berikutnya adalah menginstal Grafana yang akan mengartikan data secara grafis. Ikuti proses instalasi untuk lingkungan Anda dalam dokumentasi Grafana. Sebaliknya, pastikan menginstal versi OSS jika Anda tidak ingin menggunakan cara sebelumnya. Langkah instalasi percontohan untuk distribusi Debian yang menggunakan repository:

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.list
3sudo apt update
4sudo apt install grafana
5sudo systemctl enable grafana-server
6sudo systemctl start grafana-server

Ketika Anda telah membuat Grafana beroperasi, ia seharusnya dapat dicapai di localhost:3000. Gunakan peramban yang Anda inginkan untuk mengakses jalur ini, lalu masuk dengan kredensial default (pengguna: admin dan kata sandi: admin). Ketika diminta, ubah kata sandi defaultnya dan simpan.

Anda akan diarahkan kembali ke halaman beranda Grafana. Pertama - tama, siapkan data sumber Anda. Klik pada ikon konfigurasi di bar kiri dan pilih "Sumber data".

Tidak ada sumber data mana pun yang dibuat, klik pada "Tambahkan sumber data" untuk menentukan satu sumber.

Untuk penyiapan ini, pilih "InfluxDB" dan lanjutkan.

Konfigurasi sumber data cukup mudah jika Anda menjalankan perangkat pada mesin yang sama. Anda perlu menyiapkan alamat dan detail InfluxDB untuk mengakses basis data. Lihat gambar di bawah.

Jika semuanya lengkap dan InfluxDB dapat dicapai, klik pada "Simpan dan uji" dan tunggu hingga konfirmasinya muncul.

Grafana sekarang telah disiapkan untuk membaca data dari InfluxDB. Sekarang Anda perlu membuat dasbor yang akan mengartikan dan menampilkannya. Properti dasbor dikodekan dalam berkas JSON yang dapat dibuat oleh siapa pun dan dengan mudah diimpor. Pada bar kiri, klik pada "Buat dan Impor".

Untuk dasbor pengawasan Geth, salin ID dasbor ini(opens in a new tab) dan tempelkan pada "Impor halaman" di Grafana. Setelah menyimpan dasbor, ia seharusnya tampak seperti ini:

Anda dapat memodifikasi dasbor Anda. Setiap panel dapat diedit, dipindahkan, dihilangkan atau ditambahkan. Anda dapat mengubah konfigurasi Anda. Terserah Anda! Untuk mempelajari lebih lanjut tentang bagaimana dasbor bekerja, lihat Dokumentasi Grafana(opens in a new tab). Anda juga mungkin tertarik dengan Memperingatkan(opens in a new tab). Ini memungkinkan Anda menyiapkan pemberitahuan ketika metrik mencapai nilai tertentu. Berbagai kanal komunikasi didukung.

Terakhir diedit: @yeremiaryangunadi(opens in a new tab), 15 Agustus 2023

Apakah tutorial ini membantu?