Monitoreo de nodo
En este capítulo, lo guiaremos a través de la configuración del monitoreo local para su nodo validador.
Pre-requisitos
Debe tener su Nodo collator en funcionamiento.
Esta guía se probó en la versión Ubuntu 20.04 LTS.
Configuración de Prometheus
En el primer paso, configuraremos el servidor Prometheus.
Usuario y directorios
Creamos un usuario solo para fines de monitoreo que no tiene un directorio de inicio y no se puede usar para iniciar sesión.
$ sudo useradd --no-create-home --shell /usr/sbin/nologin prometheus
Luego creamos directorios para el ejecutable y el archivo de configuración.
$ sudo mkdir /etc/prometheus
$ sudo mkdir /var/lib/prometheus
Cambie la propiedad de los directorios para restringirlos a nuestro nuevo usuario de monitoreo.
$ sudo chown -R prometheus:prometheus /etc/prometheus
$ sudo chown -R prometheus:prometheus /var/lib/prometheus
Instalar Prometheus
Consulte el número de versión más reciente de Prometheus en GitHub release page.
En el momento de escribir este artículo es la v2.25.2. Inserte la última versión de lanzamiento en los siguientes comandos.
# download prometheus
$ wget https://github.com/prometheus/prometheus/releases/download/v2.25.2/prometheus-2.25.2.linux-amd64.tar.gz
# unpack the binaries
$ tar xfz prometheus-*.tar.gz
# enter the unpacked directory
$ cd prometheus-2.25.2.linux-amd64
Ahora copie los binarios en la carpeta local.
$ sudo cp ./prometheus /usr/local/bin/
$ sudo cp ./promtool /usr/local/bin/
Ahora necesitamos asignar esos binarios a nuestro usuario recién creado.
$ sudo chown prometheus:prometheus /usr/local/bin/prometheus
$ sudo chown prometheus:prometheus /usr/local/bin/promtool
A continuación, copiaremos la interfaz web y los ajustes preestablecidos de configuración..
$ sudo cp -r ./consoles /etc/prometheus
$ sudo cp -r ./console_libraries /etc/prometheus
Y Puede que ya lo hayas adivinado, pero también estamos cambiando la propiedad de esos directorios.
$ sudo chown -R prometheus:prometheus /etc/prometheus/consoles
$ sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
Ahora tenemos todo lo que necesitamos del paquete descargado, así que daremos un paso atrás y realizaremos una limpieza.
$ cd .. && rm -rf prometheus*
Creemos un archivo de configuración YAML
para Prometheus con el editor de su elección (nano / vim / pico).
$ sudo nano /etc/prometheus/prometheus.yml
Nuestra configuración se divide en tres secciones:
global
: establece los valores predeterminados parascrape_interval
y el intervalo de ejecución de reglas con `Evaluation_interval´rule_files
: especifica los archivos de reglas que el servidor Prometheus debe cargarscrape_configs
: aquí es donde configuras los recursos de monitoreo
Lo mantendremos muy básico y terminaremos con algo como esto:
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# - "weHaveNo.rules"
scrape_configs:
- job_name: "prometheus"
scrape_interval: 5s
static_configs:
- targets: ["localhost:9090"]
- job_name: "substrate_node"
scrape_interval: 5s
static_configs:
- targets: ["localhost:9615"]
El primer trabajo de scrape exporta datos del propio Prometheus, el segundo exporta las métricas del nodo HydraDX.
Ajustamos el scrape_interval
de ambos trabajos para obtener estadísticas más detalladas. Esto anula los valores globales.
El target
en static_configs
establece dónde se ejecutan los exportadores, aquí nos ceñimos a los puertos predeterminados.
Después de guardar la configuración, cambiaremos, una vez más, la propiedad.
$ sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml
Iniciando Prometheus
Para que Prometheus se inicie automáticamente y se ejecute en segundo plano, usaremos systemd
.
Cree una nueva configuración (nuevamente con el editor de su elección):
$ sudo nano /etc/systemd/system/prometheus.service
Pegue la siguiente configuración y guarde el archivo.
[Unit]
Description=Prometheus Monitoring
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
A continuación realizaremos los siguientes tres pasos:
systemctl deamon-reload
carga nuevas configuraciones y actualiza las existentes
systemctl enable
activa nuestro nuevo servicio
systemctl start
desencadena la ejecución del servicio
Puede realizar los pasos anteriores en un comando ejecutando:
$ sudo systemctl daemon-reload && systemctl enable prometheus && systemctl start prometheus
Ahora debería poder acceder a la interfaz web de Prometheus en http://localhost:9090/.
Exportador de nodor
Instalaremos Node Exporter para extraer las métricas del servidor que se utilizarán en el panel.
Compruebe el número de versión de la última versión. Aqui y actualice el comando.
En el momento de redactar este artículo, la última versión estaba 1.1.2
.
Instalar Node Exporter
Descargue la última versión.
$ wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
Desempaquete el archivo que acaba de descargar. Esto creará una carpeta llamada node_exporter-1.1.2.linux-amd64
.
$ tar xvf node_exporter-1.1.2.linux-amd64.tar.gz
A continuación, copiamos el binario en nuestro directorio de aplicaciones local y lo asignamos a nuestro usuario de monitoreo.
# copy binary
$ cp node_exporter-1.1.2.linux-amd64/node_exporter /usr/local/bin
# set ownership
$ sudo chown prometheus:prometheus /usr/local/bin/node_exporter
Ahora podemos hacer una limpieza y eliminar el paquete descargado y descomprimido.
$ rm -rf node_exporter*
Crear un servicio Systemd
Al igual que prometheus, queremos que Node Exporter también se ejecute como un servicio. Cree un servicio systemd con su editor de elección.
$ sudo nano /etc/systemd/system/node_exporter.service
Y pega la siguiente configuración en él.
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
Ahora activaremos e iniciaremos el servicio con este resumen.
$ sudo systemctl daemon-reload && systemctl enable node_exporter && systemctl start node_exporter
Añade Scrape Job para Node Exporter
El Exportador de nodos ya está en funcionamiento, pero debemos decirle a Prometheus que extraiga sus datos. Abriremos el archivo de configuración una vez más con el editor que elijamos.
$ sudo nano /etc/prometheus/prometheus.yml
Y en la parte inferior del archivo, agregaremos una configuración de scrape más. Pegue el siguiente contenido y guarde el archivo.
- job_name: 'node_exporter'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9100']
Para aplicar la configuración de cambios, es necesario reiniciar el servicio Prometheus.
$ sudo systemctl restart prometheus.service
Las métricas de su servidor ahora se raspan y se pueden encontrar en la interfaz web de Prometheus. Los necesitaremos más tarde para nuestro tablero.
Grafana Configuración
Podemos ver nuestras métricas en la interfaz web, pero no es así como queremos monitorearlas. Lo queremos bonito y bonito. Ahí es donde entra en juego Grafana.
Instalar Grafana
Compruebe cuál es la última versión de Grafana con este link.
Puede cambiar el número de versión en los siguientes comandos o copiar los comandos de instalación directamente desde el enlace.
En el momento de escribir este artículo, la última versión era "7.5.1".
$ sudo apt-get install -y adduser libfontconfig1
$ wget https://dl.grafana.com/oss/release/grafana_7.5.1_amd64.deb
$ sudo dpkg -i grafana_7.5.1_amd64.deb
El paquete viene con un servicio systemd
incorporado que configuraremos e iniciaremos como el servicio Prometheus.
$ sudo systemctl daemon-reload && sudo systemctl enable grafana-server && sudo systemctl start grafana-server
Acceder a la interfaz web
Podremos abrir la interfaz web de Grafana en http://localhost:3000/.
El inicio de sesión predeterminado de Grafana es:
User: admin
Password: admin

Configuración de la fuente de datos
Haga clic en el engranaje de configuración en el menú y seleccione fuentes de datos. En la siguiente ventana, haga clic en "Agregar fuente de datos" y seleccione "Prometheus"..
En el siguiente formulario, no necesita cambiar nada más que la URL.
Colocarhttp://localhost:9090/
y clic Save and Test
.

Importando the Dashboard
Por favor presione el bonton Plus
en la navegacion principal y selecciona import
.

Nosotros usaremos el HydraDX Dashboard y para cargarlo, simplemente ingrese el id 14158
y presione el botón Load
.

No necesita mucha configuración aquí, solo asegúrese de que Prometheus se use como fuente de datos. Ahora puede finalizar la importación.

Ahora debería ver su panel de control de inmediato. Si algunos paneles están vacíos, asegúrese de que su selección sobre los paneles sea así:
Chain Metrics
: SubstrateChain Instance
: localhost:9615Server Job
: node_exporterServer Host
: localhost:9100