Sådan konfigureres logrotation for en Docker-container

Vi har alle brug for logfiler!

Undertiden får jeg det til at føle, at jeg arbejder med en sort kasse ved at arbejde med Docker. Især når jeg leger med Docker-billeder fra samfundet, og det går ikke som forventet. I mange tilfælde tager læsning af logfiler en stor del af tiden, når fejlretning foretages.

Denne artikel handler om opsætning af logrotation for Docker-containere.

Standardlogdriveren

Vi kan konfigurere forskellige loggningsdrivere til containere. Som standard er stdout og stderr for containeren skrevet i en JSON-fil, der findes i /var/ lib/docker/ containers/ [container- id] / [container-id] -json.log . Hvis du lader det være uden opsyn, kan det tage en stor mængde diskplads, som vist nedenfor.

Rens loggen manuelt

Hvis denne JSON-logfil optager en betydelig mængde af disken, kan vi rense den ved hjælp af følgende kommando.

Vi kunne oprette en cronjob for at rense disse JSON-logfiler regelmæssigt. Men på lang sigt ville det være bedre at konfigurere logrotation.

Konfigurer logrotationen

Konfigurer standardlogdriveren

Dette kan gøres ved at tilføje følgende værdier i /etc/docker/daemon.json . Opret denne fil, hvis den ikke findes.

Den JSON-fil logning føreren har et par flere muligheder, og vi kan endda skifte til andre logging drivkræfter, som syslog . For mere information henvises til Docker Docs - Konfigurer loggedrivere.

Udfør følgende kommandoer for at genindlæse den opdaterede daemon.json . Den nye konfiguration gælder for alle nyoprettede containere efter genstart.

Konfigurer loggedriveren til en container

Konfigurationen kan også udføres på containerniveau, hvis du ikke vil anvende den globalt.

Docker-kørekommandoen

Vi kan specificere loggningsdriveren og indstillingerne i docker run- kommandoen. For eksempel:

Brug af docker-compose

Loggningsdriveren og indstillingerne kan også konfigureres ved hjælp af docker-compose. For eksempel:

Kontroller, om opsætningen fungerer.

Resumé

Selvom standardindstillingerne fungerer fint, ved du aldrig, hvornår containerlogfiler optager al diskplads. Dette kan undgås med de få trin, der er diskuteret ovenfor. Bortset fra det er logfiler et vigtigt aktiv. De er ikke kun nyttige, når noget går galt, men de indeholder også en masse skjult værdi. Så lad aldrig logfiler gå.

Hvis du leder efter en SAAS-løsning til loghåndtering , kan du overveje at bruge Boatswain. Vi hjælper dig med at administrere alle logfiler og overvåge dine Docker-servere. ?

- Oprindeligt sendt på Boatswain Blog.