Um nun Logmeldungen zu unserem Logging-Server Graylog zu übertragen, benötigen wir eine Clientsoftware. Hierfür bietet sich Syslog (via TCP oder UDP) an, das sich einer weiten Verbreitung unter Linux erfreut. Syslog wird typischerweise auch bei verwalteten Netzwerkgeräten wie Router, Switche, Firewalls sowie weiteren Managed Network Appliances unterstützt.
Für Systeme, die Syslog standardmäßig nicht einsetzen, wie etwa Windows, benötigen wir die Clientsoftware "nxlog". nxlog (Community Edition) [6] ist eine Open Source-Software, die eine Multithread-Log-Verwaltung ermöglicht und unterschiedliche Formate von Logmeldungen (Syslog, CSV, GELF, JSON, XML, Windows EventLog) erlaubt. Die Software unterstützt dabei eine Reihe von Plattformen:
- Microsoft Windows (32 und 64 Bit: 8, 7, Vista, XP, 2008, 2003 und 2000)
- Linux (Ubuntu, Debian, CentOS / Red Hat)
- AIX, Solaris, HP-UX, BSD
- Android
Des Weiteren lassen sich Logmeldungen clientseitig filtern, bevor diese zum Logging-Server übertragen werden. Hierfür werden Logmeldungen nach Typen klassifiziert oder eine Mustererkennung (Pattern Matching) eingesetzt. Auf diese Weise verringern Sie die Anzahl der Logmeldungen, die der Logging-Server verarbeiten muss. nxlog unterstützt zudem eine abgesicherte Datenübertragung via TLS.
Offizielle Vorgaben und Empfehlungen bezüglich der konkreten Dimensionierung von Hardware-Ressourcen beim Einsatz von Graylog tauchen in der Dokumentation nicht auf. Die Festlegung der Ressourcen basiert somit auf Erfahrungswerten und berücksichtigt Anforderungen an die Skalierbarkeit und Hochverfügbarkeit des Logging-Servers. Die Hardwarevoraussetzungen sind grundsätzlich von folgenden Faktoren abhängig:
- Aufbewahrungszeit von Logmeldungen
- Größe von Logmeldungen: typischerweise 4 KByte bei Windows
- Anzahl der Logmeldungen in einem bestimmten Zeitraum, beispielsweise Logmeldungen pro Minute
Um Logmeldungen von vielen Clients gleichzeitig empfangen, verarbeiten und speichern zu können, ist es grundsätzlich empfehlenswert, die Komponenten auf verschiedenen IT-Systemen zu betreiben. Nachfolgend nehmen wir als Beispiel eine Trennung der Komponenten auf insgesamt sechs virtuelle Maschinen (VMs) vor. Dabei nehmen wir an, dass Logmeldungen von mehr als 50 Clients empfangen und mehr als einen Monat lang aufbewahrt werden. Die Aufteilung der Komponenten des Logging-Servers und zugehörigen Hardwareanforderungen finden Sie in der Tabelle "Planung der Hardwareressourcen".
Planung der Hardwareressourcen |
|
Komponente |
Hardware |
Loadbalancer "Zen" (graylog-lb) |
CPU: 2 CPUs (2 logische Kerne)RAM: 1 GByteHDD: 100 GByte |
Graylog-Server im Modus "Master", MongoDB ReplicaSet-1 (graylog-ms) |
CPU: 4 CPUs (4 logische Kerne)RAM: 4 GByteHDD: 300 GByte |
Graylog-Server im Modus "Slave", MongoDB ReplicaSet-2 (graylog-node1) |
CPU: 4 CPUs (4 logische Kerne)RAM: 4 GByteHDD: 300 GByte |
Graylog-Webinterface (graylog-webinterface) |
CPU: 2 CPUs (2 logische Kerne)RAM: 2 GByteHDD: 100 GByte |
Elasticsearch im Modus "Master" (es-master) |
CPU: 4 CPUs (4 logische Kerne)RAM: 8 GByteHDD: 500 GByte |
Elasticsearch im Modus "Slave" (es-node1) |
CPU: 4 CPUs (4 logische Kerne)RAM: 8 GByteHDD: 500 GByte |