Lompat ke konten utama

Memantau Geth dengan InfluxDB dan Grafana

klien
node
Menengah
Mario Havel
13 Januari 2021
5 menit baca

Tutorial ini akan membantu Anda menyiapkan pemantauan untuk node Geth Anda sehingga Anda dapat lebih memahami kinerjanya dan mengidentifikasi potensi masalah.

Prasyarat

Tumpukan pemantauan

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

Ada juga Geth Prometheus Exporter (opens in a new tab), sebuah opsi yang telah dikonfigurasi sebelumnya dengan InfluxDB dan Grafana.

Dalam tutorial ini, kita akan menyiapkan klien Geth Anda untuk mendorong data ke InfluxDB guna membuat basis data dan Grafana untuk membuat visualisasi grafik dari data tersebut. Melakukannya secara manual akan membantu Anda memahami prosesnya dengan lebih baik, mengubahnya, dan menyebarkannya di berbagai lingkungan.

Menyiapkan InfluxDB

Pertama, mari kita unduh dan instal InfluxDB. Berbagai opsi unduhan dapat ditemukan di halaman rilis Influxdata (opens in a new tab). Pilih salah satu yang sesuai dengan lingkungan Anda. Anda juga dapat menginstalnya dari sebuah repositori (opens in a new tab). Misalnya pada distribusi berbasis Debian:

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

Setelah berhasil menginstal InfluxDB, pastikan ia berjalan di latar belakang. Secara default, ia dapat dijangkau di localhost:8086. Sebelum menggunakan klien influx, Anda harus membuat pengguna baru dengan hak istimewa admin. Pengguna ini akan berfungsi untuk manajemen tingkat tinggi, membuat basis data dan pengguna.

curl -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.

influx -username 'username' -password 'password'

Berkomunikasi langsung dengan InfluxDB di shell-nya, Anda dapat membuat basis data dan pengguna untuk metrik geth.

create database geth
create user geth with password choosepassword

Verifikasi entri yang dibuat dengan:

show databases
show users

Tinggalkan shell InfluxDB.

exit

InfluxDB sedang berjalan 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 di geth --help. Beberapa opsi dapat ditemukan di sana, dalam hal ini kita ingin Geth mendorong data ke InfluxDB. Penyiapan dasar menentukan titik akhir di mana InfluxDB dapat dijangkau dan autentikasi untuk basis data.

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

Tanda (flag) ini dapat ditambahkan ke perintah yang memulai klien atau disimpan ke file konfigurasi.

Anda dapat memverifikasi bahwa Geth berhasil mendorong data, misalnya dengan mencantumkan metrik dalam basis data. Di shell InfluxDB:

use geth
show measurements

Menyiapkan Grafana

Langkah selanjutnya adalah menginstal Grafana yang akan menafsirkan data secara grafis. Ikuti proses instalasi untuk lingkungan Anda dalam dokumentasi Grafana. Pastikan untuk menginstal versi OSS jika Anda tidak menginginkan yang lain. Contoh langkah-langkah instalasi untuk distribusi Debian menggunakan repositori:

curl -tlsv1.3 --proto =https -sL https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt update
sudo apt install grafana
sudo systemctl enable grafana-server
sudo systemctl start grafana-server

Saat Anda telah menjalankan Grafana, ia seharusnya dapat dijangkau di localhost:3000. Gunakan peramban pilihan Anda untuk mengakses jalur ini, lalu masuk dengan kredensial default (pengguna: admin dan kata sandi: admin). Saat diminta, ubah kata sandi default dan simpan.

Grafana dashboard screenshot for Geth monitoring (panel 1)

Anda akan diarahkan ke halaman beranda Grafana. Pertama, siapkan data sumber Anda. Klik ikon konfigurasi di bilah kiri dan pilih "Data sources".

Grafana dashboard screenshot for Geth monitoring (panel 2)

Belum ada sumber data yang dibuat, klik "Add data source" untuk menentukannya.

Grafana dashboard screenshot for Geth monitoring (panel 3)

Untuk penyiapan ini, pilih "InfluxDB" dan lanjutkan.

Grafana dashboard screenshot for Geth monitoring (panel 4)

Konfigurasi sumber data cukup mudah jika Anda menjalankan alat pada mesin yang sama. Anda perlu mengatur alamat InfluxDB dan detail untuk mengakses basis data. Rujuk ke gambar di bawah ini.

Grafana dashboard screenshot for Geth monitoring (panel 5)

Jika semuanya sudah selesai dan InfluxDB dapat dijangkau, klik "Save and test" dan tunggu hingga konfirmasi muncul.

Grafana dashboard screenshot for Geth monitoring (panel 6)

Grafana sekarang disiapkan untuk membaca data dari InfluxDB. Sekarang Anda perlu membuat dasbor yang akan menafsirkan dan menampilkannya. Properti dasbor dikodekan dalam file JSON yang dapat dibuat oleh siapa saja dan diimpor dengan mudah. Di bilah kiri, klik "Create and Import".

Grafana dashboard screenshot for Geth monitoring (panel 7)

Untuk dasbor pemantauan Geth, salin ID dari dasbor ini (opens in a new tab) dan tempelkan di "Import page" di Grafana. Setelah menyimpan dasbor, tampilannya akan seperti ini:

Grafana dashboard screenshot for Geth monitoring (panel 8)

Anda dapat memodifikasi dasbor Anda. Setiap panel dapat diedit, dipindahkan, dihapus, atau ditambahkan. Anda dapat mengubah konfigurasi Anda. Semuanya terserah Anda! Untuk mempelajari lebih lanjut tentang cara kerja dasbor, rujuk ke dokumentasi Grafana (opens in a new tab). Anda mungkin juga tertarik dengan Peringatan (Alerting) (opens in a new tab). Ini memungkinkan Anda menyiapkan notifikasi peringatan ketika metrik mencapai nilai tertentu. Berbagai saluran komunikasi didukung.