Graylog MQTT Projekt: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 22: | Zeile 22: | ||
==== Logdaten senden und visualisieren ==== | ==== Logdaten senden und visualisieren ==== | ||
| − | * Die Logs von Mosquitto an Graylog weiterleiten, um Verbindungen, Abmeldungen | + | * 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 === |
| − | + | * Führe folgende Befehle aus, um Rsyslog zu installieren und zu aktivieren: | |
| − | + | <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 51: | Zeile 58: | ||
* 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: | * 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: | ||
<pre> | <pre> | ||
| − | *.* @ | + | *.* @127.0.0.1:1514;RSYSLOG_SyslogProtocol23Format |
</pre> | </pre> | ||
| − | * Starte den Rsyslog | + | * Starte den Rsyslog und Mosquitto Dienst neu: |
<pre> | <pre> | ||
| − | sudo systemctl restart rsyslog | + | sudo systemctl restart rsyslog mosquitto |
</pre> | </pre> | ||
| − | === | + | == 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: | ||
| + | <pre> | ||
| + | message:"New client connected" | ||
| + | </pre> | ||
| + | |||
| + | === 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. |
| − | |||
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.