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ías estar ejecutando una instancia de Geth.
- La mayoría de los pasos y ejemplos son para el entorno linux, el conocimiento básico de la terminal será útil.
- Echa un vistazo a este video resumen del conjunto de métricas de Geth: Monitorización de una infraestructura Ethereum por Péter Szilágyi(opens in a new tab).
Monitorización
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 alimentar esto en software de visualización de datos. Hay varias opciones disponibles:
- Prometheus(opens in a new tab) (pull model)
- 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 hay Geth Prometheus Exporter(opens in a new tab), una opción preconfigurada con InfluxDB y Grafana. Puedes configurarlo fácilmente usando docker y Ethbian OS(opens in a new tab) para RPi 4.
En este tutorial configuraremos su cliente Geth para enviar datos a InfluxDB para 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.
Configurando InfluxDB
Primero, vamos a descargar e instalar InfluxDB. Varias opciones de descarga se pueden encontrar en Influxdata release page(opens in a new tab). Elige el que se adapte a tu 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 está ejecutando en segundo plano. Por defecto, es accesible en localhost:8086
. Antes de usar el cliente influx
, tienes que crear un nuevo usuario con privilegios de administrador. Este usuario servirá para una gestión de alto nivel, creando 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'
Directamente comunicándose con InfluxDB en su shell, puede crear bases de datos y usuario para las métricas geth.
1create database geth2create user geth with password choosepassword
Verificar entradas creadas con:
1show databases2show users
Deja el shell de InfluxDB.
1exit
InfluxDB se está ejecutando y configurado para almacenar métricas de Geth.
Preparando Geth
Después de configurar la base de datos, necesitamos habilitar la recolección de métricas en Geth. Presta atención a METRICS AND STATS OPTIONS
en geth --help
. Se pueden encontrar múltiples opciones, 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 parámetros pueden ser añadidos a un comando que inicia el cliente o guardados en el archivo de configuración.
Puede verificar que Geth está enviando datos con éxito, por ejemplo listando métricas en la base de datos. Deja el shell de InfluxDB:
1use geth2show measurements
Configurando 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 tengas a Grafana funcionando, debería ser accesible 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 por defecto y guárdela.
Serás redirigido a la página principal de Grafana. Primero, configura tus datos de origen. Haga clic en el icono de configuración de la barra izquierda y seleccione "Fuentes de datos".
No hay ninguna fuente de datos creada todavía, haga clic en "Añadir fuente de datos" para definir una.
Para esta configuración, seleccione "InfluxDB" y proceda.
La configuración de la fuente de datos es bastante directa si está ejecutando 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 click en "Save and test" y espere que se muestre la confirmación.
Grafana ahora está configurado para leer datos de InfluxDB. Ahora necesitas crear un panel que se encargará de interpretarla y mostrarla. 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 click en "Create and Import".
Para 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í:
Puedes modificar tus paneles. Cada panel puede ser editado, movido, removido o agregado. Puedes cambiar tus configuraciones. ¡Tú decides! 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 muestres interés en Alerting(opens in a new tab). Esto te permite configurar notificaciónes de alertas para cuando las métricas alcancen ciertos valores. Varios canales de comunicación están soportados.
Última edición: , 21 de febrero de 2024