Send logfiler for en Java-app til Elastic Stack (ELK)

1. Oversigt

I denne hurtige vejledning diskuterer vi trin for trin, hvordan du sender applikationslogfiler til Elastic Stack (ELK).

I en tidligere artikel fokuserede vi på at oprette Elastic Stack og sende JMX-data til den.

2. Konfigurer logback

lad os starte med at konfigurere Logback til at skrive app-logfiler i en fil ved hjælp af FileAppender:

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

Noter det:

  • Vi fører logfiler over hver dag i en separat fil ved hjælp af RollingFileAppender med TimeBasedRollingPolicy (mere om denne appender her)
  • Vi opbevarer gamle logfiler i kun en uge (7 dage) ved at indstille maxHistory til 7

Bemærk også, hvordan vi bruger LogstashEncoder at udføre kodningen i et JSON-format - hvilket er lettere at bruge med Logstash.

For at gøre brug af denne indkoder skal vi tilføje følgende afhængighed til vores pom.xml:

 net.logstash.logback logstash-logback-encoder 4.11 

Lad os endelig sørge for, at appen har tilladelse til at få adgang til logfiler:

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

3. Konfigurer Logstash

Nu skal vi konfigurere Logstash til at læse data fra logfiler oprettet af vores app og sende dem til ElasticSearch.

Her er vores konfigurationsfil logback.conf:

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

Noter det:

  • input fil bruges, da Logstash vil læse logfiler denne gang fra logfiler
  • sti er indstillet til vores logfiler, og alle filer med .log-udvidelse behandles
  • indeks er indstillet til nyt indeks "logback -% {+ YYYY.MM.dd}" i stedet for standard "logstash -% {+ YYYY.MM.dd}"

For at køre Logstash med ny konfiguration bruger vi:

bin / logstash -f logback.conf

4. Visualiser logfiler ved hjælp af Kibana

Vi kan nu se vores Logback-data i 'logback- *'Indeks.

Vi opretter en ny søgning 'Logback logs' for at sikre at adskille Logback-data ved hjælp af følgende forespørgsel:

type: logback

Endelig kan vi oprette en simpel visualisering af vores Logback-data:

  • Naviger til 'Visualiser' -fanen
  • Vælg 'Lodret søjlediagram'
  • Vælg 'Fra gemt søgning'
  • Vælg 'Logback logs' -søgning, vi lige har oprettet

For Y-aksen skal du sørge for at vælge Aggregation: Tælle

For X-akse skal du vælge:

  • Samling: Vilkår
  • Mark: niveau

Efter at have kørt visualiseringen, skal du se, at flere søjler repræsenterer et antal logfiler pr. Niveau (DEBUG, INFO, FEJL, ...)

5. Konklusion

I denne artikel lærte vi det grundlæggende ved opsætning af Logstash i vores system for at skubbe logdata, det genererer, til Elasticsearch - og visualisere disse data ved hjælp af Kibana.


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