Monitorización con Grafana & Prometheus

En este tutorial vamos a crear un panel de monitorización con grafana para nuestra stake pool, esta consta de 3 nodos relays y 1 nodo core.
Uno de los relays, el número 3, lo usaremos para levantar el servicio de Grafana con su interfaz web. El resto de nodos relays y el core siguen los mismos pasos.

Vamos a monitorizar tanto las métricas generadas por cardano-node
, como las métricas generales del servidor con node-exporter
de Prometheus.
Puesta a punto del entorno
Instalar Grafana
Añadimos el key al apt :
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
Añadimos el repositorio al apt:
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
Actualizamos los paquetes(ya tenemos el repo verificable de grafana en apt)
sudo apt update
Instalamos grafana:
sudo apt install grafana
Cambiamos el puerto donde se desplegará Grafana:
sudo vim /etc/grafana/grafana.ini
# The http port to use
http_port = 5009
Elige el puerto de tu elección(también puedes dejar el puerto por defecto):
http_port = <port>
Inicia el servicios de grafana y haz que se inicie automáticamente si se reinicia el servidor.
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
Comprueba el estado de grafana:
sudo systemctl status grafana-server
Otras opciones:
sudo systemctl restart grafana-server
sudo systemctl stop grafana-server
Abre el puerto establecido en grafana.ini
con ufw:
sudo ufw allow proto tcp from any to any port <port>
Finalmente, instala el plugin Clock:
grafana-cli plugins install grafana-clock-panel
Instala Prometheus & node exporter
sudo apt-get install -y prometheus prometheus-node-exporter prometheus-alertmanager
Busca el archivo de configuración de prometheus-node-exporter
:
sudo find / -name prometheus-node-exporter.service
sudo vim path-to/prometheus-node-exporter.service
Elige el puerto de tu elección, busca la siguiente linea:
ExecStart=/usr/local/bin/node_exporter
Cámbiala por:
ExecStart=/usr/local/bin/node_exporter --web.listen-address=:<port>
Start the services and enable them to init when reboot:
Inicia el servicio y haz que se inicie automáticamente si se reinicia el servidor.
sudo systemctl start prometheus
sudo systemctl start prometheus-node-exporter
sudo systemctl enable prometheus
sudo systemctl enable prometheus-node-exporter
Una vez que todos los servicios está instalados y funcionando, vamos a editar el archivo de configuración de prometheus para añadir la fuente de las métricas de todos los nodos(incluído el localhost). Buscamos el archivo de configuración:
sudo find / -name prometheus.yml
sudo vim <path-to>/prometheus.yml
Añadir las metricas a Prometheus
Antes de continuar, asegúrate de completar todos los pasos del resto de nodos.
Reemplaza el contenido por:
# global configs
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
scrape_configs:
- job_name: 'cardano' # To scrape data from the running cardano-node
scrape_interval: 15s
static_configs:
- targets: ['<ip-address1>:12798']
labels:
alias: 'relay1'
type: 'cardano-node'
- targets: ['<ip-address2>:12798']
labels:
alias: 'relay2'
type: 'cardano-node'
- targets: ['<ip-address3>:12798']
labels:
alias: 'core'
type: 'cardano-node'
- targets: ['127.0.0.1:12798']
labels:
alias: 'relay3-host'
type: 'cardano-node'
- job_name: 'node' # To scrape data from a node exporter to monitor the linux host metrics.
scrape_interval: 15s
static_configs:
- targets: ['<ip-address1>:<node-exporter-port>']
labels:
alias: 'relay1'
type: 'host-system'
- targets: ['<ip-address2>:<node-exporter-port>']
labels:
alias: 'relay2'
type: 'host-system'
- targets: ['<ip-address3>:<node-exporter-port>']
labels:
alias: 'core'
type: 'host-system'
- targets: ['127.0.0.1:<node-exporter-port>']
labels:
alias: 'relay3-host'
type: 'host-system'
Date cuenta que el relay3 es el host de grafana, entonces solo necesitamos especificar la ip 127.0.0.1
para esta fuente, porque está todo en la misma máquina.
Reiniciamos el servicio para cargar la nueva configuración:
sudo systemctl restart prometheus
Grafana monitor web
Añade la fuente de métricas Prometheus:
En el panel de grafana, Ir a Configuration > Data Sources > Add data source y selecciona Prometheus.

Crear un panel para tu stake pool desde cero
En el menú izquierdo de grafana, vete a + > Create > Dashboard.

Crear un gráfico que muestre los peers
conectados a cardano-node
.
1. Seleccionamos la fuente de datos Prometheus

2. Seleccionamos la métrica específica

Ejemplo de gráfico:

3. Establece las propiedades de la gráfica

Cargar un dashboard desde archivo.
En el panel de grafana, Ir a + > Create > Import > introduce el contenido json.
Ejemplo de panel version 1:

Apoyo nuestro trabajo delegando al pool Ada Booster.
Última actualización
¿Te fue útil?