30 lines
1.6 KiB
Markdown
30 lines
1.6 KiB
Markdown
# Verteilte_Systeme
|
|
|
|
Bearbeitung Prüfungsvorleistung für Verteilte Systeme
|
|
|
|
# Syslog-Logging-System (RFC 5424)
|
|
|
|
Dieses Projekt implementiert einen Syslog-Server und einen Test-Client auf Basis von UDP. Es beinhaltet eine automatische Service-Discovery.
|
|
|
|
## Projektstruktur & Klassen
|
|
|
|
* **`pom.xml`**: Die Maven-Konfigurationsdatei. Sie verwaltet Abhängigkeiten und die Java-Version.
|
|
* **`justfile`**: Automatisierungsskript für Windows (PowerShell) und Linux, um Befehle wie `just clean` oder `just exec` zu nutzen.
|
|
* **`vs.SyslogServer`**: Der Hauptdienst. Er startet zwei parallele Threads:
|
|
* **Syslog-Service**: Empfängt Log-Nachrichten auf Port 514.
|
|
* **Discovery-Service**: Antwortet auf Broadcast-Anfragen auf Port 8888.
|
|
* **`vs.SyslogClient`**: Test-Client, der den Server via Broadcast sucht und eine standardkonforme Nachricht sendet.
|
|
* **`vs.SyslogMessage`**: Repräsentiert eine Nachricht gemäß RFC 5424.
|
|
* **`vs.AsciiChars` / `vs.StructuredData`**: Hilfsklassen zur Validierung und Formatierung von Zeichenketten gemäß Spezifikation.
|
|
|
|
## Funktionsablauf (Service Discovery)
|
|
|
|
1. **Broadcast**: Der Client sendet ein UDP-Paket an `255.255.255.255:8888`.
|
|
2. **Antwort**: Der Server empfängt den Broadcast und sendet ein leeres UDP-Paket an den Client zurück.
|
|
3. **Identifikation**: Der Client liest die IP-Adresse des Absenders aus dem Antwort-Paket aus.
|
|
4. **Logging**: Der Client sendet die eigentliche Syslog-Nachricht direkt an die ermittelte IP auf Port 514.
|
|
|
|
## Ausführung
|
|
* Server starten: `just exec SyslogServer`
|
|
* Client starten: `just exec SyslogClient`
|
|
* Aufräumen: `just clean` |