Kontext & Motivation
Industrielle Systeme erzeugen kontinuierlich Sensordaten — Temperatur, Vibration, Druck. Dieses Projekt demonstriert, wie solche Datenströme mit Apache Kafka zuverlässig transportiert, persistent gespeichert und in Echtzeit visualisiert werden können. Besonderes Augenmerk liegt auf der automatischen Erkennung von Anomalien und der Weiterleitung von Alarmen in einen separaten Kafka-Topic.
Streaming
Apache Kafka — zuverlässiger Transport von 3 Sensordatenströmen
Persistenz
PostgreSQL — historische Speicherung aller Messwerte
Anomalieerkennung
Separater Consumer mit MEDIUM/HIGH Schweregrad
Visualisierung
Grafana Dashboard — auto-provisioniert, 5s Refresh
1 — Architektur
2 — Simulierte Sensoren
| Sensor | Typ | Normbereich | Anomalie-Schwelle | Anomalierate |
|---|---|---|---|---|
sensor-temp-01 | Temperatur | 60–90 °C | > 95 °C | 5% |
sensor-vibr-01 | Vibration | 0.5–5 mm/s | > 8 mm/s | 5% |
sensor-press-01 | Druck | 1–6 bar | > 8 bar | 5% |
Anomalie-Schweregradklassen
MEDIUM : Wert > Schwelle (z.B. Temperatur = 102 C bei Schwelle 95 C) HIGH : Wert > Schwelle * 1.2 (z.B. Vibration = 10.11 mm/s bei Schwelle 8 mm/s)
3 — Reale Bugs während der Entwicklung
Bug-Serie — flake8 Lint-Fehler in der CI
Die Fehler entstanden durch Formatierungsunterschiede zwischen dem lokalen Windows-Editor
(PowerShell WriteAllText) und dem flake8-Standard auf Linux (GitHub Actions Ubuntu Runner).
Jeder Fix wurde auf einer eigenen Branch (fix/flake8-lint-errors,
fix/missing-newline, fix/consumer-lint-errors) committet
und nach Validierung in main gemergt.
4 — CI/CD Pipeline
jobs:
lint:
- flake8 producer/ (PEP8 Stil-Check)
- flake8 consumer/ (PEP8 Stil-Check)
integration-test:
needs: lint
services:
- zookeeper
- kafka
- postgres
steps:
- test_kafka_producer_consumer() → Kafka send/receive OK
- test_postgresql_connection() → DB verbindung OK
- test_postgresql_insert() → Insert/Read OK
5 — Tech Stack & Skills
6 — Ausblick
- 1Schema Registry
Einführung von Confluent Schema Registry mit Avro für typsichere Nachrichten zwischen Producer und Consumer. - 2Kafka Streams
Ersetzen des manuellen Alert-Consumers durch Kafka Streams für komplexere Aggregationen und Zeitfenster-Analysen. - 3Alertmanager Integration
Weiterleitung von HIGH-Alerts via Alertmanager an Email oder Slack — automatische Benachrichtigung bei kritischen Anomalien. - 4Cloud Deployment
Migration zu Confluent Cloud (managed Kafka) oder MSK (AWS) für produktionsnahen Betrieb.