Prihlásenie do Graylogu pomocou Spring Boot

1. Úvod

Graylog je služba agregácie protokolov. Zjednodušene povedané, je schopný zhromaždiť milióny protokolových správ z viacerých zdrojov a zobraziť ich v jednom rozhraní.

Poskytuje tiež množstvo ďalších funkcií, ako sú upozornenia v reálnom čase, informačné panely s grafmi a tabuľkami a oveľa viac.

V tomto tutoriáli sa dozvieme, ako nastaviť server Graylog a odosielať mu protokolové správy z aplikácie Spring Boot.

2. Nastavenie Graylogu

Existuje niekoľko spôsobov, ako nainštalovať a spustiť program Graylog. V tomto výučbe si ukážeme dva najrýchlejšie spôsoby: Docker a Amazon Web Services.

2.1. Docker

Nasledujúce príkazy stiahnu všetky požadované obrázky Dockeru a spustia kontajner pre každú službu:

$ docker run --name mongo -d mongo: 3 $ docker run --name elasticsearch -p 9200: 9200 -p 9300: 9300 \ -e ES_JAVA_OPTS = "- Xms2g -Xmx4g" \ -e "discovery.type = single- uzol "-e" xpack.security.enabled = false "\ -e" bootstrap.memory_lock = true "--ulimit memlock = -1: -1 \ -d docker.elastic.co/elasticsearch/elasticsearch:5.6.11 $ docker run --name greylog --link mongo --link elasticsearch \ -p 9000: 9000 -p 12201: 12201 -p 514: 514 -p 5555: 5555 \ -e GRAYLOG_WEB_ENDPOINT_URI = "// 127.0.0.1:9000/api "\ -d graylog / graylog: 2.4.6-1

Panel Graylog je teraz k dispozícii pomocou adresy URL // localhost: 9000 / a predvolené používateľské meno a heslo sú obidve admin.

Aj keď je nastavenie Dockeru najjednoduchšie, vyžaduje si značné množstvo pamäte. Rovnako nefunguje na Docker pre Mac, takže nemusí byť vhodný pre všetky platformy.

2.2. Amazon Web Services

Ďalšou najjednoduchšou možnosťou nastavenia Graylogu na testovanie je Amazon Web Services. Graylog poskytuje oficiálne AMI, ktoré obsahuje všetky požadované závislosti, aj keď to po inštalácii vyžaduje určitú ďalšiu konfiguráciu.

Inštanciu EC2 môžeme rýchlo nasadiť pomocou Graylog AMI kliknutím tu a výberom oblasti. Graylog odporúča používať inštanciu s minimálne 4 GB pamäte.

Po spustení inštancie musíme SSH do hostiteľa a urobiť niekoľko zmien. Nasledujúce príkazy nakonfigurujú službu Graylog za nás:

$ sudo graylog-ctl enforce-ssl $ sudo graylog-ctl set-external-ip //: 443 / api / $ sudo graylog-ctl prekonfigurovať

Musíme tiež aktualizovať skupinu zabezpečenia, ktorá bola vytvorená pomocou inštancie EC2, aby sme umožnili sieťový prenos na konkrétnych portoch. Obrázok nižšie zobrazuje porty a protokoly, ktoré je potrebné povoliť:

Panel Graylog je teraz k dispozícii pomocou adresy URL /// a predvolené používateľské meno a heslo sú obidve admin.

2.3. Ostatné inštalácie Graylogu

Okrem Dockeru a AWS existujú aj balíčky Graylog pre rôzne operačné systémy. S týmto prístupom musíme tiež nastaviť službu ElasticSearch a MongoDB.

Z tohto dôvodu sa Docker a AWS nastavujú oveľa jednoduchšie, najmä na účely vývoja a testovania.

3. Posielanie v denných správach

Keď je Graylog funkčný, musíme teraz nakonfigurovať našu aplikáciu Spring Boot na odosielanie správ protokolu na server Graylog.

Akýkoľvek rámec protokolovania Java môže podporovať odosielanie správ na server Graylog pomocou protokolu GELF.

3.1. Log4J

V súčasnosti je jediným oficiálne podporovaným protokolovým rámcom Log4J. Graylog poskytuje prílohu, ktorá je k dispozícii na centrálnom serveri Maven.

Môžeme to povoliť pridaním nasledujúcej závislosti Maven do ľubovoľnej pom.xml spis:

 org.graylog2 gelfj 1.1.16 

Taktiež musíme vylúčiť spúšťací modul protokolovania kdekoľvek použijeme štartovací modul Spring Boot:

 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-logovanie 

Teraz môžeme definovať nového prihlasovateľa v našom log4j.xml spis:

Týmto sa nakonfigurujú všetky správy protokolu s úrovňou INFO alebo vyššou, aby sa dostali k pripojiteľovi Graylog, ktorý zasiela správu protokolu na server Graylog.

3.2. Ostatné rámce na ťažbu dreva

Trhovisko Graylog má ďalšie knižnice, ktoré podporujú celý rad ďalších protokolovacích rámcov, ako sú Logback, Log4J2 a ďalšie. Len pozor, tieto knižnice Graylog neudržuje. Niektoré z nich sú opustené a iné majú malú alebo žiadnu dokumentáciu.

Pri spoliehaní sa na tieto knižnice tretích strán by ste mali byť opatrní.

3.3. Graylog Collector Sidecar

Ďalšou možnosťou zberu guľatiny je Graylog Collector Sidecar. Sprievodný vozík je proces, ktorý beží pozdĺž zberača súborov a odosiela obsah súboru protokolu na server Graylog.

Sidecar je skvelá voľba pre aplikácie, kde nie je možná zmena konfiguračných súborov denníka. A pretože číta súbory protokolu priamo z disku, môže sa tiež použiť na integráciu protokolových správ z ľubovoľnej platformy a programovacieho jazyka.

4. Prezeranie správ v Graylogu

Na potvrdenie úspešného doručenia našich denníkových správ môžeme použiť informačný panel Graylog. Pomocou filtra zdroj: localhost zobrazí správy z našej vzorky log4j konfigurácia vyššie:

5. Záver

Graylog je len jednou z mnohých služieb agregácie protokolov. Môže rýchlo vyhľadávať milióny správ z denníka, vizualizovať údaje z denníka v reálnom čase a odosielať výstrahy, keď sú splnené určité podmienky.

Integrácia Graylogu do aplikácie Spring Boot vyžaduje iba niekoľko riadkov konfigurácie a bez nového kódu.

Ukážky kódu, ako vždy, nájdete na GitHub.