Logotipo de Zephyrnet

Una guía práctica para el monitoreo y la observabilidad de dispositivos IoT

Fecha:

Una guía práctica para el monitoreo y la observabilidad de dispositivos IoT

Monitoreo y la observabilidad son vitales para mantener la confiabilidad, eficiencia y seguridad de los dispositivos IoT. Cuando se hacen correctamente, ofrecen una descripción general en tiempo real de sus sistemas de IoT, pero también garantizan el acceso a los datos necesarios para solucionar problemas históricos. Sin embargo, cuando nos enfrentamos a los miles de dispositivos IoT diversos, lograr estos objetivos plantea muchos desafíos.

¿Debo monitorear o debo observar?

Primero, revisemos la terminología en monitoreo y observabilidad de IoT, ya que las palabras "monitoreo" y "observabilidad" a menudo se usan indistintamente a pesar de sus diferencias.

Empecemos por el seguimiento, un término con una historia más establecida. En esencia, el seguimiento tiene como objetivo ofrecer información sobre el estado y el rendimiento de un sistema.

Esto comienza recopilando y analizando métricas relevantes. El análisis normalmente se presenta a través de paneles de control. Sin embargo, una pila de monitoreo razonable debería ir más allá de la representación visual, evaluando las métricas en tiempo real y alertando a los usuarios sobre cualquier anomalía o problema.

Pero el enfoque tradicional de seguimiento tiene un inconveniente: requiere que sepas qué buscar. Este método puede resultar insuficiente cuando se encuentran problemas nuevos.

Aquí es donde entra en juego la observabilidad, ya que puede ayudarle a manejar las llamadas incógnitas. En pocas palabras, un sistema es observable cuando se pueden responder preguntas sobre su funcionamiento interno únicamente a partir de sus resultados. Los resultados habituales del software incluyen registros, métricas y seguimientos.

Un sistema con buena observabilidad no sólo es más fácil de solucionar, sino que también permite detectar una gama mucho más amplia de problemas. Esto se debe a que tiene una visión mucho mejor del sistema, por lo que es más fácil obtener respuestas a sus preguntas sobre lo que realmente está sucediendo.

La observabilidad es especialmente importante en el contexto de IoT, donde los sistemas involucran numerosos dispositivos y módulos. Intentar anticipar cada combinación potencial de estados que podrían generar problemas es poco práctico a esta escala, si no imposible.

Métricas esenciales y enfoques de seguimiento

Exploremos los datos que vale la pena rastrear y los instrumentos específicos diseñados para ayudarnos con esta tarea.

¿Estamos obteniendo los datos?

No es ningún secreto que el Internet de las cosas suele tener más que ver con los datos que con las cosas. Por eso es fundamental vigilar la transmisión de datos de sus dispositivos. Una plataforma de IoT sólida debe vigilar de cerca métricas como la frecuencia de los mensajes y el volumen de datos transmitidos.

Sin embargo, observar manualmente el tráfico de miles de dispositivos obviamente no es una buena idea. La necesidad de alertas automáticas es incuestionable en este caso. Lo mínimo sobre lo que se le debe alertar es cuando el dispositivo no envía ningún dato, pero espera que lo haga.

Sin embargo, tenga en cuenta que los dispositivos de IoT suelen funcionar en entornos impredecibles, como áreas con conexiones a Internet poco fiables. Por lo tanto, un breve intervalo en la transmisión de datos no siempre indica un problema con el dispositivo.

Además, es una práctica común almacenar los mensajes en un buffer, ya sea en su dispositivo o en una puerta de enlace perimetral, para no perder ningún dato importante. La cuestión es que debes tener mucho cuidado de no hacer que tus umbrales sean demasiado sensibles. De lo contrario, se le alertará sobre cada problema en la red, lo que inevitablemente conduce a la fatiga de las alertas, y las alertas perderán su potencial.

Información general sobre el estado del dispositivo

Monitorear el estado del dispositivo implica rastrear varias métricas clave. Puede pensar en CPU, consumo de memoria y tráfico de red. Tener acceso a estas métricas puede ayudar a identificar problemas de rendimiento, detectar errores de software o incluso revelar ataques externos.

Hay muchas formas de exponer estas métricas. Sin embargo, la comunidad de ingenieros está actualmente cautivada por las capacidades de OpenTelemetría.

Uno de sus principales puntos de venta es su enfoque independiente del proveedor. Es decir, puedes elegir entre una gran cantidad de backends de observabilidad para el almacenamiento y el posterior análisis. Esto ha llevado a que se hayan creado todo tipo de herramientas para trabajar con él.

Entonces, no importa qué idioma o sistema estés usando, estás cubierto. Esto es muy útil, especialmente en el salvaje mundo de IoT, donde cada dispositivo puede ejecutar su software único.

OpenTelemetry admite tres tipos principales de señales: métricas, registros y seguimientos. Para la mayoría de los casos descritos en esta sección, los dispositivos simplemente necesitan exponer varias métricas relevantes, como su consumo de memoria actual.

Luego, estas métricas deben transportarse a la nube, donde se pueden visualizar, configurar alertas, etc. Este camino ya está allanado para los casos de uso de IoT con proyectos como OpenTelemetry Collector o Telegraf que pueden ayudarle a recopilar métricas de sus dispositivos de IoT.

Otras señales específicas de dominio

Además de las características generales del envío de datos y la utilización de recursos, es posible que necesite realizar un seguimiento de algunos valores específicos del dominio. Esto podría implicar el envío de registros, seguimientos o mensajes simples que contengan contenido específico de la aplicación.

