Come eseguire il logrotate con systemd?


12

Sto eseguendo un'app nodo usando systemd con un file di unità. Il registro delle app può essere visualizzato utilizzando journalctl -u example.comma il registro viene tagliato ad un certo punto, cancellando la cronologia (di cui ho bisogno per il debug).

Come configuro la rotazione dei registri con systemd in modo che i registri delle mie app vengano archiviati example.com.log.1, example.com.log.2ecc. In modo da poter interrogare la cronologia della mia app?

Questo è il mio file di unità:

ExecStart=/usr/bin/node keystone.js
#Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=example.com
User=user
Group=user
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

1
Includere la versione del sistema, il sistema operativo e la versione.
Mark Stosberg,

1
Rivedi man journald.confper rivedere le opzioni che controllano lo spazio su disco del journal di systemd. Se hai ancora una domanda, pubblica il contenuto del tuo /etc/systemd/journald.conf.
Mark Stosberg,

Risposte:


7

Aumento dello spazio di archiviazione

Se si sta memorizzando su disco, è possibile aumentare la quantità di spazio utilizzato modificando SystemMaxUsee / o SystemKeepFree. Avere più spazio consentirebbe di memorizzare più voci.

Per impostazione predefinita, il limite massimo di utilizzo ( SystemMaxUse) è il 10% del filesystem e il valore minimo di spazio libero ( SystemKeepFree) è del 15%, sebbene entrambi siano limitati a 4G.

Rotazione del diario

Le riviste dovrebbero essere ruotate automaticamente quando raggiungono il SystemMaxFileSizevalore e il numero di riviste è controllato da SystemMaxFiles. Se si preferisce la rotazione basata sul tempo, è possibile impostare a MaxFileSecper impostare il tempo massimo in cui le voci vengono memorizzate in un singolo diario.

Nota su posizione / tipo di archiviazione

Con journald è possibile scegliere di memorizzare le voci del diario in memoria ( Storage=volatile) o su disco ( Storage=persistent). Quanto sopra presuppone che si stiano memorizzando i periodici su disco - in caso contrario, "Sistema" dovrà essere sostituito da "Runtime" nelle variabili sopra.

Ulteriori dettagli sono disponibili in man journald.conf.

Alternativa: passare le voci del diario

Se hai già familiarità con il demone SYSLOG tradizionale, puoi trasmettere gli eventi del journal impostando l' ForwardToSyslogopzione (che inoltra immediatamente i messaggi) o fai in modo che il demone syslog funzioni come un client journal e recuperi i registri stessi.

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.