Monitorizar tu nodo Bitcoin con Prometheus y Grafana: métricas clave
Introducción
En un entorno de producción o para desarrolladores avanzados, disponer de una visión en tiempo real del estado de un nodo Bitcoin es fundamental. Mediante Prometheus para la recolección de métricas y Grafana para la visualización, puedes detectar problemas de sincronización, saturación de la mempool o cuellos de botella en recursos.
Requisitos previos
Un nodo Bitcoin Core corriendo en modo mainnet o testnet.
Acceso por RPC habilitado en bitcoin.conf.
Servidor o máquina con Prometheus instalado.
Instancia de Grafana disponible.
Herramienta bitcoin_exporter (exportador para Prometheus).
Configuración de Bitcoin Core
Habilitar RPC
En ~/.bitcoin/bitcoin.conf, añade o edita:
server=1
rpcuser=tu_usuario
rpcpassword=tu_contraseña
rpcallowip=127.0.0.1
Reinicia tu nodo para aplicar cambios.
Instalar y configurar el Exportador de Prometheus
Obtención del Exportador
Existen varios proyectos uno popular es bitcoin-exporter. Clona el repositorio:
git clone https://github.com/delphinus/bitcoin_exporter.git
Compilar y ejecutar
Dentro del directorio:
go build .
./bitcoin_exporter –bitcoin.rpcuser=tu_usuario –bitcoin.rpcpassword=tu_contraseña –bitcoin.rpcport=8332
Por defecto expone métricas en el puerto 9115 en formato Prometheus.
Configurar Prometheus
En el archivo prometheus.yml, añade el job del exportador:
– job_name: bitcoin_node
static_configs:
– targets: [localhost:9115]
Reinicia Prometheus para que comience a recolectar estas métricas.
Crear dashboard en Grafana
1. Entra en tu instancia de Grafana y crea un Nuevo Dashboard.
2. Añade un Panel por cada métrica clave (ver sección siguiente).
3. Usa consultas PromQL como:
bitcoin_block_height
rate(bitcoin_block_interval_seconds[1h])
4. Ajusta visualizaciones (gráficas de tiempo, gauges, tablas). Puedes importar dashboards comunitarios desde https://grafana.com/grafana/dashboards.
Métricas clave y cómo interpretarlas
Métricas de sincronización
bitcoin_block_height: número de bloque actual. Debe crecer hasta alcanzar la altura de la red.
bitcoin_block_interval_seconds: tiempo entre bloques. Valor medio ~600 s variaciones grandes indican problemas.
bitcoin_block_sync_delta: diferencia entre tu altura y la altura de un nodo de referencia. Si no disminuye, hay fallo de conexión.
Métricas de red
bitcoin_peers: número de pares conectados. Un rango sano es 8–125.
bitcoin_connection_type: tipos de conexiones (inbound/outbound).
Métricas de mempool
bitcoin_mempool_size_bytes: tamaño del mempool en bytes.
bitcoin_mempool_transactions: número de transacciones pendientes.
Métricas de recursos del sistema
process_cpu_seconds_total: tiempo de CPU consumido por el exportador.
process_resident_memory_bytes: memoria usada.
node_filesystem_avail_bytes: espacio libre en disco donde reside blocks y chainstate.
Disponibilidad y alertas
up{job=bitcoin_node}: valor 1 si Prometheus scrapeó con éxito.
bitcoin_exporter_last_scrape_error: errores en la última recolección.
Tabla resumen de métricas
Conclusión
Monitorizar tu nodo Bitcoin con Prometheus y Grafana te brinda una visión proactiva: detectas desincronizaciones, saturación de la mempool o problemas de hardware antes de que afecten a tus servicios. Ajusta umbrales, crea alertas en Grafana y mantén siempre la trazabilidad de tu infraestructura.