Ich führe eine Knoten-App mit systemd mit einer Unit-Datei aus. Das Apps-Protokoll kann mit angezeigt werden, journalctl -u example.com
aber das Protokoll wird irgendwann abgeschnitten, wodurch der Verlauf gelöscht wird (den ich zum Debuggen benötige).
Wie konfiguriere ich die Protokollrotation mit systemd so, dass meine App-Protokolle usw. gespeichert werden example.com.log.1
, example.com.log.2
damit ich den Verlauf meiner App abfragen kann?
Dies ist meine Einheitendatei:
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
, um Optionen zu überprüfen, die den Speicherplatz des systemd-Journals steuern. Wenn Sie noch eine Frage haben, posten Sie den Inhalt Ihrer/etc/systemd/journald.conf
.Antworten:
Speicher erhöhen
Wenn Sie auf der Festplatte speichern, können Sie den durch Ändern
SystemMaxUse
und / oder verwendeten Speicherplatz erhöhenSystemKeepFree
. Wenn mehr Speicherplatz vorhanden ist, können mehr Einträge gespeichert werden.Standardmäßig beträgt das maximale Nutzungslimit (
SystemMaxUse
) 10% des Dateisystems und der minimaleSystemKeepFree
Wert für freien Speicherplatz ( ) 15% - obwohl beide auf 4G begrenzt sind.Journalrotation
Die Journale sollten automatisch gedreht werden, wenn sie den
SystemMaxFileSize
Wert erreichen, und die Anzahl der Journale wird von gesteuertSystemMaxFiles
. Wenn Sie eine zeitbasierte Rotation bevorzugen, können Sie a festlegenMaxFileSec
, um die maximale Zeit festzulegen, zu der Einträge in einem einzelnen Journal gespeichert werden.Hinweis zum Speicherort / -typ
Mit journald können Sie die Journaleinträge entweder im Speicher (
Storage=volatile
) oder auf der Festplatte (Storage=persistent
) speichern . Bei dem oben Gesagten wird davon ausgegangen, dass Sie Journale auf der Festplatte speichern. Ist dies nicht der Fall, muss "System" in den obigen Variablen durch "Runtime" ersetzt werden.Weitere Details finden Sie in
man journald.conf
.Alternative - Journaleinträge weitergeben
Wenn Sie bereits mit dem herkömmlichen SYSLOG-Dämon vertraut sind, können Sie die Journalereignisse weitergeben, indem Sie die
ForwardToSyslog
Option (die die Nachrichten sofort weiterleitet) festlegen oder den Syslog-Dämon wie einen Journal-Client bahaven und die Protokolle selbst abrufen.quelle