Graylog MQTT Projekt: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
Zeile 22: Zeile 22:
  
 
==== Logdaten senden und visualisieren ====
 
==== Logdaten senden und visualisieren ====
* Die Logs von Mosquitto an Graylog weiterleiten, um Verbindungen, Abmeldungen, und Fehler detailliert zu erfassen.
+
* Die Logs von Mosquitto an Graylog weiterleiten, um Verbindungen, Abmeldungen und Fehler detailliert zu erfassen.
 
* Eine Beispielvisualisierung erstellen, um typische IoT-Events darzustellen.
 
* Eine Beispielvisualisierung erstellen, um typische IoT-Events darzustellen.
  
Zeile 28: Zeile 28:
 
* Alarme für verdächtige oder fehlerhafte Aktivitäten einrichten (z. B. hohe Verbindungsfrequenz).
 
* 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.
 
* Regeln erstellen, die automatisch eine Benachrichtigung auslösen, wenn bestimmte Schwellenwerte überschritten werden.
 +
 
== Graylog für die Erfassung von Mosquitto-Logs konfigurieren ==
 
== Graylog für die Erfassung von Mosquitto-Logs konfigurieren ==
 +
 
=== Graylog-Eingang einrichten ===
 
=== Graylog-Eingang einrichten ===
 
* Öffne die Graylog-Weboberfläche unter `http://<DEINE_IP>:9000`.
 
* Öffne die Graylog-Weboberfläche unter `http://<DEINE_IP>:9000`.
Zeile 38: Zeile 40:
 
   * ''Port'': 1514 (oder ein anderer freier Port)
 
   * ''Port'': 1514 (oder ein anderer freier Port)
 
   * Klicke auf ''Speichern'', um den Input zu aktivieren.
 
   * Klicke auf ''Speichern'', um den Input zu aktivieren.
=== Rsyslog installieren===
+
 
*sudo apt update
+
=== Rsyslog installieren ===
*sudo apt install rsyslog -y
+
* Führe folgende Befehle aus, um Rsyslog zu installieren und zu aktivieren:
*systemctl enable rsyslog --now
+
<pre>
 +
sudo apt update
 +
sudo apt install rsyslog -y
 +
sudo systemctl enable rsyslog --now
 +
</pre>
 +
 
 
=== Mosquitto-Logs an Graylog senden ===
 
=== Mosquitto-Logs an Graylog senden ===
 
* Öffne die Mosquitto-Konfigurationsdatei, z.B. `/etc/mosquitto/conf.d/defaults.conf`.
 
* Öffne die Mosquitto-Konfigurationsdatei, z.B. `/etc/mosquitto/conf.d/defaults.conf`.
Zeile 121: Zeile 128:
 
* Verwende Dashboards, um regelmäßige Berichte zu erstellen.
 
* Verwende Dashboards, um regelmäßige Berichte zu erstellen.
 
* Nutze die gespeicherten Streams und Widgets, um Entwicklungen über längere Zeiträume zu visualisieren.
 
* Nutze die gespeicherten Streams und Widgets, um Entwicklungen über längere Zeiträume zu visualisieren.
 
== 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.
 

Aktuelle Version vom 30. Oktober 2024, 13:04 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

  • Führe folgende Befehle aus, um Rsyslog zu installieren und zu aktivieren:
sudo apt update
sudo apt install rsyslog -y
sudo 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

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“).

Widgets hinzufügen

  • Öffne dein 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.

Ereignisse filtern

  • Gehe zu Search und gib eine Abfrage ein, um nur bestimmte Log-Typen zu sehen.
  • Beispiel: Um alle Verbindungen zu sehen, kannst du Folgendes eingeben:
message:"New client connected"

Suchabfrage speichern

  • 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.

Neuen Alarm erstellen

  • Gehe zu Alerts > Event Definitions und klicke auf Create new event definition.
  • Wähle eine Bedingung aus, z.B.:
 * Wenn die Anzahl der Verbindungen pro Minute über einen Schwellenwert steigt.
 * Wenn eine bestimmte Fehlermeldung in den Logs auftaucht.

Benachrichtigung konfigurieren

  • Füge eine Benachrichtigung hinzu, z.B. eine E-Mail-Benachrichtigung.
  • Lege fest, wann und an wen die Benachrichtigung gesendet werden soll.
  • Teste die Benachrichtigung, um sicherzustellen, dass sie funktioniert.

Anomalieerkennung und Tests

Simuliere Anomalien, um die Reaktionsfähigkeit der Alarme zu überprüfen.

Hohe Nachrichtenfrequenz

  • Verwende ein MQTT-Client-Tool, um Nachrichten in sehr schnellen Intervallen zu senden.
  • Beobachte, ob der Alarm ausgelöst wird.

Schnelle Verbindungen und Trennungen

  • Verbinde dich schnell und trenne die Verbindung wiederholt von einem MQTT-Client.
  • Prüfe, ob ein Alarm für ungewöhnliche Verbindungsaktivität ausgelöst wird.

Zeitanalyse und Trend-Erkennung

Die Zeitanalyse hilft, langfristige Trends zu identifizieren.

Daten über Zeiträume analysieren

  • Wähle in der Graylog-Suche längere Zeiträume aus (z.B. 1 Woche oder 1 Monat).
  • Sieh dir Muster in den Logs an, z.B. Spitzenzeiten für Verbindungen oder häufige Fehlermeldungen.

Berichte erstellen

  • Verwende Dashboards, um regelmäßige Berichte zu erstellen.
  • Nutze die gespeicherten Streams und Widgets, um Entwicklungen über längere Zeiträume zu visualisieren.