Comment se connecter avec systemd?

11

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.commais 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.2etc. 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
htor
la source
1
Veuillez inclure votre version systemd ainsi que votre système d'exploitation et votre version.
Mark Stosberg
1
Examinez man journald.confles options contrôlant l'espace disque du journal systemd. Si vous avez encore une question, postez le contenu de votre /etc/systemd/journald.conf.
Mark Stosberg

Réponses:

6

Augmenter le stockage

Si vous stockez sur le disque, vous pouvez augmenter la quantité d'espace utilisée en changeant SystemMaxUseet / ou SystemKeepFree. 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 SystemMaxFileSizevaleur, et le nombre de journaux est contrôlé par SystemMaxFiles. Si vous préférez une rotation basée sur le temps, vous pouvez définir un MaxFileSecpour 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' ForwardToSyslogoption (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.

DougC
la source