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.