Iota - Agente IOTHUB

Un agente de IoT es un componente que permite que un grupo de dispositivos envíe sus datos y se gestione desde un Context Broker utilizando sus propios protocolos nativos. Los Agentes de IoT también deberían poder tratar los aspectos de seguridad de la plataforma Fiware (autenticación y autorización del canal) y brindar otros servicios comunes al programador del dispositivo.

El agente de Onesait Edge conocido como Iota, siendo el componente desplegado en todos los dipsositivos de campo que recopila, gestiona y envia la información al sistema de gestión remoto, manteniendo una comunicación segura e encriptada con la plataforma. Al mismo tiempo, permite no solo el envío de información, sino tambien la posibilidad de abrir comunicaciones remotas por ssh y ejecutar comandos predefinidos. Cada agente de IoT proporciona una interfaz de puerto que se utiliza para las interacciones cone l resto de servicios, gestionando todas las interacciones que se producen mediante el protocolo de cada uno de los dispositivos conectados.

El iota proporciona multiples capacidades entre las más destacas:

  • Sistema multitenant: donde se gestionan hilos en paralelo para cada uno de los procesos que gestiona el nodo. Estos son los hilos principales.

    • Obtención de los datos de seguridad en campo.

      • Seguridad TMP2.0

      • Seguridad por identificador específico de dispositivo (urn)

      • Conexión del cliente mqtt para gestionar el tópico de telemetría para enviar información de la máquina a la nube.

  • Gestión de seguridad física del hardware mediante TPM 2.0

  • Encriptación de la información.

  • Recoleccion de información generada por todos los servicios desplegados en el nodo.

Depsliegue componentes Edge Device

La anteriores capacidades cubren todas aquellas funcionalidades necesarias para la gestión y control remoto completo de los dispositivos desplegados en campo, entre ellas encontramos :

Funcionalidad

Descripción

Funcionalidad

Descripción

Funcionalidades OS

  • Extracción MAC-ADDRESS

  • Extracción CPU_ID

  • Creación de usuarios ssh

  • Ejecución de scripts

MQTT

  • Conexión IoTHUB

  • Publicación

    • responder comandos

    • telemetría

  • Suscripción

    • recibir comandos

Docker

Git

  • Descarga de ficheros desde un repositorio git mediante la función clone. Los siguientes parámetros son proporcionados como petición de comando mqtt.

    • url de descarga

    • usuario

    • password

Comandos

  • remote_ssh

  • git_download

  • whoami

  • bash_comand

  • system_info

  • docker

    • login

    • container_list

    • images_list

    • consumo recursos contenedores (docker stat)

    • start/stop/remove

    • abrir puerto http/https en explorador web (reverse_https)

    • logs (últimas líneas)

RemoteSSH

  • El agente recibirá un comando indicándole a que servidor ssh necesita establecer un túnel inverso ssh y así ofrecer la capacidad de conectarse a el remotamente.

docker-compose

  • Control de despliegue mediante docker-compose. (Pendiente a futuro)

  • Conocer el estado del despliegue y notificación al IoTHUB (Pendiente a futuro)

Monitorizacion

  • Equipo

    • CPU, %CPU

    • DISCO, %DISCO

    • RAM, %RAM

  • Contenedores (servicios desplegados)

    • CPU, %CPU

    • RAM, %RAM

    • DISCO, %DISCO

Configuracion/parametrizacion

  • Sistema basado en valores por defecto

  • Ajuste de parámetros en base a fichero de configuración (iotagent.enc)

Logs

  • Se definen varios niveles de logs (error,info,debug) y se grabará la informacion en el sistema con una rotacion (a definir)