Tanto para los registros como para los seguimientos, puede volver a confiar en el ecosistema OpenTelemetry. Esto le permite analizar registros y seguimientos utilizando sus backends preferidos, como Grafana Loki/Tempo o la pila Elastic Observability, ¡sin esfuerzo adicional! La mensajería es, por otro lado, la funcionalidad principal de toda plataforma de IoT razonable. En otras palabras, estos enfoques deberían ser fáciles de implementar en la mayoría de los escenarios.

La simplicidad de los registros

Consideremos, por ejemplo, una máquina cosechadora autónoma. Es posible que desee realizar un seguimiento de sus actividades. Una forma sencilla de hacer esto es enviar un registro cuando comenzó la actividad con algunos metadatos adicionales.

Puedes hacer lo mismo cuando finalice la actividad y para otros eventos relevantes. Básicamente, cada registro es solo un evento estructurado con varias propiedades requeridas. A continuación se muestra un ejemplo de un registro enviado cuando el recolector comienza su secuencia de atraque:

Además de los campos principales, como marca de tiempo y cuerpo, el mensaje puede contener atributos adicionales que describan el evento con mayor detalle. Estos bits adicionales pueden ser útiles cuando buscas errores. Así que asegúrese de incluir toda la información importante.

Los conocimientos contextuales profundos con rastros

Si desea obtener información un poco más detallada, también puede emplear el rastreo. Una traza corresponde a una operación lógica de un sistema y está implícitamente definida por sus tramos. Un tramo representa una única unidad de trabajo de esa operación. Se define por sus horas de inicio y finalización, atributos y, opcionalmente, un intervalo principal.

Gracias a las referencias principales, la traza forma un gráfico dirigido que describe la operación particular y sus subrutinas. Además, los intervalos pueden contener múltiples eventos de intervalo que describen un evento que ocurrió en un momento específico.

Si bien los rastreos generalmente se asocian con el monitoreo de sistemas distribuidos, también es posible utilizar el rastreo en dispositivos de IoT para ayudarlo a comprender el panorama general de lo que sucede en el campo. Digamos que tiene curiosidad sobre cómo regresa la cosechadora autónoma a su estación de acoplamiento.

Consulte la figura siguiente, donde el acoplamiento corresponde al tramo raíz de nivel superior. Primero, el recolector necesita ubicar la estación de acoplamiento, por lo que llama a una API. Esta operación corresponde a un intervalo de niños. Un ejemplo de evento de extensión puede ser el momento en que la cosechadora abandonó el campo. Cuando se utilizan todos los instrumentos de rastreo juntos, se puede ver la imagen completa del funcionamiento del dispositivo.

Regreso a lo básico con mensajes simples

En determinados escenarios, enviar mensajes estructurados simples puede resultar más práctico que utilizar las señales de OpenTelemetry. Volviendo al ejemplo de la cosechadora autónoma, probablemente querrás rastrear su ubicación.

Si desea visualizar la ubicación en tiempo real, OpenTelemetry actualmente no admite una señal que se ajuste semánticamente a este escenario. La coincidencia más cercana probablemente sería su API de eventos, que aún se encuentra en una fase experimental (en el momento de escribir este artículo en el primer trimestre de 1). En su lugar, considere enviar el siguiente mensaje JSON:

Idealmente, la plataforma de IoT que está utilizando debería poder analizar dichos mensajes e ingerirlos en la base de datos adecuada de su elección. A partir de ahí, podrá analizar y visualizar los datos según sus necesidades.

Hemos recreado este ejemplo con la plataforma Spotflow IoT para demostrar la simplicidad. Configuramos un dispositivo que envía periódicamente mensajes con su ubicación y velocidad a la plataforma. Luego, enrutamos el flujo de datos a nuestro receptor de salida integrado de Grafana. ¡Y eso es! La plataforma ahora toma todos los mensajes y los coloca en una base de datos de series temporales que se puede consultar en Grafana.

Además, este es un excelente caso de uso para la visualización de Grafana Geomap. Le permite trazar fácilmente las ubicaciones de sus dispositivos. Vea la imagen a continuación, donde utilizamos Grafana para visualizar los datos recibidos del dispositivo.

Puntos clave

¡Y eso es! Ahora está listo para configurar su pila de observabilidad y comenzar a monitorear sus dispositivos IoT. Nos gustaría que este artículo sirva como punto de partida en el mundo de la observabilidad de IoT. Recuerde las siguientes ideas clave:

  • Monitorear la transmisión de datos: Vigile de cerca la transmisión de datos desde sus dispositivos y esté preparado con alertas para detectar cualquier interrupción con prontitud.
  • Seguimiento de las métricas de estado del dispositivo: muestra métricas relevantes sobre el estado de tu dispositivo para garantizar un funcionamiento fluido.
  • Envíe datos específicos de la aplicación a través de registros, seguimientos y mensajes estructurados: Piense en su dominio y el funcionamiento del dispositivo y envíe todos los datos que puedan ser necesarios para futuras depuraciones y monitoreo en tiempo real.
  • Explora el ecosistema OpenTelemetry: Considere usar el ecosistema OpenTelemetry en IoT, ya que se convierte en un estándar de observabilidad que le brinda muchas opciones para backends de observabilidad y brinda servicio a varios tiempos de ejecución de dispositivos.
punto_img

Información más reciente

punto_img