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.