Prijava na Graylog pomoću Spring Boot-a

1. Uvod

Graylog je usluga agregacije dnevnika. Jednostavno rečeno, sposoban je prikupiti milijune dnevničkih poruka iz više izvora i prikazati ih u jednom sučelju.

Također, nudi i niz drugih značajki poput upozorenja u stvarnom vremenu, nadzornih ploča s grafikonima i grafikonima i još mnogo toga.

U ovom uputstvu vidjet ćemo kako postaviti Graylog poslužitelj i slati mu zapisnike iz aplikacije Spring Boot.

2. Postavljanje Grayloga

Postoji nekoliko načina za instaliranje i pokretanje Grayloga. U ovom uputstvu razgovarat ćemo o dva najbrža načina: Docker i Amazon Web Services.

2.1. Lučki radnik

Sljedeće naredbe će preuzeti sve potrebne slike Dockera i pokrenuti spremnik za svaku uslugu:

$ 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- čvor "-e" xpack.security.enabled = false "\ -e" bootstrap.memory_lock = true "--ulimit memlock = -1: -1 \ -d docker.elastic.co/elasticsearch/elasticsearch:5.6.11 $ izvršavanje dockera --ime 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

Nadzorna ploča Graylog sada je dostupna pomoću URL-a // localhost: 9000 / i zadano korisničko ime i lozinka su oboje admin.

Iako je postavljanje Dockera najjednostavnije, zahtijeva znatnu količinu memorije. Također ne radi na Dockeru za Mac, pa možda nije prikladan za sve platforme.

2.2. Amazon Web Services

Sljedeća najjednostavnija opcija za postavljanje Grayloga za testiranje su Amazon Web Services. Graylog nudi službeni AMI koji uključuje sve potrebne ovisnosti, iako zahtijeva neku dodatnu konfiguraciju nakon instalacije.

Kratko možemo rasporediti EC2 instancu s Graylog AMI klikom ovdje i odabirom regije. Graylog preporučuje upotrebu instance s najmanje 4 GB memorije.

Nakon što je instanca započela, trebamo SSH unijeti u hosta i napraviti nekoliko promjena. Sljedeće naredbe će nam konfigurirati uslugu Graylog:

$ sudo graylog-ctl force-ssl $ sudo graylog-ctl set-external-ip //: 443 / api / $ sudo Graylog-ctl rekonfiguracija

Također moramo ažurirati sigurnosnu grupu koja je stvorena s instancom EC2 kako bi se omogućio mrežni promet na određenim priključcima. Grafikon u nastavku prikazuje priključke i protokole koje treba omogućiti:

Nadzorna ploča Graylog sada je dostupna pomoću URL-a /// i zadano korisničko ime i lozinka su oboje admin.

2.3. Ostale Graylog instalacije

Osim Dockera i AWS-a, postoje i Graylog paketi za razne operativne sustave. Ovim pristupom također moramo postaviti uslugu ElasticSearch i MongoDB.

Iz tog je razloga Docker i AWS puno lakše postaviti, posebno u svrhu razvoja i testiranja.

3. Slanje dnevnika poruka

Kada je Graylog pokrenut i pokrenut, sada moramo konfigurirati našu aplikaciju Spring Boot za slanje poruka dnevnika na Graylog poslužitelj.

Bilo koji Java sustav dnevnika može podržati slanje poruka na Graylog poslužitelj pomoću GELF protokola.

3.1. Log4J

Trenutno je jedini službeno podržani logging framework Log4J. Graylog nudi dodatak koji je dostupan na Maven central.

Možemo ga omogućiti dodavanjem sljedeće Maven ovisnosti bilo kojem pom.xml datoteka:

 org.graylog2 gelfj 1.1.16 

Također moramo izuzeti modul za prijavu startera gdje god koristimo pokretački modul Spring Boot:

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

Sada možemo definirati novi dodatak u našem log4j.xml datoteka:

To će konfigurirati sve poruke dnevnika s razinom INFO ili višom da idu na Graylog dodavač, koji zauzvrat šalje poruku dnevnika Graylog poslužitelju.

3.2. Ostali okviri evidentiranja

Tržište Graylog ima dodatne biblioteke koje podržavaju niz drugih okvira za evidentiranje kao što su Logback, Log4J2 i drugi. Samo pripazite da Graylog ne održava ove knjižnice. Neki od njih su napušteni, a drugi imaju malo ili nimalo dokumentacije.

Treba biti oprezan kada se oslanjate na ove biblioteke trećih strana.

3.3. Kolektor Graylog Collector

Druga mogućnost za prikupljanje dnevnika je prikolica Graylog Collector Sidecar. Prikolica je postupak koji se odvija duž sakupljača datoteka, šaljući sadržaj datoteke dnevnika na Graylog poslužitelj.

Sidecar je izvrsna opcija za programe u kojima promjena datoteka konfiguracije dnevnika nije moguća. I zato što čita datoteke dnevnika izravno s diska, također se može koristiti za integriranje dnevničkih poruka s bilo koje platforme i programskog jezika.

4. Pregled poruka u Graylogu

Nadzornu ploču Graylog možemo koristiti za potvrdu uspješne isporuke naših dnevničkih poruka. Korištenje filtra izvor: localhost prikazat će zapisničke poruke iz našeg uzorka log4j gornja konfiguracija:

5. Zaključak

Graylog je samo jedna od mnogih usluga agregacije dnevnika. Može brzo pretraživati ​​milijune dnevničkih poruka, vizualizirati podatke dnevnika u stvarnom vremenu i slati upozorenja kada su ispunjeni određeni uvjeti.

Integriranje Grayloga u aplikaciju Spring Boot zahtijeva samo nekoliko redaka konfiguracije i bez novog koda.

Uzorci koda, kao i uvijek, mogu se naći na GitHubu.