Leser Redis -logger

Leser Redis -logger

“Redis er en mye brukt i minnedatabasen som lagrer data som nøkkelverdipar. Generelt opprettholder syslog Redis -loggen. Det kan bevare logger fra forskjellige kilder. Men hvis Redis -loggen håndterer mye flere poster, vil det føre til lav systemytelse. Deretter, for videre behandling, tillater Syslog å videresende alle logger til den sentraliserte loggserveren.”

Konfigurere Redis -logging

Ved hjelp av kommandoen nedenfor kan vi åpne Redis Server -konfigurasjonsfilen som ligger i /etc/redis/redis.konf.

$ sudo nano/etc/redis/redis.konf

Når du definerer navnet og katalogen til en loggfil, må du bruke logfildirektivet. Som oftest, /var/log er standardkatalogen for syslog -loggingen; Dessuten lagrer standardkonfigurasjonen loggen på denne katalogen. Du trenger ikke å endre dette igjen og igjen fordi Syslog som standard opprettholder alle logger i /var/log katalog. Når det syslog-aktiverte direktivet blir kommentert, bør du ikke gjøre denne linjen og angi verdien som ja. For hver syslog -post vil denne strengen bli forberedt.

Nedenfor kan du se linjene som viser den redigerte filen,

Etter hvert kan du lagre og lukke filen. Men plutselig, hvis du vil bruke den nye konfigurasjonen, kan du bruke kommandoen nedenfor.

$ sudo systemct1 omstart redis

Leser Syslog -logger

Du har to kommandolinjealternativer. Hvis du ønsker å få tilgang til Redis-relaterte syslog-poster,

Viser loggfilen i terminalen

Fordi Redis registrerer alle meldinger i både syslog og den tilpassede filen, kan du se Redis -loggfilen direkte. I forrige fase lagret vi Redis -logger i filen ./var/log/redis/redis-server.Logg. Å utføre CAT -kommandoen lar deg undersøke denne filen som følger.

$ Katt/var/log/redis/redis-server.Logg

Ved hjelp av kommandoen ovenfor kan du inspisere Redis Log File -innholdet som følger.

Spørring ved hjelp av JournalCTL

Alle logger kontrolleres av Journd -tjenesten, som er en del av SystemD (Ubuntu bruker SystemD Service Manager). De journald gir kommandolinjeverktøyet Journalctl, som søker på syslog -oppføringer ved å bruke forskjellige kriterier og presenterer resultatene. Hvis Redis -serveren din er konfigurert for å logge på Syslog, kan du bruke følgende kommando for å hente Syslog -oppføringene til Redis -tjenesten:

$ Journalctl -u Redis -server.service

Denne kommandoen -U -delen begrenser skjermen til syslog -oppføringer knyttet til Redis -serveren.service

Utgangen viser duplikatoppføringene i både visningsloggfilen og Journalctl men bruker et annet tidsstempelformat og inneholder ikke noen metadataoverskrifter som er inkludert i syslog (prosessnavn og andre).

Redis -logging med Docker

Redis Log -vedlikehold krever bruk av en Docker -loggfører hvis du ønsker å kjøre Redis inne i en Docker -beholder.

Redis container nedlasting

For å hente det originale bildet fra Docker Hub, bør vi bruke Docker Pull -kommandoen og bilnavnet Redis. Det kan gjøres som følger.

$ sudo docker pull redis

Som det fremgår av utdataene, lagrer Docker den lokalt og gjør den tilgjengelig for å kjøre containere etter å ha hentet et bilde.

Kjør beholder og visningslogg

Ved å gi Docker Run -kommandoen, kan du starte Redis Container.

$ sudo docker run -d -p 23200: 23200 - -Navn My -Redis Redis

Alternativ -D skriver ut container -IDen når du kjører beholderen i bakgrunnen (typisk bruk for databaseserver). Det som skjer her er at Redis Container Port 23200 vil kartlegge til den lokale maskinens port 23200. Containernavnet for My -Redis bestemmes av alternativet -navnet.

Hvis du vil inspisere Redis -beholderen, kan du kjøre Docker -logger med containernavnloggen som følger.

$ sudo docker logger min-redis

Utgangen viser Redis-relaterte loggoppføringer som gir informasjon om oppstart og initialisering av tjenester. Som du kan se, er syslog og docker -loggen sammenlignbar.

Det ville være best hvis du brukte Docker RM - - A tvang til å slå av denne beholderen.

Redis Log Rotation

Fordi loggfiler alltid utvides over tid, må størrelsen styres. Linux bruker et konsept kjent som loggrotasjon for å løse dette problemet. Vi vil sette opp loggrotasjon for Redis ved hjelp av syslog i dette stadiet. En demon som heter Logrotate er en del av sysloggen, og sikrer at alle tømmerstokker roteres. Ubuntu 20.04, som standard, bruker Logrotate (inkludert Redis Log Rotation hvis installert). Filen /etc/logrotate.d/redis-server Definerer loggrotasjonsinnstillingene for Redis Log Rotation.

Nå kan vi åpne filen ved hjelp av kommandoen nedenfor.

$ sudo nano /etc /logrotate.d/redis-server

Direktivene som er inkludert i krøllete parenteser spesifiserer hvordan du roterer loggen i katalogen som er spesifisert ovenfor. Redis roterer logger ved å bruke følgende parametere i henhold til filen:

Ukentlig: Loggene er slått ut. Alternativt kan du velge en annen tidsramme (daglig, ukentlig, månedlig eller årlig). Logrotate Daemon kjører daglig, men du kan alternativt spesifisere at den roterer hver time (time). For å rotere logger hver time i en slik situasjon, må du endre Logrotate Cron -jobbintervallet.

Mangler OK: Hvis loggfilen er fraværende, rapporterer ikke demonen noen feil.

Roter 12: Tolv rotasjoner av loggfiler utføres før sletting. Eldre versjoner blir ødelagt i stedet for rotert hvis rotasjonen er satt til 0.

Komprimere: Utdaterte loggfiler vil bli komprimert med Gzip.

Melding: Hvis loggen er tom, ikke roter den.

Logrotate -dokumentasjonssidene detaljerer hver potensiell instruksjon. Mann logrotate kan brukes til å se dem. Du kan endre disse alternativene, legge til nye eller ta bort noen av dem. Du bestemmer hvilket oppsett du skal bruke. Når du setter loggrotasjonsparametere, kan filen lagres og lukkes. Nå vil Logrotate rutinemessig rotere Redis -logger.

Konklusjon

For å oppsummere, er syslog -logging ekstremt nyttig når det gjelder å generere Redis -logger. Du kan observere Redis -logger ved direkte å spørre JournalCTL og åpne loggfilen. Ved hjelp av loggene roterer demonen, setter du opp Redis Log Rotation. Redis Docker -bildet ble lastet ned, kjørte inne i beholderen, og de tilhørende Docker -logger ble lest.