Ich habe zwei Webserver, die nginx verwenden, auf beiden habe ich logrotate installiert und die Einstellungen für logrotate.conf und logrotate.d/nginx sind beide gleich.
Beide speichern Protokolle in /home/websitename/.pm2/logs
Im ersten Webserver sind die Protokolle wie folgt strukturiert:
-rw-r--r--. 1 website website 11M Feb 27 13:21 example.com-out-2__2018-02-27_13-21-12.log
-rw-r--r--. 1 website website 11M Feb 27 13:46 example.com-out-2__2018-02-27_13-46-12.log
-rw-r--r--. 1 website website 11M Feb 27 14:00 example.com-out-2__2018-02-27_14-00-12.log
-rw-r--r--. 1 website website 11M Feb 27 14:19 example.com-out-2__2018-02-27_14-19-42.log
-rw-r--r--. 1 website website 11M Feb 27 14:42 example.com-out-2__2018-02-27_14-42-42.log
-rw-r--r--. 1 website website 11M Feb 27 15:09 example.com-out-2__2018-02-27_15-09-12.log
-rw-r--r--. 1 website website 11M Feb 27 15:36 example.com-out-2__2018-02-27_15-36-12.log
-rw-r--r--. 1 website website 11M Feb 27 16:00 example.com-out-2__2018-02-27_16-00-42.log
-rw-r--r--. 1 website website 11M Feb 27 16:24 example.com-out-2__2018-02-27_16-24-42.log
-rw-r--r--. 1 website website 11M Feb 27 16:48 example.com-out-2__2018-02-27_16-48-12.log
Wie Sie sehen, haben sie alle eine bestimmte Dateigröße, ein Vielfaches an Protokolldateien pro Tag usw.
Auf dem zweiten Webserver erfolgt die Protokollierung nur in einer einzigen großen Datei. Diese befindet sich am gleichen Speicherort wie /home/websitename/.pm2/logs.
-rw-rw-r--. 1 website website 19G Mar 9 14:04 example.com-error-0.log
-rw-rw-r--. 1 website website 7.2G Mar 7 06:09 example.com-error-1.log
-rw-rw-r--. 1 website website 5.2G Mar 9 14:04 example.com-out-0.log
-rw-rw-r--. 1 website website 1.2G Feb 23 23:15 example.com-out-1.log
ICHdenkender Grund für die Fehlerprotokolle 0 und 1 lag darin, dass der Server neu gestartet wurde und ein neues Protokoll gestartet wurde.
Die Frage ist nun, wie ich die Protokollierung so ändere, dass sie kleinere Dateien erstellt und nicht diese monströse „Alles in einer“ Datei vom Typ „19 GB“?
Ich habe das Gefühl, ich habe jede Einstellung durchgesehen und komme trotzdem nicht dahinter! Ich „denke“, dass logrotate funktioniert, da ich den aktuellen Tagesstatus erhalte, wenn ich logrotate.status überprüfe.
/etc/logrotate.conf:
Dies ist die Datei /etc/logrotate.conf:
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}
Datei /etc/logrotate.d/nginx:
/var/log/nginx/*.log {
daily
missingok
rotate 4
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}