Rapport final 2026-05-06 - Infrastructure Smart City
- BunkerM accessible, Stellio pipeline actif - 6 tables CrateDB, dashboards Grafana (AirQuality, Traffic, Weather) - OpenRemote: API 405 à résoudre (assets à créer via UI) - Services unhealthy identifiés (CrateDB Stellio, Mosquitto, MongoDB) - ThingsBoard en boucle redémarrage - 30 capteurs attendus (SENSOR_COUNT=30)
This commit is contained in:
131
RAPPORT_FINAL_2026-05-06.md
Normal file
131
RAPPORT_FINAL_2026-05-06.md
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
# SMART CITY DIGITAL TWIN - RAPPORT FINAL 2026-05-06
|
||||||
|
|
||||||
|
## ✅ RÉALISÉ AUJOURD'HUI
|
||||||
|
|
||||||
|
### Infrastructure de Base
|
||||||
|
1. **BunkerM (mosquitto2.digitribe.fr:1900)** ✅
|
||||||
|
- Accessible via Traefik (confirmé par `nc -zv` et `mosquitto_pub`)
|
||||||
|
- IoT Agent BunkerM reconfiguré pour Stellio (NGSI-LD)
|
||||||
|
|
||||||
|
2. **Stellio Pipeline** ✅
|
||||||
|
- Données visibles dans Stellio (`urn:ngsi-ld:AirQualityObserved:*`)
|
||||||
|
- IoT Agent → Stellio → QuantumLeap → CrateDB fonctionnel
|
||||||
|
- Tables CrateDB créées : 6 tables (etairqualityobserved, etweatherobserved, ettrafficflowobserved, etparkingspot, etnoiselevelobserved, etwaterqualityobserved)
|
||||||
|
|
||||||
|
3. **Grafana Dashboards** ✅
|
||||||
|
- Dashboard "Smart City - Air Quality (CrateDB)" opérationnel
|
||||||
|
- Dashboards Traffic Flow et Weather créés (structure de base)
|
||||||
|
- Datasources CrateDB configurées (2 datasources)
|
||||||
|
|
||||||
|
4. **Git/Gitea** ✅
|
||||||
|
- Commits poussés sur `origin/master`
|
||||||
|
- Fichiers modifiés : `docker-compose.iot-agent.yml`
|
||||||
|
- Session resume `session_resume_2026-05-06.md` créé et poussé
|
||||||
|
|
||||||
|
5. **Keycloak OpenRemote** ✅
|
||||||
|
- Audience mapper 'openremote' configuré
|
||||||
|
- JWT avec claim `aud: ['openremote', 'smartcity-realm', 'master-realm', 'account']`
|
||||||
|
|
||||||
|
### Monitoring
|
||||||
|
- Prometheus : 0 alertes actives ✅
|
||||||
|
- Tous les conteneurs principaux sont Up (sauf problèmes ci-dessous)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ❌ PROBLÈMES EN COURS
|
||||||
|
|
||||||
|
### 1. **OpenRemote Assets (Tâche A)** ❌
|
||||||
|
- **Problème** : API retourne systématiquement `HTTP 405 Method Not Allowed`
|
||||||
|
- **Cause** : Malgré JWT valide avec audience 'openremote', l'API refuse les requêtes
|
||||||
|
- **Impact** : Impossible de créer les 60 assets (30 capteurs × 2 realms)
|
||||||
|
- **Solution requise** :
|
||||||
|
- Débogage API (logs Keycloak/OpenRemote)
|
||||||
|
- Ou création manuelle via l'UI Web OpenRemote
|
||||||
|
- URL : https://openremote.digitribe.fr/manager/#/assets
|
||||||
|
|
||||||
|
### 2. **Services Unhealthy** ⚠️
|
||||||
|
| Service | Status | Problème identifié |
|
||||||
|
|---------|--------|-------------------|
|
||||||
|
| smart-city-cratedb-stellio | unhealthy | Erreurs auth CrateDB (user "postgres" from 85.11.167.232) |
|
||||||
|
| smart-city-mosquitto | unhealthy | À investiguer |
|
||||||
|
| smart-city-iot-mongodb | unhealthy | MongoDB healthcheck échoue |
|
||||||
|
| smart-city-pulsar-distribution | unhealthy | À investiguer |
|
||||||
|
| bunkerm_bunkerm_1 | unhealthy | Mosquitto interne |
|
||||||
|
|
||||||
|
**Action** : Vérifier les logs et corriger les configurations d'authentification
|
||||||
|
|
||||||
|
### 3. **ThingsBoard** ❌
|
||||||
|
- **Status** : En boucle de redémarrage (`Restarting (1)`)
|
||||||
|
- **Cause** : Volumes manquants (`/home/eric/smart-city-digital-twin-martinique/thingsboard-data/` créé mais vide)
|
||||||
|
- **Config** : `thingsboard.conf` manquant
|
||||||
|
- **Action requise** : Configurer proprement ThingsBoard ou l'exclure temporairement
|
||||||
|
|
||||||
|
### 4. **Simulateur - 30 Capteurs** 🔄
|
||||||
|
- **Status** : Configuration par défaut (10 capteurs au total)
|
||||||
|
- **Action** : Définir `SENSOR_COUNT=30` dans l'environnement du simulateur
|
||||||
|
- **Répartition attendue** : 10 EMQX + 10 Mosquitto + 10 BunkerM
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📋 ACTIONS NÉCESSAIRES (PRIORITAIRES)
|
||||||
|
|
||||||
|
### Immédiat
|
||||||
|
1. **OpenRemote Assets** :
|
||||||
|
- Se connecter à https://openremote.digitribe.fr/manager/#/assets
|
||||||
|
- Créer manuellement 60 assets (30 capteurs dans realm `master` + 30 dans `smartcity-martinique`)
|
||||||
|
- Types : AirQualityObserved, TrafficFlowObserved, OffStreetParking, NoiseLevelObserved, WeatherObserved, LightObserved
|
||||||
|
|
||||||
|
2. **Stabiliser services unhealthy** :
|
||||||
|
```bash
|
||||||
|
# Investiguer CrateDB Stellio
|
||||||
|
docker logs smart-city-cratedb-stellio --tail 50
|
||||||
|
|
||||||
|
# Investiguer Mosquitto
|
||||||
|
docker logs smart-city-mosquitto --tail 50
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Configurer simulateur 30 capteurs** :
|
||||||
|
```bash
|
||||||
|
cd ~/smart-city-digital-twin-martinique
|
||||||
|
SENSOR_COUNT=30 docker compose -f docker-compose.yml up -d simulator
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ultérieur
|
||||||
|
4. **ThingsBoard** : Configurer proprement ou documenter comme "hors-service"
|
||||||
|
5. **Compléter dashboards Grafana** : Parking, Noise, Light
|
||||||
|
6. **Mettre à jour documentation architecture** (après vérification complète Stellio)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 ARCHITECTURE VALIDÉE (partiellement)
|
||||||
|
|
||||||
|
```
|
||||||
|
Simulateur (30 capteurs attendus)
|
||||||
|
↓
|
||||||
|
Brokers MQTT (EMQX ✅, Mosquitto ✅, BunkerM ✅)
|
||||||
|
↓
|
||||||
|
IoT Agents (EMQX→Orion-LD ✅, Mosquitto→Orion-LD ✅, BunkerM→Stellio ✅)
|
||||||
|
↓
|
||||||
|
Context Brokers (Orion-LD ✅, Stellio ✅)
|
||||||
|
↓
|
||||||
|
QuantumLeap → CrateDB (tables: 6 créées ✅)
|
||||||
|
↓
|
||||||
|
Grafana (Dashboards: AirQuality ✅, Traffic ✅, Weather ✅)
|
||||||
|
↓
|
||||||
|
OpenRemote (Assets: ❌ à créer manuellement)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📝 NOTES POUR LA PROCHAINE SESSION
|
||||||
|
|
||||||
|
1. **OpenRemote** : API 405 à déboguer ou création manuelle via UI
|
||||||
|
2. **ThingsBoard** : Décision requise (réparer ou désactiver)
|
||||||
|
3. **30 capteurs** : `SENSOR_COUNT=30` à configurer
|
||||||
|
4. **Services unhealthy** : Investiguer et stabiliser
|
||||||
|
5. **Documentation** : Mettre à jour diagrammes après stabilisation complète
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Rapport généré le 2026-05-06 à 22:00 - Eric FELIXINE*
|
||||||
|
*Session en cours - "Continue" actif*
|
||||||
Reference in New Issue
Block a user