0% encontró este documento útil (0 votos)
62 vistas9 páginas

Monitorización Node-Red en Ubuntu

Este documento describe el desarrollo de una aplicación para monitorear variables del sistema y de la red a través de Node-Red. Se implementaron nodos para monitorear el uso de CPU, temperatura, nivel de batería, velocidad de descarga e internet, y RSSI. También se configuró una alerta de correo electrónico para notificar cuando el nivel de batería es bajo. Se demostró el funcionamiento de los parámetros y las limitaciones al usar una máquina virtual.

Cargado por

Andres Flores
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
62 vistas9 páginas

Monitorización Node-Red en Ubuntu

Este documento describe el desarrollo de una aplicación para monitorear variables del sistema y de la red a través de Node-Red. Se implementaron nodos para monitorear el uso de CPU, temperatura, nivel de batería, velocidad de descarga e internet, y RSSI. También se configuró una alerta de correo electrónico para notificar cuando el nivel de batería es bajo. Se demostró el funcionamiento de los parámetros y las limitaciones al usar una máquina virtual.

Cargado por

Andres Flores
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Monitorización de Variables mediante Node Red

Miguel Morocho
[email protected]
Universidad de Cuenca

Abstract
En el presente documento se plantea una aplicación a través de in-
terfaz web utilizando el software libre Node-Red implementado en el sis-
tema operativo Ubuntu. Se desarrollan un conjunto de parámetros para
monitorizar el sistema como uso del CPU, temperatura, nivel de baterı́a,
también para monitorizar la red tanto la velocidad de descarga, subida
y RSSI. Adicionalmente se realizo una alerta a través de Gmail la cual
permite notificar al usuario cuando su nivel de baterı́a esta baja. Todo
esto se realizo con los nodos que brinda Node-Red. El nivel de compleji-
dad que requiere utilizar Node-Red se ve limitado al realizar programas
con maquinas virtuales ya que no permite la correcta configuración de
parámetros como WiFi, o parámetros mas especı́ficos como temperatura
del CPU. Se demostrara a través de pruebas el funcionamiento correcto
de los parámetros planteados y también las limitaciones encontradas al
realizarlo con una maquina virtual, en este caso Ubuntu.Finalmente se
desarrollan las conclusiones en base a la experimentación expuesta y de-
sarrollo de flujos para cada punto establecido por el decente para el pre-
sente trabajo.
Palabras clave: Red,nodos, flows,CPU, red

1 Introducción
Desde el inicio de la programación uno de los principales desafı́os de la industria
ha sido facilitar el desarrollo de aplicaciones para que la utilización de hardware,
software y dispositivos humanos se entiendan mejor. Gracias a Node-RED se
esta dando un paso más cerca de eso. a programar sin saber programar.
Node-RED es una herramienta de programación visual. Muestra visualmente
las relaciones y funciones, y permite al usuario programar sin tener que escribir
una lı́nea. Node-RED es un editor de flujo basado en el navegador donde se
puede añadir o eliminar nodos y conectarlos entre sı́ con el fin de hacer que se
comuniquen entre ellos.
Este informe se divide en las siguientes secciones: el marco teórico en el
cual consta se desarrollara los conceptos básicos y claves necesarios conocer el
funcionamiento del software a utilizar, esto nos permitirá desarrollar la practica

1
de manera correcta, los temas abordados en esta sección son: Marco Teórico
en el cual se da una breve reseña de Node-Red, Desarrollo donde se explica
como fue el desarrollo de los parámetros del sistema y parámetros de la red,
luego la sección de Conclusiones que se derivan de la experimentación realizada
y finalmente las referencias utilizadas para realizar este trabajo.

2 Marco Teórico
2.1 Node-Red
Node-RED es herramienta de desarrollo open-source basada en programación
visual que fue creada por IBM para conectar dispositivos de hardware, APIs y
servicios en lı́nea.
Una herramienta robusta, de fácil aprendizaje, y que no requiere conocimientos
de programación que se ha consolidado como una de las principales aplicaciones
de gestión y transformación de datos en tiempo real para soluciones IoT e In-
dustria 4.0.
Node-RED permite conectar gráficamente bloques predefinidos, llamados nodos,
para desarrollar una tarea concreta. La conexión de los nodos, habitualmente
una combinación de nodos de entrada, nodos de procesamiento y nodos de sal-
ida, forman lo que conocemos como flow.
Entre los nodos disponibles podemos encontrar desde protocolos estándar como
MQTT, REST, Modbus, OPC-UA, Bacnet, Websocket, hasta integraciones a
APIs de terceros como Microsoft Azure, Amazon Web Services, Twitter, Face-
book entre otras más. [1]

