De: Rodrigo Jimenez [mailto:rjimenez@boletinoficial.gob.ar]
Enviado el: viernes, 03 de agosto de 2018 10:16 a.m.
Para: blockchain
Asunto: Sobre Monitoreo de la red
Buenas,
En relación al estado de salud de la red , creo que resulta importante poder recolectar información histórica y de tiempo real de distintos parámetros de la red.
Parámetros a medir en los clientes geth (nodos de la red):
- Número de bloque actual (con timestamp)/Número de bloque anterior(con timestamp)
- Tiempo desde último bloque
- Numero de peers conectados
- Estado de nodos sealers y de propuestas en curso.
Al recolectar estos valores desde múltiples clientes geth podríamos tener una idea del estado de la red y diagnosticar condiciones irregulares (caídas de nodos clientes, sealers, cambio los parámetros de quorum, etc).
Entiendo que va a ser recomendable que al menos dos equipos de monitoreo en sitios distintos se encarguen de recolectar estas métricas del mayor número posible de nodos (para tener una foto lo más completa posible del estado de la red)
Una opciones es usar Zabbix Server, que nos permitiría el almacenamiento de métricas históricas y envío de alertas; y el zabbix-agent para métricas de OS y ejecución de scripts para métricas especiales.
También puede resultar útil configurar la API de net-stats de Ethereum y el Dashboard que muestra (pero no alerta) todos los indicadores mencionados anteriormente.
La “eth-net-intelligence-api“ es una mini app en nodeJS que se conecta a puerto de HTTP RPC de geth y envía estadísticas a un dashboard central.
El eth-netstats es justamente ese dashboard central, también hecho en nodeJS, levanta un puerto de escucha HTTP donde recibe métricas de las eth-net-intelligence-api y presenta un dashboard bastante completo del estado de la red.
(Dashboard: https://github.com/cubedro/eth-netstats y API: https://github.com/cubedro/eth-net-intelligence-api)
Saludos!
Rodrigo Jimenez
Dirección General de
Sistemas Informáticos rjimenez@boletinoficial.gob.ar