IoT Monitor
IoT Monitor
Une solution de surveillance MQTT légère et haute performance implémentée à la fois en Zig et Rust, conçue pour une surveillance et une gestion fiables des dispositifs IoT avec des capacités de traitement de données avancées.
Vue d’ensemble
IoT Monitor est un démon de surveillance à double implémentation qui assure la fiabilité du système dans les environnements IoT. Le projet inclut à la fois une implémentation basée sur Zig (iotmonitor) et une implémentation basée sur Rust (rsiotmonitor), offrant une flexibilité dans le déploiement et les caractéristiques de performance. L’implémentation Rust fournit des fonctionnalités améliorées incluant la fusion de données, la gestion de l’historique et des capacités de requête avancées.
Fonctionnalités principales
Surveillance en Temps Réel
- Suivi du statut des dispositifs
- Collecte de données de capteurs
- Surveillance de la santé du système
- Surveillance des processus et gestion d’état
Intégration MQTT
- Support natif du protocole MQTT
- Gestion de sujets personnalisés
- Gestion des niveaux QoS
- Abonnement dynamique aux sujets
Gestion Avancée des Données
- Sauvegarde de l’historique avec fichiers Parquet rotatifs
- Fusion de données avec capacités de requête SQL
- Support du protocole Arrow Flight
- Requête dynamique des données historiques
Performance & Fiabilité
- Faible empreinte de ressources
- Débit élevé
- Latence minimale
- Capacités de restauration d’état
Détails Techniques
Implémentation Zig (iotmonitor)
- Langage: Zig
- Plateformes Cibles: ESP32, Raspberry Pi
- Fonctionnalités:
- Utilisation mémoire légère
- Temps de démarrage rapide
- Accès direct au matériel
- Optimisé pour environnements contraints
Implémentation Rust (rsiotmonitor)
- Langage: Rust
- Plateformes Cibles: Linux, Windows
- Fonctionnalités:
- Garanties de sécurité améliorées
- Concurrence avancée
- Intégration d’écosystème riche
- Fusion de données avec Apache Arrow
- Support du format de fichier Parquet
- Capacités de requête SQL
Feuille de Route de l’Implémentation Rust
Fonctionnalités Complétées:
- ✅ Surveillance des processus
- ✅ Gestion et restauration des états
- ✅ Intégration MQTT
- ✅ Sauvegarde de l’historique
- ✅ Création de fichiers Parquet rotatifs
- ✅ Requête dynamique de l’historique (intégration DataFusion)
En Développement:
- 🔄 API Web pour l’information
- 🔄 Définitions de règles d’agent légères
- 🔄 Construction d’écosystème de plateforme d’application
Pour Commencer
Installation
L’implémentation Rust peut être installée directement depuis GitHub:
cargo install --git https://github.com/mqttiotstuff/rsiotmonitor rsiotmonitor
Structure du Projet
Le projet est disponible en deux implémentations:
- Version Zig: iotmonitor
- Version Rust: rsiotmonitor
Chaque implémentation inclut:
- Instructions de compilation
- Guide de configuration
- Documentation API
- Exemples de déploiements
- Support Docker
Fonctionnalités Avancées (Implémentation Rust)
Fusion de Données & Intégration SQL
- Protocole Apache Arrow Flight: Transfert de données haute performance
- DataFusion: Moteur de requête SQL en mémoire
- Fichiers Parquet: Format de stockage en colonnes pour requêtes efficaces
- Requêtes Dynamiques: Requêtes SQL en temps réel sur données historiques
Gestion de l’Historique
- Fichiers Parquet Rotatifs: Stockage efficace avec rotation automatique
- Données Temporelles: Optimisées pour données de capteurs IoT
- Compression: Compression de données intégrée pour efficacité de stockage
- Optimisation des Requêtes: Récupération rapide des données historiques
Capacités de Surveillance
- Surveillance des Processus: Suivi des processus système et de leurs états
- Restauration d’État: Récupération automatique après redémarrages système
- Métriques Personnalisées: Paramètres de surveillance définis par l’utilisateur
- Système d’Alerte: Mécanismes de notification configurables
Cas d’Usage
- Surveillance de Serre: Suivi de capteurs environnementaux
- Domotique: Gestion de dispositifs intelligents
- IoT Industriel: Surveillance des processus de fabrication
- Détection Environnementale: Collecte de données climatiques et météorologiques
- Détection de Présence de Dispositifs: Suivi et gestion d’actifs
- Analyse de Données: Analyse de tendances historiques et reporting
État du Développement
Les deux implémentations sont activement maintenues, la version Rust offrant des fonctionnalités supplémentaires et la version Zig fournissant une utilisation optimale des ressources pour environnements contraints. L’implémentation Rust est actuellement en développement actif avec de nouvelles fonctionnalités ajoutées régulièrement, incluant des capacités d’API Web et des définitions de règles d’agent avancées.
Pile Technologique
Implémentation Rust
- Cœur: Rust avec async/await
- Traitement de Données: Apache Arrow, DataFusion
- Stockage: Format de fichier Parquet
- Communication: Protocole MQTT
- Déploiement: Conteneurs Docker
- Système de Build: Cargo avec support de cross-compilation
Caractéristiques de Performance
- Utilisation Mémoire: Optimisée pour environnements à faibles ressources
- Débit: Traitement de données haute performance
- Latence: Temps de réponse minimaux pour surveillance en temps réel
- Scalabilité: Capacités de mise à l’échelle horizontale