Figure 1: Node-Red

2.2 Librerı́a de nodos


Node-RED está creado a partir de Node.js, lo cual proporciona a la herramienta
una potencia suficiente para que sea escalable y fiable, con unos requerimientos
de computación muy bajos. Dicha caracterı́stica ha propiciado que Node-RED

2
pueda ser ejecutado en ordenadores domésticos, en servidores cloud y en dis-
positivos embebidos de bajas prestaciones.[1]
A dı́a de hoy ya hay más de 2500 nodos disponibles en la librerı́a oficial de Node-
RED, incluyendo integraciones de Smart Home, conversión entre protocolos IoT,
funciones de geolocalización, autenticación vı́a OAuth2 y mucho más.[1]
La naturaleza de la herramienta, siendo de software libre, y la facilidad por
desarrollar nuevos nodos, confluyen en que la librerı́a de nodos de Node-RED
crezca cada dı́a con nuevas aportaciones de la comunidad.

3 Desarrollo
Para el desarrollo de este programa se deberá tener instalado previamente la
librerı́a de Dashboard, ya que esta permitirá visualizar a través de una interfaz
web los diferentes parámetros configurados y medidos por el usuario.

3.1 Parámetros del sistema


Para los parámetros del sistema se realizo la instalación de los siguientes nodos:
• node-red-contrib-battery: Un nodo Node Red para obtener información
sobre la baterı́a.

• node-red-contrib-cpu: Un nodo Node Red para monitorear el uso de la


CPU.
• node-red-contrib-device-stats: Este nodo crea información estadı́stica según
la configuración del nodo en el editor. Las estadı́sticas se integrarán en
msg.payload y se emitirán al puerto de salida. Este nodo emite la infor-
mación de estadı́sticas cuando llega una carga útil de mensajes a través
de su puerto de entrada. De lo contrario, el nodo no hace nada.

3.1.1 Porcentaje de baterı́a


Para este caso se utiliza en nodo battery otorgado por la librerı́a node-red-
contrib-battey, una vez realizado esto se crea una función para que la lectura
del nivel de baterı́a sea a manera de porcentaje. En la figura 2, se observa el
flujo realizado para medir este parámetro.

Figure 2: Diagrama de flujo de porcentaje de baterı́a

En el nodo function se tiene el comando que se observa en la figura 3.

3
Figure 3: Nodo function para medir la baterı́a en porcentaje

3.1.2 Carga de CPU


Se utiliza el nodo CPU usage, se realiza la configuración del nodo haciendo doble
click y se elige la opcion de uso de CPU total, esta opción brinda información del
uso de CPU, ya que existe una opcion que indica la información de los nodos de
manera independiente. En la Figura 4 se observa el flujo realizado para lograr
este objetivo.

Figure 4: Diagrama de flujo de carga de CPU y Temperatura de CPU

Se dara doble click en CPU usage y se seleccionara únicamente la opción


”Single output message for overall cpu usage”, cuando se selecciona esta opción,
se generará un único mensaje de salida que contiene el uso general de la CPU
(con el tema ’general’). El uso general de la CPU se calcula como el uso promedio
de todos los núcleos como se muestra en la ecuación1.
U soCore1 + U soCore2 + ... + U soCore”n”
U soP romedioCP U = (1)
T otalCores

3.1.3 Temperatura CPU


La temperatura del CPU, se logra medir con el nodo mencionado anteriormente,
lo que se tiene que modificar en el nodo es la opción de temperatura que se
brinda como se observa en la figura 1. Se procede de igual manera a elegir la
opción ”Single output message with core temperature(s)”, cuando se selecciona
esta opción, se generará un único mensaje de salida que contiene los valores de
temperatura en °C (con el tema ’temperatura’).

3.1.4 Carga de memoria RAM


El parámetro adicional que se implemento fue el uso de la memoria RAM, se
utilizo la librerı́a node-red-contrib-device-stats para monitorizar esta variable y
realizar el diagrama de flujo de la figura 5.

4
Figure 5: Diagrama de flujo para observar el uso de la memoria RAM

El ”chang2: 2” rules permite configurar que información se va a tomar del


nodo ”Memory” para ello se configura como se observa en al fiugra 6.

Figure 6: Configuración nodo change para obtener uso de RAM

3.2 Parámetros de red


Los parametros de la red se configuran de manera sencilla con la instalacion de
los siguientes nodos:
• node-contrib-wifi-scan
• node-contrib-speedtest-update

