Hur man konfigurerar loggning och loggrotation i Nginx på en Ubuntu VPS

Hur du konfigurerar loggning och loggrotation i Nginx på en Ubuntu VPS

Nginx är en kraftfull och populär webbserver som används av många webbplatser och applikationer. För att felsöka problem och säkerställa att din Nginx-server fungerar korrekt är det viktigt att konfigurera loggning och loggrotation ordentligt. I den här guiden kommer vi att gå igenom hur du konfigurerar loggning och loggrotation i Nginx på en Ubuntu VPS.

Introduktion

Loggning är processen att registrera händelser och aktiviteter som inträffar på en server. Genom att logga kan du felsöka problem, övervaka serverns prestanda och upptäcka säkerhetsincidenter. Loggrotation är processen att rotera loggfiler när de når en viss storlek eller ålder, vilket förhindrar att de växer för stort och tar upp för mycket diskutrymme.

Varför är loggning och loggrotation viktigt?

* Felsökning: Loggar kan hjälpa dig att felsöka problem med din webbserver, webbplatser eller applikationer.
* Övervakning: Loggar kan användas för att övervaka prestandan för din server, inklusive trafikmönster, svarstider och fel.
* Säkerhet: Loggar kan hjälpa dig att upptäcka säkerhetsincidenter, såsom intrångsförsök eller skadlig aktivitet.
* Lagring: Loggrotation förhindrar att loggfiler växer för stort och tar upp för mycket diskutrymme.

Konfigurera loggning i Nginx

Loggkonfiguration för Nginx hanteras i serverblockskonfigurationsfilerna, som vanligtvis finns i /etc/nginx/sites-available/. Öppna lämplig konfigurationsfil med din favorittextredigerare:

bash
sudo nano /etc/nginx/sites-available/example.com

Lägg sedan till följande direktiv inom server-blocket:

conf
access_log /var/log/nginx/example.com-access.log;
error_log /var/log/nginx/example.com-error.log;

* access_log definierar sökvägen till åtkomstloggen, som registrerar alla förfrågningar till din webbplats.
* error_log definierar sökvägen till felloggen, som registrerar alla fel som inträffar under Nginx-operationen.

Glöm inte att ersätta example.com med ditt faktiska domännamn.

Anpassa loggformatet

Du kan anpassa formatet på dina loggfiler genom att använda log_format-direktivet. Följande exempel visar hur du loggar åtkomsttid, IP-adress, HTTP-metod, URI, HTTP-svars kod och svarstorlek:

conf
log_format my_custom_format '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent';

Du kan sedan använda det anpassade formatet i access_log– och error_log-direktiven:

conf
access_log /var/log/nginx/example.com-access.log my_custom_format;
error_log /var/log/nginx/example.com-error.log my_custom_format;

Konfigurera loggrotation i Nginx

Loggrotation hanteras av logrotate-verktyget på Ubuntu. Öppna /etc/logrotate.d/nginx med din favorittextredigerare:

bash
sudo nano /etc/logrotate.d/nginx

Lägg sedan till följande konfiguration:

conf
/var/log/nginx/*.log {
daily
rotate 30
compress
delaycompress
notifempty
create 644 nginx nginx
}

* daily roterar loggfilerna dagligen.
* rotate 30 behåller de 30 senaste loggfilerna.
* compress komprimerar roterade loggfiler för att spara diskutrymme.
* delaycompress fördröjer komprimering tills rotfilen inte längre används.
* notifempty roterar loggfilen även om den är tom.
* create 644 nginx nginx skapar loggfilerna med ägare nginx och grupp nginx.

Testa loggning och loggrotation

Starta om Nginx för att läsa in de nya konfigurationsändringarna:

bash
sudo systemctl restart nginx

Besök sedan din webbplats eller utför en åtgärd som genererar loggposter. Du bör nu se loggposter i de angivna sökvägarna.

För att testa loggrotationen, vänta tills den dagliga rotationsplanen körs. Du bör se roterade loggfiler i den angivna sökvägen, komprimerade om du har aktiverat compress.

Slutsats

Genom att konfigurera loggning och loggrotation ordentligt kan du felsöka problem, övervaka prestanda och säkerställa säkerheten för din Nginx-server. Att använda anpassade loggformat ger dig flexibilitet att registrera den information som är mest relevant för dina behov. Loggrotation förhindrar att loggfiler växer för stort och hjälper dig att hålla diskutrymmet rent. Genom att följa stegen i den här guiden kan du effektivt hantera och använda loggar för att förbättra driften av din Nginx-server.

Vanliga frågor

1. Vilka är de olika loggnivåerna i Nginx?
Nginx stöder följande loggnivåer: debug, info, alert och error.

2. Hur kan jag felsöka loggkonfigurationsproblem i Nginx?
Kontrollera loggkonfigurationsfilerna för syntaxfel och se till att loggfilerna är skrivbara av nginx-användaren.

3. Kan jag rotera loggfiler baserat på storlek istället för ålder?
Ja, du kan använda size-direktivet i logrotate-konfigurationen för att rotera loggfiler när de når en viss storlek.

4. Hur kan jag skapa olika loggrotationsinställningar för olika loggfiler?
Du kan skapa flera logrotate-konfigurationsposter för att ange olika inställningar för olika loggfiler.

5. Vad är skillnaden mellan compress och delaycompress i logrotate-konfigurationen?
compress komprimerar roterade loggfiler omedelbart, medan delaycompress fördröjer komprimering tills rotfilen inte längre används.

6. Var kan jag hitta mer information om loggning och loggrotation i Nginx?
Nginx-dokumentationen och logrotate-mannuelsidan kan ge ytterligare information.

7. Kan jag använda ett tredjepartsverktyg för att hantera loggning och loggrotation?
Ja, det finns verktyg som Logstash, Graylog och Splunk som kan hjälpa till med centraliserad loggning och loggrotation.

8. Hur kan jag övervaka mina loggar och få varningar om problem?
Du kan använda verktyg som Logwatch eller Filebeat för att övervaka loggfiler och få varningar när problem uppstår.