Saltar al contenido principal

Monitorización de Geth con InfluxDB y Grafana

clientes
nodos
Intermedio
Mario Havel
13 de enero de 2021
5 minutos de lectura

Este tutorial le ayudará a configurar la monitorización para su nodo de Geth para que pueda comprender mejor su rendimiento e identificar posibles problemas.

Requisitos previos

Pila de monitorización

Un cliente de Ethereum recopila una gran cantidad de datos que se pueden leer en forma de base de datos cronológica. Para facilitar la monitorización, puede introducir estos datos en un software de visualización de datos. Hay varias opciones disponibles:

También existe Geth Prometheus Exporter (opens in a new tab), una opción preconfigurada con InfluxDB y Grafana.

En este tutorial, configuraremos su cliente Geth para enviar datos a InfluxDB para crear una base de datos y a Grafana para crear una visualización gráfica de los datos. Hacerlo manualmente le ayudará a comprender mejor el proceso, modificarlo y desplegarlo en diferentes entornos.

Configuración de InfluxDB

Primero, descarguemos e instalemos InfluxDB. Puede encontrar varias opciones de descarga en la página de versiones de Influxdata (opens in a new tab). Elija la que mejor se adapte a su entorno. También puede instalarlo desde un repositorio (opens in a new tab). Por ejemplo, en una distribución basada en 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

Después de instalar InfluxDB correctamente, asegúrese de que se esté ejecutando en segundo plano. Por defecto, se puede acceder a él en localhost:8086. Antes de usar el cliente influx, debe crear un nuevo usuario con privilegios de administrador. Este usuario servirá para la gestión de alto nivel, creando bases de datos y usuarios.

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

Ahora puede usar el cliente influx para entrar en la shell de InfluxDB (opens in a new tab) con este usuario.

influx -username 'username' -password 'password'

Comunicándose directamente con InfluxDB en su shell, puede crear una base de datos y un usuario para las métricas de Geth.

create database geth
create user geth with password choosepassword

Verifique las entradas creadas con:

show databases
show users

Salga de la shell de InfluxDB.

exit

InfluxDB se está ejecutando y está configurado para almacenar métricas de Geth.

Preparación de Geth

Después de configurar la base de datos, necesitamos habilitar la recopilación de métricas en Geth. Preste atención a METRICS AND STATS OPTIONS en geth --help. Allí se pueden encontrar múltiples opciones; en este caso, queremos que Geth envíe datos a InfluxDB. La configuración básica especifica el punto de conexión (endpoint) donde se puede acceder a InfluxDB y la autenticación para la base de datos.

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

Estas banderas (flags) se pueden añadir a un comando que inicie el cliente o guardarse en el archivo de configuración.

Puede verificar que Geth está enviando datos correctamente, por ejemplo, enumerando las métricas en la base de datos. En la shell de InfluxDB:

use geth
show measurements

Configuración de Grafana

El siguiente paso es instalar Grafana, que interpretará los datos gráficamente. Siga el proceso de instalación para su entorno en la documentación de Grafana. Asegúrese de instalar la versión OSS si no desea otra. Ejemplo de pasos de instalación para distribuciones Debian utilizando el repositorio:

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

Cuando tenga Grafana en ejecución, debería poder acceder a él en localhost:3000. Utilice su navegador preferido para acceder a esta ruta, luego inicie sesión con las credenciales predeterminadas (usuario: admin y contraseña: admin). Cuando se le solicite, cambie la contraseña predeterminada y guárdela.

Grafana dashboard screenshot for Geth monitoring (panel 1)

Será redirigido a la página de inicio de Grafana. Primero, configure sus datos de origen. Haga clic en el icono de configuración en la barra izquierda y seleccione "Data sources" (Fuentes de datos).

Grafana dashboard screenshot for Geth monitoring (panel 2)

Aún no se ha creado ninguna fuente de datos, haga clic en "Add data source" (Añadir fuente de datos) para definir una.

Grafana dashboard screenshot for Geth monitoring (panel 3)

Para esta configuración, seleccione "InfluxDB" y continúe.

Grafana dashboard screenshot for Geth monitoring (panel 4)

La configuración de la fuente de datos es bastante sencilla si está ejecutando las herramientas en la misma máquina. Necesita establecer la dirección de InfluxDB y los detalles para acceder a la base de datos. Consulte la imagen a continuación.

Grafana dashboard screenshot for Geth monitoring (panel 5)

Si todo está completo y se puede acceder a InfluxDB, haga clic en "Save and test" (Guardar y probar) y espere a que aparezca la confirmación.

Grafana dashboard screenshot for Geth monitoring (panel 6)

Grafana ahora está configurado para leer datos de InfluxDB. Ahora necesita crear un panel (dashboard) que los interpretará y mostrará. Las propiedades de los paneles están codificadas en archivos JSON que pueden ser creados por cualquier persona e importados fácilmente. En la barra izquierda, haga clic en "Create and Import" (Crear e importar).

Grafana dashboard screenshot for Geth monitoring (panel 7)

Para un panel de monitorización de Geth, copie el ID de este panel (opens in a new tab) y péguelo en la página "Import" (Importar) en Grafana. Después de guardar el panel, debería verse así:

Grafana dashboard screenshot for Geth monitoring (panel 8)

Puede modificar sus paneles. Cada panel se puede editar, mover, eliminar o añadir. Puede cambiar sus configuraciones. ¡Depende de usted! Para obtener más información sobre cómo funcionan los paneles, consulte la documentación de Grafana (opens in a new tab). También podría interesarle la sección de Alertas (opens in a new tab). Esto le permite configurar notificaciones de alerta para cuando las métricas alcancen ciertos valores. Se admiten varios canales de comunicación.