• node-contrib-msg-size
El primer nodo mencionado permite calcular el RSSI, el segundo la velocidad de
acceso a internet(Descarga) y el msg-size permite analizar el tamaño de mensajes
que seran capturados al utilizar speedtest.

3.2.1 RSSI
El RSSI es elindicador de fuerza de la señal recibida (Received Signal Strength
Indicator), esta se calcula con el nodo ”wifi scan”, y se debera tomar el valor
streght con el nodo change. Se deberá tener en cuenta que la conexión de la
maquina virtual sea WiFi, pero además considerar que al ser Ubuntu virtual-
izado no se lograra obtener una buena medida o una medida nula.

3.2.2 Velocidad de acceso a internet(Descarga)


Para esto, se utiliza el nodo SpeedTest, este envia una salida de tipo objeto en
el cual con el nodo change se debera configurar para obtener la velocidad de

5
descarga y poder graficar estos datos en un dashboard.En la figura 7 se puede
observar el flujo correspondiente.

Figure 7: Diagrama de flujo para velocidad de descarga y subida

La configuración para los nodos change se muestra en las figura 8 y 9.

Figure 8: Nodo change para obtener el parámetro download

Figure 9: Nodo change para obtener el parámetro upload

3.2.3 Verificación de throughput, servidor y cliente


Para verificar el througput, se utilizara el nodo msg-size y para identificar el
cliente y servidor se usara el nodo Speedtest junto con el nodo change. La figura
10 permite observar la configuración que se llevara acabo para la medición de
estos parametros.

Figure 10: Diagrama de flujo para la obtención de thrpugput, IP cliente y Host


servidor

De igual manera se muestra la configuración de los nodos change para la


obtención de los parámetros a medir.

6
Figure 11: Configuración nodo change msg-size

Figure 12: Configuración nodo change cliente

Figure 13: Configuración nodo change servidor

3.3 Envió de alerta a través de Gmail


Para esto se deberá realizar la configuración en Gmail, es decir se debera permitir
el acceso a aplicaciones no seguras en la seccion de configuración de Google, esto
con el fin de permitir recibir los mensajes enviados desde Node Red.(Ver Figura
14)

Figure 14: Configuración para recibir mensajes de Node-Red

El diagrama de flujo presentado anteriormente se le añade el nodo switch


para configurarlo como un condicional y el nodo e-mail, que sera el encargado

7
de enviar el mensaje a Gmail.Adicionalmente, el mensaje a enviar se lo con-
figura con un nodo function (Ver Figura 15) para que ese mensaje sea enviado
a usuario.

Figure 15: Nodo function para el envı́o de un mensaje determinado via Gmail

El nodo e-mail se configura como se muestra en la figura 16.

Figure 16: Configuración nodo e-mail

Una vez realizado esto, se puede observar que al cumplir con la condición del
nivel de baterı́a en la bandeja de entrada se encuentra el mensaje configurado
en function. (Ver Figura 17)

Figure 17: Recepción de alerta de baterı́a baja

Finalmente el desarrollo de esta aplicación de manera completa se puede


observar en la figura 18

Figure 18: Diagrama de flujo para medición de parámetros del sistema y la red

8
4 Conclusiones
El uso de Node Red es intuitivo, permite realizar programas de manera sen-
cilla y evitando en gran medida la parte de programación, ya que al instalar el
nodo de Dashboard permitió observar cada resultado a través de la interfaz web.

Al usar maquinas virtuales es notorio las limitaciones técnicas que se pre-


sentan al intentar monitorizar variables que no son fı́sicas para Node-Red, es
decir se verifico de distintas maneras la medición de temperatura pero al ser una
maquina virtual no reconocı́a el CPU y no obstante no se lograba medir este
parámetro. También al uso de scan-wifi, al estar configurada la maquina con una
interfaz Ethernet no constaba con las propiedades de la tecnologı́a inalámbrica.
.
Mediante la programación de flujos se logro realizar la implementación de
una alerta a través de correo electrónico, esto permite al usuario crear alertas
según la aplicación deseada o el parámetro a medir.

El presente documento demostró la facilidad con la cual se pueden obtener


diferentes parámetros del sistema al hacer uso de los nodos que se encuentran
disponibles en el software Node Red, muchos de estos nodos realizan la medición
de muchas variables y no requieren programación.

References
[1] Pickdata, “Node-RED, la herramienta de programación visual para el Inter-
net of Things,” may 2020.

También podría gustarte