J'ai un service particulier, qui enregistre des informations rares mais importantes. Je l'ai installé il y a quelques mois et aujourd'hui, j'ai couru journalctl -n 50 --unit=my-service
seulement pour trouver qu'il n'y avait pas d'entrées.
Je suis parfaitement satisfait de ce comportement pour la plupart des unités - soit j'ai besoin de quelque chose qui s'est produit tout de suite (ou il y a quelques jours au plus), et je me fiche des enregistrements vieux de plusieurs mois.
Cependant, existe-t-il un moyen de dire journald
d'avoir une politique de stockage et de conservation indépendante pour les enregistrements d'une seule unité particulière? Je veux conserver ces journaux particuliers pendant, disons, 5 ans - peu importe la taille que cela prendrait. Les journaux des autres unités ne devraient pas en être affectés et conserver leur comportement actuel.
Je suis en quelque sorte une compréhension perdue journald.conf(5)
et je ne peux pas comprendre quand une configuration par unité est possible. Si c'est le cas - apprécierait un bref exemple concret - quel fichier dois-je modifier / créer et que dois-je écrire. Ou, si vous savez avec certitude que ce n'est certainement pas faisable - ce serait aussi une bonne réponse.
REMARQUE: Mon cas particulier concerne l'hôte Arch Linux, mais je suppose que cela ne devrait pas beaucoup d'importance.
la source
Réponses:
Il semble que je n'ai probablement pas de chance avec Journal. À moins que je ne trouve un moyen de créer un journal indépendant de «stockage à long terme» (comme il existe actuellement différentes revues par utilisateur), mais je ne suis pas sûr que ce soit une approche viable et sensée. Je suppose que la mise en place d'un syslogd (et logrotate) serait plus facile.
Le long métrage n'était pas présent fin 2014 , comme l'a confirmé Lennart lui-même.
Et il semble que ce ne soit pas encore là. Au moins, la ligne "journald: autoriser les temps de rétention par priorité et par service lors de la rotation / mise sous vide" est toujours dans le fichier TODO (lien vers la révision du 11/07/2016).
la source
Il est remarquablement simple de générer le fichier journal. Par défaut, toute la journalisation dans journald est également envoyée à syslog et cette valeur par défaut doit être en place. Le rsyslog.conf contrôle la façon dont les entrées passées à syslog sont gérées. De plus, les
SyslogFacility
valeurs par défaut sontdaemon
donc les entrées de journal pour tout service se retrouvent généralement dans ledaemon.log
fichier/var/log
.Dans votre fichier de service, ajoutez à la section [service]
(le nombre peut être compris entre 0 et 7) https://www.freedesktop.org/software/systemd/man/systemd.exec.html
Modifiez le fichier /etc/rsyslog.conf (recherchez les lignes existantes à modifier) afin que local2 soit enregistré dans un fichier spécifique (première ligne) et idéalement non connecté à syslog en l'ajoutant
local2.none
comme indiqué (il est déjà dans le journal).[modifier] vous devez également modifier le fourre-tout
Bien sûr, la rétention réelle doit alors être effectuée par logrotate.
HTH
la source