Quali sono i pro ei contro di logrotate vs rotatelogs con Apache?


11

Apache fornisce uno strumento chiamato rotatelogs che ha il vantaggio di non riavviare apache durante la rotazione dei log che avviene con logrotate. Non ho abbastanza esperienza per parlare se questo è un criterio sufficiente per usare i rotatelog su logrotate.

La mia domanda è: qualcuno ha un'esperienza di vita reale usando uno di questi due strumenti e quali sarebbero stati i tuoi suggerimenti?

Cosa consiglieresti e perché?

Risposte:


7

Consiglierei logrotate per la maggior parte delle persone poiché è quello che ruoterà tutti gli altri log (KISS: Keep it Simple Stupid). Logrotate non riavvia tutto Apache, ma gli invia semplicemente un segnale che gli dice di riaprire tutti i suoi file di registro e riavviare i bambini. Questo segnale può essere SIGHUP, che provoca il riavvio immediato dei bambini (che interromperà i download) o SIGUSR1, che esegue un riavvio corretto. Con SIGUSR1, devi ritardare l'elaborazione del log fino a quando pensi che tutti i bambini sarebbero morti naturalmente. In entrambi i casi, probabilmente vorrai analizzare i tuoi registri e calcolare il tempo per il periodo di traffico più basso del giorno o della settimana.

I registri con pipe sembrano essere la soluzione più potente. Un grande vantaggio è che ti consentirà di utilizzare un sistema di registrazione centralizzato e di caricare il server web stesso. Il manuale stesso dice:

Come per la registrazione condizionale, i registri con pipe sono uno strumento molto potente, ma non dovrebbero essere utilizzati laddove sia disponibile una soluzione più semplice come la post-elaborazione off-line.

Quindi, a quanto pare, non utilizzare la registrazione con pipe se non ne hai bisogno . Ho usato il log log in passato come un modo confuso per filtrare i log e non ho avuto problemi.


Lo script postrotate con i file logrotate di Apache è di inviare un SIGHUP, che fa sì che Apache termini tutti i figli e si riavvii. Eventuali connessioni attive al momento vengono terminate.
Warner

Ho letto un commento da qualche parte che ha detto che il riavvio grazioso non funziona molto bene con i server che trasportano un carico pesante. Ma non credo davvero che ci sia molta alternativa.
Mohan Gulati

logrotate con SIGHUP è piuttosto standard. Non me ne preoccuperei.
Warner

2

Ho usato entrambi prima. Ho scoperto che l'uso di rotatelogs è uno strumento molto utile nella gestione dei log di accesso e se non si desidera che i tempi di inattività di Apache. Su un sito ad alto volume lo consiglierei, l'unico problema che ho riscontrato è stato che se si desidera gestire i registri, è necessario disporre di uno script separato per ripulire o spostare i registri su un server di backup, ovviamente questo dipende dal requisito. Con logrotate hai più opzioni su come vengono gestiti i file di log, l'unico problema è quando logrotate viene eseguito come spiegato nella risposta precedente, dovrai riavviare apache.

Fondamentalmente tutto si riduce alla scelta, se hai bisogno di apache per l'esecuzione senza interruzioni, allora rotatelogs con uno script cron esterno da gestire, altrimenti sarà sufficiente logrotate. Assicurati solo di impostare logrotate cron in modo che non ruoti i log quando hai traffico intenso.

Infine, se vuoi avere il log di apache sul tuo syslog puoi sempre usare il comando logger che si trova su Linux basati su Redhat.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.