Monitoreando Geth con InfluxDB y Grafana
Este tutorial le ayudará a configurar el monitoreo de su nodo Geth para que pueda comprender mejor su rendimiento e identificar problemas potenciales.
Pre requisitos
- Ya debería estar ejecutando una instancia de Geth.
- La mayoría de los pasos y ejemplos son para el entorno linux; el conocimiento básico sobre terminales será útil.
- Eche un vistazo a este video de resumen del conjunto de métricas de Geth: Monitoreo de una infraestructura de Ethereum (Péter Szilágyi)(opens in a new tab).
Pila de monitoreo
Un cliente de Ethereum recopila muchos datos que pueden ser leídos en forma de una base de datos cronológica. Para facilitar el monitoreo, usted puede colocar esto en software de visualización de datos. Hay varias opciones disponibles:
- Prometheus(opens in a new tab) (modelo pull)
- InfluxDB(opens in a new tab) (modelo 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)
También está el Geth Prometheus Exporter(opens in a new tab), una opción preconfigurada con InfluxDB y Grafana. Puede configurarlo fácilmente usando docker y Ethbian OS(opens in a new tab) para RPi 4.
En este tutorial configuraremos su cliente Geth para que envíe datos a InfluxDB a fin de crear una base de datos y Grafana para crear una visualización gráfica de los datos. Hacerlo manualmente le ayudará a entender el proceso mejor, modificarlo e implementarlo en diferentes entornos.
Configuración de InfluxDB
Primero, vamos a descargar e instalar InfluxDB. Puede encontrar varias opciones de descarga en la página de liberaciones de versión de Influxdata(opens in a new tab). Elija la que se adapte a su entorno. También puede instalarlo desde un repositorio(opens in a new tab). Por ejemplo en la distribución basada en 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
Después de instalar InfluxDB, asegúrese de que se ejecute en segundo plano. Por defecto, es accesible en localhost:8086
. Antes de usar el cliente influx
, tiene que crear un nuevo usuario con privilegios de administrador. Este usuario servirá para una gestión de alto nivel, con creación de bases de datos y usuarios.
1curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE USER username WITH PASSWORD 'password' WITH ALL PRIVILEGES"
Ahora puede utilizar el cliente influx para ingresar InfluxDB shell(opens in a new tab) con este usuario.
1influx -username 'username' -password 'password'
Comunicándose directamente con InfluxDB en su shell, puede crear una bases de datos y un usuario para las métricas geth.
1create database geth2create user geth with password choosepassword
Verifique las entradas creadas con:
1show databases2show users
Abandone el shell de InfluxDB.
1exit
InfluxDB se está ejecutando y está configurado para almacenar métricas de Geth.
Preparar Geth
Después de configurar la base de datos, necesitamos habilitar la recolección de métricas en Geth. Preste atención a METRICS AND STATS OPTIONS
en geth --help
. Se pueden encontrar múltiples opciones aquí; en este caso queremos que Geth envíe datos a InfluxDB. La configuración básica especifica el endpoint donde InfluxDB es accesible y la autenticación para la base de datos.
1geth --metrics --metrics.influxdb --metrics.influxdb.endpoint "http://0.0.0.0:8086" --metrics.influxdb.username "geth" --metrics.influxdb.password "chosenpassword"
Estos indicadores, o flags, pueden ser añadidos a un comando que inicie el cliente o guardados en el archivo de configuración.
Puede verificar que Geth esté enviando datos con éxito, por ejemplo, incluyendo métricas en la base de datos. En el shell de InfluxDB:
1use geth2show measurements
Configurar 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 cosa. Ejemplo de pasos de instalación para las distribuciones de Debian utilizando el repositorio:
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
Cuando tenga Grafana funcionando, debería ser accesible en localhost:3000
. Utilice su navegador preferido para acceder a esta ruta y luego inicie sesión con las credenciales predeterminadas (usuario: admin
y contraseña: admin
). Cuando se le solicite, cambie la contraseña por defecto y guárdela.
Será redirigido a la página principal de Grafana. Primero, configure los datos de origen. Haga clic en el ícono de configuración de la barra izquierda y seleccione "Data sources".
No hay ninguna fuente de datos creada todavía, así que haga clic en "Add data source" para definir una.
Para esta configuración, seleccione "InfluxDB" y proceda.
La configuración de la fuente de datos es bastante sencilla si ejecuta herramientas en la misma máquina. Necesita configurar la dirección de InfluxDB y los detalles para acceder a la base de datos. Consulte la siguiente imagen.
Si todo está completado e InfluxDB es alcanzable, haga clic en "Save and test" y espere a que se muestre la confirmación.
Grafana ahora está configurado para leer datos de InfluxDB. Ahora necesita crear un panel que se encargará de interpretarlos y mostrarlos. Las propiedades de los paneles están codificados en archivos JSON que pueden ser creados por cualquier persona y fácilmente importados. En la barra lateral, haga clic en "Create and Import".
Para obtener un panel de monitoreo de Geth, copie el ID de este panel(opens in a new tab) y péguelo en la "página de importación" de Grafana. Luego de guardar el panel, debería verse así:
Puede modificar sus paneles. Cada panel puede ser editado, movido, removido o agregado. Puede cambiar las configuraciones. ¡Usted decide! Para leer más sobre el funcionamiento de los paneles, consulte la documentación de Grafana(opens in a new tab). También puede que le interese Alerting(opens in a new tab). Esto le permite configurar notificaciones de alertas para cuando las métricas alcancen ciertos valores. Se admiten varios canales de comunicación.
Última edición: @nhsz(opens in a new tab), 15 de agosto de 2023