- Add Redpanda Console service (port 28080, Traefik integration) - Add Pulsar Distribution Service (Pulsar -> Brokers) - Create Grafana dashboards for Redpanda, Pulsar, and Smart City Ingestion - Configure Prometheus targets for Pulsar and Redpanda metrics - Fix FROST URL in distribution service - Create session resume for 2026-05-05
6.4 KiB
6.4 KiB
Session Resume - 2026-05-05
Objectif de la session
Configuration de l'ingestion de données pour le Smart City Digital Twin Martinique :
- Simulateur → Pulsar (port 6650)
- Pulsar → Service de Distribution → Brokers (MQTT, NGSI-LD, FROST)
- Monitoring via Redpanda Console, Prometheus, Grafana
Réalisations ✅
1. Redpanda Console - OPÉRATIONNEL
- Service
smart-city-redpanda-consolecréé dansredpanda/docker-compose.yml - Accessible sur
http://localhost:28080(200 OK) - Traefik configuré :
https://redpanda-console.digitribe.fr - Connecté à Redpanda (
smart-city-redpanda:9092) - API Admin Redpanda activée (
http://smart-city-redpanda:9644) - Fichier config :
redpanda/console.yaml
2. Prometheus - CONFIGURÉ
- Cibles actives ajoutées dans
prometheus.yml:redpanda: up (métriques port 9644)pulsar: up (métriques port 8080)mosquitto: uporion-ld: upfrost-server: down (normal, pas de données)stellio: down (normal, pas de données)
3. Grafana Dashboards - CRÉÉS
- Redpanda Metrics (
grafana/provisioning/dashboards/redpanda-metrics.json) - Pulsar Metrics (
grafana/provisioning/dashboards/pulsar-metrics.json) - Smart City Ingestion (
grafana/provisioning/dashboards/smart-city-ingeston.json) - Datasources InfluxDB connectées : InfluxDB, InfluxDB-Simulator, InfluxDB-SmartCity
4. Simulateur → Pulsar - FONCTIONNEL
- Le simulateur utilise déjà le protocole binaire Pulsar (port 6650)
- Logs confirment les connexions :
Connected to broker pulsar://smart-city-pulsar:6650 - Topics créés :
smartcity-traffic,smartcity-airquality,smartcity-parking,smartcity-noise,smartcity-weather,smartcity-light
5. Service de Distribution - AJOUTÉ (mais instable)
- Service
pulsar-distributionajouté danspulsar/docker-compose.yml - Code :
pulsar/distribution.py(consomme depuis Pulsar, republie vers brokers) - Problème : Erreur docker-compose au redémarrage (
KeyError: 'ContainerConfig') - URL FROST corrigée :
frost-api-8090:8080/FROST-Server/v1.1
Problèmes rencontrés ⚠️
1. Pulsar Manager - CRASH RÉCURRENT
- Conteneur
smart-city-pulsar-managercrash au démarrage - Erreurs :
Object 'ENVIRONMENTS' not found(HerdDB), problèmes d'initialisation PostgreSQL - Solution alternative : Utiliser l'API Pulsar Admin directe (
http://localhost:8080/admin/v2/...)
2. Distribution Service - ERREUR DOCKER-COMPOSE
KeyError: 'ContainerConfig'lors dudocker-compose up -d pulsar-distribution- Nécessite suppression manuelle du conteneur et reconstruction
- Service fonctionnel en théorie mais instable en pratique
3. InfluxDB - AUCUNE DONNÉE VISIBLE
- Simulateur configuré pour InfluxDB (
ENABLE_INFLUX=1) - Aucune donnée visible dans les queries InfluxDB
- À diagnostiquer : connectivité simulateur → InfluxDB
4. Traefik Let's Encrypt - ÉCHEC
- Problèmes de certificats sur
pulsar.digitribe.fretredpanda-console.digitribe.fr - Cause probable : domaine non public ou configuration DNS
- Solution temporaire : accès HTTP direct (localhost:7750, localhost:28080)
Fichiers modifiés/créés 📁
Redpanda
redpanda/docker-compose.yml: Ajout servicesmart-city-redpanda-consoleredpanda/console.yaml: Configuration Redpanda Console
Pulsar
pulsar/docker-compose.yml: Ajout servicepulsar-distributionpulsar/distribution.py: Service de distribution (déjà existant)
Prometheus
prometheus.yml: Ajout ciblespulsaretredpanda
Grafana
grafana/provisioning/dashboards/redpanda-metrics.json: Créégrafana/provisioning/dashboards/pulsar-metrics.json: Créégrafana/provisioning/dashboards/smart-city-ingeston.json: Créé
À faire pour la prochaine session 📋
Priorité 1 : Ingestion de données
-
Diagnostiquer InfluxDB : Pourquoi aucune donnée n'arrive ?
- Vérifier les logs du simulateur (
docker logs smart-city-simulator | grep Influx) - Tester la connexion manuelle depuis le simulateur
- Vérifier le token InfluxDB et l'organisation
- Vérifier les logs du simulateur (
-
Stabiliser le service de distribution
- Corriger l'erreur
KeyError: 'ContainerConfig' - Lancer manuellement le conteneur si nécessaire
- Vérifier que les messages Pulsar sont bien republiés vers les brokers
- Corriger l'erreur
Priorité 2 : Monitoring et Visualisation
-
Tester les dashboards Grafana
- Accéder à http://localhost:3001 (admin/Digitribe972)
- Vérifier que les panels affichent des données (InfluxDB, Prometheus)
- Ajuster les requêtes Flux si nécessaire
-
Corriger Pulsar Manager (optionnel)
- Utiliser une base PostgreSQL externe propre
- Ou passer à une alternative (Kafka Manager, ou utiliser l'API directe)
Priorité 3 : Traefik et Domaines
- Résoudre Let's Encrypt
- Vérifier la configuration DNS pour
*.digitribe.fr - Tester l'accessibilité publique des services
- Configurer des certificats SSL valides
- Vérifier la configuration DNS pour
Commandes utiles 🛠️
Vérifier les services
cd ~/smart-city-digital-twin-martinique
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
Voir les logs
docker logs smart-city-simulator --tail 50 | grep -E "(Pulsar|Influx|ERROR)"
docker logs smart-city-pulsar-distribution --tail 50
Test Pulsar
curl http://localhost:8080/admin/v2/clusters
curl -s -o /dev/null -w "%{http_code}" http://localhost:28080 # Redpanda Console
Test InfluxDB
curl -s -H "Authorization: Token my-super-secret-admin-token" \
"http://smart-city-influxdb:8086/api/v2/query?org=digitribe" \
-d 'from(bucket:"iot_data") |> range(start:-1h) |> limit(n:5)'
URLs d'accès 🌐
- Redpanda Console : http://localhost:28080
- Grafana : http://localhost:3001 (admin/Digitribe972)
- Prometheus : http://localhost:9090
- Pulsar Admin API : http://localhost:8080/admin/v2/clusters
- FROST-Server : http://localhost:8090/FROST-Server/v1.1
Notes importantes 📝
- Le simulateur utilise le protocole binaire Pulsar (port 6650, pas 8080)
- L'ingestion centralisée passe par Pulsar puis distribution vers les brokers
- Redpanda Console est fonctionnel et permet de monitorer les topics Kafka
- Les dashboards Grafana sont prêts mais nécessitent des données pour être utiles
- Pulsar Manager reste instable, privilégier l'API Pulsar directe pour le monitoring
Session du 2026-05-05 - Digitribe Martinique