Send loggene til en Java-app til Elastic Stack (ELK)

1. Oversikt

I denne raske opplæringen diskuterer vi trinn for trinn hvordan du sender ut applikasjonslogger til Elastic Stack (ELK).

I en tidligere artikkel fokuserte vi på å sette opp Elastic Stack og sende JMX-data inn i den.

2. Konfigurer tilbakekobling

la oss starte med å konfigurere Logback for å skrive applogger til en fil ved hjelp av FileAppender:

 logback / redditApp.log logback / redditApp.% d {åååå-MM-dd} .log 7 

Noter det:

  • Vi fører logger over hver dag i en egen fil ved hjelp av RollingFileAppender med TimeBasedRollingPolicy (mer om denne appenderen her)
  • Vi oppbevarer gamle logger i bare en uke (7 dager) ved å angi maxHistory til 7

Legg også merke til hvordan vi bruker LogstashEncoder å gjøre kodingen i et JSON-format - som er lettere å bruke med Logstash.

For å gjøre bruk av denne koderen, må vi legge til følgende avhengighet til vår pom.xml:

 net.logstash.logback logstash-logback-encoder 4.11 

Til slutt, la oss sørge for at appen har tillatelse til å få tilgang til loggkatalogen:

sudo chmod a + rwx / var / lib / tomcat8 / logback

3. Konfigurer Logstash

Nå må vi konfigurere Logstash til å lese data fra loggfiler opprettet av appen vår og sende den til ElasticSearch.

Her er konfigurasjonsfilen vår logback.conf:

input {file {path => "/var/lib/tomcat8/logback/*.log" codec => "json" type => "logback"}} output {if [type] == "logback" {elasticsearch {hosts => ["localhost: 9200"] index => "tilbakekobling -% {+ ÅÅÅÅ.MM.dd}"}}}

Noter det:

  • inngang fil brukes da Logstash vil lese logger denne gangen fra loggfiler
  • sti er satt til loggkatalogen vår, og alle filer med .log-utvidelsen blir behandlet
  • indeks er satt til ny indeks "logback -% {+ YYYY.MM.dd}" i stedet for standard "logstash -% {+ YYYY.MM.dd}"

For å kjøre Logstash med ny konfigurasjon, bruker vi:

bin / logstash -f logback.conf

4. Visualiser logger ved hjelp av Kibana

Vi kan nå se loggdataene våre i 'tilbakekobling- *‘Indeks.

Vi oppretter et nytt søk ‘Logback logs’ for å sørge for å skille Logback-data ved å bruke følgende spørsmål:

type: logback

Endelig kan vi lage en enkel visualisering av Logback-dataene våre:

  • Naviger til 'Visualiser' -fanen
  • Velg 'Vertikal stolpediagram'
  • Velg 'Fra lagret søk'
  • Velg 'Logglogger' -søk vi nettopp opprettet

Sørg for å velge Aggregation for Y-aksen: Telle

For X-akse, velg:

  • Aggregasjon: Vilkår
  • Felt: nivå

Etter at du har kjørt visualiseringen, bør du se at flere stolper representerer et antall logger per nivå (DEBUG, INFO, FEIL, ...)

5. Konklusjon

I denne artikkelen lærte vi det grunnleggende om å sette opp Logstash i systemet vårt for å skyve loggdataene det genererer til Elasticsearch - og visualisere disse dataene ved hjelp av Kibana.


$config[zx-auto] not found$config[zx-overlay] not found