Graylog MQTT Projekt: Unterschied zwischen den Versionen
| Zeile 63: | Zeile 63: | ||
* Verwende Filter wie ''source:mosquitto'' oder ''message:'' für eine detaillierte Analyse und Visualisierung der MQTT-Logs. | * Verwende Filter wie ''source:mosquitto'' oder ''message:'' für eine detaillierte Analyse und Visualisierung der MQTT-Logs. | ||
| − | === Alarme | + | == Dashboard-Erstellung == |
| − | + | Ein Dashboard hilft dabei, wichtige Metriken auf einen Blick zu sehen. Gehe in der Graylog-Weboberfläche zu ''Dashboards'' und klicke auf ''Create new dashboard''. Gib dem Dashboard einen Namen (z.B. „IoT Monitoring“). Öffne das Dashboard und klicke auf ''Add Widget''. Wähle einen Histogramm-Widget, um die Anzahl der Ereignisse im Laufe der Zeit darzustellen. Setze Filter für spezifische Ereignistypen wie Verbindungen (z.B. „New client connected“) oder Abmeldungen. Füge weitere Widgets hinzu, um z.B. Verbindungsfehler, MQTT-Publishing-Nachrichten und Client-IDs anzuzeigen. | |
| − | + | ||
| − | + | == Filter und Suchabfragen für spezifische Ereignisse == | |
| + | Suchabfragen helfen, relevante Ereignisse schnell zu identifizieren. Gehe zu ''Search'' und gib eine Abfrage ein, um nur bestimmte Log-Typen zu sehen. Um alle Verbindungen zu sehen, kann folgende Abfrage verwendet werden: | ||
| + | <pre> | ||
| + | message:"New client connected" | ||
| + | </pre> | ||
| + | Speichere diese Abfrage als ''Stream'' für schnellen Zugriff. Klicke auf ''Create Stream'' und nenne ihn z.B. „Verbindungen“. Dieser Stream kann nun in Dashboards und für Alarme verwendet werden. | ||
| + | |||
| + | == Alarme und Benachrichtigungen konfigurieren == | ||
| + | Alarme sind wichtig, um über verdächtige Aktivitäten informiert zu werden. Gehe zu ''Alerts > Event Definitions'' und klicke auf ''Create new event definition''. Wähle eine Bedingung aus, beispielsweise wenn die Anzahl der Verbindungen pro Minute über einen Schwellenwert steigt oder wenn eine bestimmte Fehlermeldung in den Logs auftaucht. Füge eine Benachrichtigung hinzu, z.B. eine E-Mail-Benachrichtigung. Lege fest, wann und an wen die Benachrichtigung gesendet werden soll und teste die Benachrichtigung, um sicherzustellen, dass sie funktioniert. | ||
| + | |||
| + | == Anomalieerkennung und Tests == | ||
| + | Simuliere Anomalien, um die Reaktionsfähigkeit der Alarme zu überprüfen. Verwende ein MQTT-Client-Tool, um Nachrichten in sehr schnellen Intervallen zu senden, und beobachte, ob der Alarm ausgelöst wird. Verbinde dich schnell und trenne die Verbindung wiederholt von einem MQTT-Client, um zu prüfen, ob ein Alarm für ungewöhnliche Verbindungsaktivität ausgelöst wird. | ||
| + | |||
| + | == Zeitanalyse und Trend-Erkennung == | ||
| + | Die Zeitanalyse hilft, langfristige Trends zu identifizieren. Wähle in der Graylog-Suche längere Zeiträume aus, z.B. eine Woche oder einen Monat, und sieh dir Muster in den Logs an, z.B. Spitzenzeiten für Verbindungen oder häufige Fehlermeldungen. Verwende Dashboards, um regelmäßige Berichte zu erstellen, und nutze die gespeicherten Streams und Widgets, um Entwicklungen über längere Zeiträume zu visualisieren. | ||
Version vom 30. Oktober 2024, 12:59 Uhr
Schulungsprojekt: SIEM, IoT und Industrie 4.0 mit Graylog und Mosquitto
Für ein Schulungsprojekt zu SIEM, IoT und Industrie 4.0 ist Graylog in Kombination mit einem MQTT-Broker wie Mosquitto ideal, da praktische Erfahrungen in der Überwachung und Analyse von IoT-Datenströmen gesammelt werden können. Hier ist ein strukturierter Ansatz, um die Integration sinnvoll aufzubauen und Themen für die Schulung abzudecken:
Schulungsziele und Szenarien
- Überwachung von IoT-Events: Zeigen, wie man Verbindungs- und Authentifizierungsereignisse des MQTT-Brokers überwacht. Diese Logs geben Einblick in die Verbindungssicherheit und das Verhalten der Clients.
- Erkennung von Anomalien: Demonstriere die Identifikation ungewöhnlicher Aktivitäten, wie z.B. hohe Nachrichtenfrequenz, unerwartete Verbindungsversuche oder missbräuchliches Publishing. Hierbei wird gezeigt, wie wichtig die Anomalieerkennung für Industrie 4.0-Systeme ist.
- Reaktions- und Alarmierungsmechanismen: Erstelle in Graylog Regeln und Alarme für verdächtige Aktivitäten, um die Bedeutung proaktiver Sicherheitsüberwachung zu verdeutlichen.
- Datenspeicherung und Analyse: Nutze die Elasticsearch-Integration von Graylog zur Analyse und Darstellung von Daten über Zeitreihen. Das ist besonders relevant, um IoT-Daten langfristig auszuwerten und Trends zu erkennen.
Empfohlene Schritte für das Projekt
Mosquitto einrichten und konfigurieren
- Grundkonfiguration für Mosquitto zur Authentifizierung und zum Loggen der Ereignisse festlegen.
Graylog installieren und anpassen
- Graylog auf dem Server installieren, zusammen mit Elasticsearch und MongoDB, und die Anbindung für MQTT-Logs vorbereiten.
Logdaten senden und visualisieren
- Die Logs von Mosquitto an Graylog weiterleiten, um Verbindungen, Abmeldungen, und Fehler detailliert zu erfassen.
- Eine Beispielvisualisierung erstellen, um typische IoT-Events darzustellen.
Alarmierung und Anomalieerkennung in Graylog einrichten
- Alarme für verdächtige oder fehlerhafte Aktivitäten einrichten (z. B. hohe Verbindungsfrequenz).
- Regeln erstellen, die automatisch eine Benachrichtigung auslösen, wenn bestimmte Schwellenwerte überschritten werden.
Graylog für die Erfassung von Mosquitto-Logs konfigurieren
Graylog-Eingang einrichten
- Öffne die Graylog-Weboberfläche unter `http://<DEINE_IP>:9000`.
- Melde dich mit deinem Admin-Benutzer an.
- Gehe zu System > Inputs und wähle Input hinzufügen.
- Wähle als Typ Syslog UDP und klicke auf Launch new input.
- Konfiguriere den Input:
* Bind address: 0.0.0.0 * Port: 1514 (oder ein anderer freier Port) * Klicke auf Speichern, um den Input zu aktivieren.
Rsyslog installieren
- sudo apt update
- sudo apt install rsyslog -y
- systemctl enable rsyslog --now
Mosquitto-Logs an Graylog senden
- Öffne die Mosquitto-Konfigurationsdatei, z.B. `/etc/mosquitto/conf.d/defaults.conf`.
- Füge folgende Zeilen hinzu, um die Logs an Graylog weiterzuleiten:
log_dest syslog
- Stelle sicher, dass dein System so konfiguriert ist, dass es Syslog-Nachrichten an den Graylog-Server weiterleitet. Füge dazu in der Datei `/etc/rsyslog.conf` (oder `/etc/rsyslog.d/50-default.conf`) folgende Zeile hinzu:
*.* @127.0.0.1:1514;RSYSLOG_SyslogProtocol23Format
- Starte den Rsyslog und Mosquitto Dienst neu:
sudo systemctl restart rsyslog mosquitto
Logs in Graylog visualisieren
- Kehre zur Graylog-Oberfläche zurück und gehe zu Search.
- Verwende Filter wie source:mosquitto oder message: für eine detaillierte Analyse und Visualisierung der MQTT-Logs.
Dashboard-Erstellung
Ein Dashboard hilft dabei, wichtige Metriken auf einen Blick zu sehen. Gehe in der Graylog-Weboberfläche zu Dashboards und klicke auf Create new dashboard. Gib dem Dashboard einen Namen (z.B. „IoT Monitoring“). Öffne das Dashboard und klicke auf Add Widget. Wähle einen Histogramm-Widget, um die Anzahl der Ereignisse im Laufe der Zeit darzustellen. Setze Filter für spezifische Ereignistypen wie Verbindungen (z.B. „New client connected“) oder Abmeldungen. Füge weitere Widgets hinzu, um z.B. Verbindungsfehler, MQTT-Publishing-Nachrichten und Client-IDs anzuzeigen.
Filter und Suchabfragen für spezifische Ereignisse
Suchabfragen helfen, relevante Ereignisse schnell zu identifizieren. Gehe zu Search und gib eine Abfrage ein, um nur bestimmte Log-Typen zu sehen. Um alle Verbindungen zu sehen, kann folgende Abfrage verwendet werden:
message:"New client connected"
Speichere diese Abfrage als Stream für schnellen Zugriff. Klicke auf Create Stream und nenne ihn z.B. „Verbindungen“. Dieser Stream kann nun in Dashboards und für Alarme verwendet werden.
Alarme und Benachrichtigungen konfigurieren
Alarme sind wichtig, um über verdächtige Aktivitäten informiert zu werden. Gehe zu Alerts > Event Definitions und klicke auf Create new event definition. Wähle eine Bedingung aus, beispielsweise wenn die Anzahl der Verbindungen pro Minute über einen Schwellenwert steigt oder wenn eine bestimmte Fehlermeldung in den Logs auftaucht. Füge eine Benachrichtigung hinzu, z.B. eine E-Mail-Benachrichtigung. Lege fest, wann und an wen die Benachrichtigung gesendet werden soll und teste die Benachrichtigung, um sicherzustellen, dass sie funktioniert.
Anomalieerkennung und Tests
Simuliere Anomalien, um die Reaktionsfähigkeit der Alarme zu überprüfen. Verwende ein MQTT-Client-Tool, um Nachrichten in sehr schnellen Intervallen zu senden, und beobachte, ob der Alarm ausgelöst wird. Verbinde dich schnell und trenne die Verbindung wiederholt von einem MQTT-Client, um zu prüfen, ob ein Alarm für ungewöhnliche Verbindungsaktivität ausgelöst wird.
Zeitanalyse und Trend-Erkennung
Die Zeitanalyse hilft, langfristige Trends zu identifizieren. Wähle in der Graylog-Suche längere Zeiträume aus, z.B. eine Woche oder einen Monat, und sieh dir Muster in den Logs an, z.B. Spitzenzeiten für Verbindungen oder häufige Fehlermeldungen. Verwende Dashboards, um regelmäßige Berichte zu erstellen, und nutze die gespeicherten Streams und Widgets, um Entwicklungen über längere Zeiträume zu visualisieren.