Graylog
Last updated
Was this helpful?
Last updated
Was this helpful?
Ich liebe , denn damit funktioniert der Start innerhalb weniger Sekunden (http://docs.graylog.org/en/2.2/pages/installation/docker.html). Folgenden Inhalt als docker-compose.yml
speichern
und danach ein docker-compose
. Wenige Sekunden später (nicht ungeduldig sein - es kann bis zu 30 Sekunden dauern) ist die UI per http://localhost:9000
erreichbar und man kann sich mit admin:admin
einloggen.
Die Daten werden auch erstmal nur im Container persistiert ... sind also weg, wenn man man den Container lĂśscht. Im Abschnitt Automatisiertes Docker Deployment werde ich einige Verbesserungen beschreiben.
... und voila - kurze Zeit später - findet man den Eintrag ßber die Suche im Graylog.
Folgende InputmĂśglichkeiten stehen out-of-the-box zur VerfĂźgung:
Plaintext TCP, UDP, Kafka, AMQP
Syslog TCP, UDP, Kafka, AMQP
GELF TCP, UDP, Kafka, AMQP, HTTP
Beats
Das GELF-Format ist ein sehr einfaches JSON-Format. Das GELF-Protocol ist ein Protokoll, das die Nutzdaten im GELF-Format verschickt.
Microservices sind derzeit ein Hype, der die Notwendigkeit eines zentralen Log-Reportings erhÜht. Niemand kann die vielen Log-Files auswerten, wenn sie nicht irgendwo gesammelt werden. Hier haben sich Ansätze wie Graylog und ELK etabliert, die ein komfortable UI Schnittstelle (und REST-Schnittstellen) zur Auswertung der Logs bietet.
Um Java-Logs ins Graylog zu bekommen, muà man an der Anwendung i. a. nichts verändert. Meistens verwenden die Anwendnungen eh schon Java-Logging und hierfßr gibt es den sog. GelfAppender
, den man in die log4j Konfiguration integriert:
AnschlieĂend benĂśtigt Graylog aber noch einen GELF- Inputkanal (System - Inputs), der an den o. a. Port 5559
gebunden wird.
Mit dem Getting Started Ansatz bekommt man zunächst nur einen leeren Graylog Server zum Laufen. Man will die Konfiguration aber nicht immer wieder erneuern, wenn man den Container neu aufsetzt (z. B. wegen eines Image Updates). AuĂerdem nĂśchte man die Konfiguration evtl. unter Versionskontrolle stellen.
Graylog bietet die MÜglichkeit sog. Content-Packages zu exportieren/importieren ... und das bereits beim Startup oder aber auch während des laufenden Betriebs. Auf diese kann man auch leicht Konfigurationen zwischen Servern austauschen.
FĂźr den automatischen Import eines Content-Packages (hier my-contentPack.json
) beim Serverstart muĂ folgende Konfiguration (graylog.conf
) vorgenommen werden:
https://docs.mongodb.com/manual/tutorial/backup-and-restore-tools/
Graylog verwendet MongoDB als Storage fĂźr die Konfiguration. Dementsprechend kann man die gesamte (!!!) Konfiguration sichern (mongodump --out /dump/ --db graylog
) und wiederherstellen (mongorestore --db=graylog /dump/graylog
).
http://docs.graylog.org/en/2.2/pages/configuration/rest_api.html
Zunächst muà man Graylog einen Input-Kanal verpassen (System - Inputs), ßber den Nachrichten reinkommen kÜnnen. Am besten verwendet man einen ganz einfachen Plaintext TCP oder Plaintext UDP Inputkanal. Dann kann man per ßber die Konsole Nachrichten zum Inputkanal schicken:
Man kann in Graylog dann ein entsprechendes Parsing definieren und vornehmen - ich bin mir aber nicht sicher wie performant und komfortabel das ist. Wahrscheinlich ist es besser, Ansätze wir zu verwenden oder gleich JSON-basierte Log-Daten zu schicken (z. B. GELF-Format).
Graylog hat mit sogar ein eigenes Log-Format aus der Taufe gehoben und bietet fĂźr verschiedenen Programmiersprachen APIs an. Ăber GELF lassen sich auch Logs von Windows-Maschinen integrieren.
Die REST API kann bei einigen Dingen sehr hilfreich sein. Ăber System - Nodes - API browser gelangt man zu einem , mit dem sich die REST-Schnittstelle aus dem Browser heraus bedienen läĂt.