J'exécute une application de nœud en utilisant systemd avec un fichier d'unité. Le journal des applications peut être consulté à l'aide journalctl -u example.com
mais le journal est coupé à un moment donné, effaçant l'historique (dont j'ai besoin pour le débogage).
Comment configurer la rotation des journaux avec systemd pour que mes journaux d'application soient stockés dans example.com.log.1
, example.com.log.2
etc. afin que je puisse interroger l'historique de mon application?
Voici mon fichier d'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
man journald.conf
les options contrôlant l'espace disque du journal systemd. Si vous avez encore une question, postez le contenu de votre/etc/systemd/journald.conf
.Réponses:
Augmenter le stockage
Si vous stockez sur le disque, vous pouvez augmenter la quantité d'espace utilisée en changeant
SystemMaxUse
et / ouSystemKeepFree
. Avoir plus d'espace permettrait de stocker plus d'entrées.Par défaut, la limite d'utilisation maximale (
SystemMaxUse
) est de 10% du système de fichiers et la valeur minimale d'espace libre (SystemKeepFree
) est de 15% - bien qu'elles soient toutes deux plafonnées à 4G.Rotation du journal
Les journaux doivent être tournés automatiquement lorsqu'ils atteignent la
SystemMaxFileSize
valeur, et le nombre de journaux est contrôlé parSystemMaxFiles
. Si vous préférez une rotation basée sur le temps, vous pouvez définir unMaxFileSec
pour définir le temps maximum que les entrées sont stockées dans un seul journal.Remarque sur l'emplacement / le type de stockage
Avec journald, vous pouvez choisir de stocker les entrées de journal en mémoire (
Storage=volatile
) ou sur disque (Storage=persistent
). Ce qui précède suppose que vous stockez des journaux sur le disque - si ce n'est pas le cas, "System" devra être remplacé par "Runtime" dans les variables ci-dessus.De plus amples détails sont disponibles en
man journald.conf
.Alternative - Transmission des écritures de journal
Si vous êtes déjà familier avec le démon SYSLOG traditionnel, vous pouvez transmettre les événements de journal en définissant l'
ForwardToSyslog
option (qui transfère immédiatement les messages) ou faire en sorte que le démon syslog se comporte comme un client de journal et récupère les journaux lui-même.la source