passenger
passenger copied to clipboard
Nginx logrotation causes Passenger to log to /var/log/nginx/error.log.1
When Nginx rotates the log files, Passenger logs to the old file /var/log/nginx/error.log.1, instead of /var/log/nginx/error.log
As per the docs one-off fix is to run:
passenger-config reopen-logs
however I assume the issue will recur each time Nginx rotates the logs.
Is there some way to automate this process so that Passenger will always write to the new log after rotation?
Passenger standalone version: 6.0.4 Instance: zB0Y2IrX (nginx/1.14.0 Phusion_Passenger/6.0.4) OS: Ubuntu 18.04 Nginx: nginx/1.14.0 App: Meteor 1.8.1
If you are using logrotate to rotate nginx logs you can edit the config to include passenger:
postrotate
# nginx stuff here ...
passenger-config reopen-logs >/dev/null 2>&1 || true
endscript
Thanks. I just checked the config and that code is already present in /etc/logrotate.d/nginx:
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
passenger-config reopen-logs >/dev/null 2>&1 || true
endscript
}
Passenger must have added it automatically, which is the kind of sensible behaviour I'd expect from Passenger :) But it seems that it didn't work, because of the issue I saw after logrotate happened?
Just to check it's set up correctly, I ran:
sudo logrotate /etc/logrotate.conf --debug
and this reported that the nginx script ran but that it did not need to rotate any logs, so didn't run the postrotate.
nginx log rotation on CentOS 7.7 and 7.8 makes passenger stop logging when logrotate is triggered everyday.
I just added passenger-config reopen-logs >/dev/null 2>&1 || true to postrotate. I'm testing now if everything is going to work as expected.
Observing the same problem with version 6.0.6-1~bionic1
% sudo passenger-config reopen-logs
Reopening logs for Phusion Passenger watchdog
Reopening logs for Phusion Passenger core (through reinheritance)
All done
% sudo lsof -n | grep log.1 |grep ^Passenger
Passenger 21864 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21864 20113 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21864 21871 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21864 21881 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21864 21886 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21864 21887 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 1579 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 1606 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 4149 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 4176 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 18679 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 18707 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 20115 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 21875 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 21876 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 21877 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 21878 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 21880 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 21882 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 21884 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 21885 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 21891 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 21892 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 21895 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 21896 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 21897 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 22449 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 22450 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 22451 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 22452 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 22566 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 22593 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 28679 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 28706 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 30261 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Passenger 21872 30288 root 1w REG 252,1 30615678996 920695 /var/log/nginx/error.log.1
Same problem in debian buster. libnginx-mod-http-passenger 1:6.0.14-1~buster1
After rotating nginx logs but not rotating Passenger
root@swapp-1:~# lsof +D /var/log/nginx/ | grep ^Passenger
Passenger 14773 root 1w REG 254,58 139447 6877 /var/log/nginx/error.log-20220701
Passenger 14773 root 2w REG 254,58 139447 6877 /var/log/nginx/error.log-20220701
Passenger 14776 root 1w REG 254,58 139447 6877 /var/log/nginx/error.log-20220701
Passenger 14776 root 2w REG 254,58 139447 6877 /var/log/nginx/error.log-20220701
root@swapp-1:~#
File descriptor #1 still points to error.log-20220701
root@swapp-1:~# passenger-config reopen-logs
Reopening logs for Phusion Passenger(R) watchdog
Reopening logs for Phusion Passenger(R) core (through reinheritance)
All done
root@swapp-1:~# lsof +D /var/log/nginx/ | grep ^Passenger
Passenger 14773 root 1w REG 254,58 139447 6877 /var/log/nginx/error.log-20220701
Passenger 14773 root 2w REG 254,58 196 6694 /var/log/nginx/error.log
Passenger 14773 root 27w REG 254,58 196 6694 /var/log/nginx/error.log
Passenger 14776 root 1w REG 254,58 139447 6877 /var/log/nginx/error.log-20220701
Passenger 14776 root 2w REG 254,58 196 6694 /var/log/nginx/error.log
Passenger 14776 root 331w REG 254,58 196 6694 /var/log/nginx/error.log
root@swapp-1:~#
One more rotating open two more file descriptor but don't close fd #1.
root@swapp-1:~# passenger-config reopen-logs
Reopening logs for Phusion Passenger(R) watchdog
Reopening logs for Phusion Passenger(R) core (through reinheritance)
All done
root@swapp-1:~# lsof +D /var/log/nginx/ | grep ^Passenger
Passenger 14773 root 1w REG 254,58 139447 6877 /var/log/nginx/error.log-20220701
Passenger 14773 root 2w REG 254,58 392 6694 /var/log/nginx/error.log
Passenger 14773 root 27w REG 254,58 392 6694 /var/log/nginx/error.log
Passenger 14773 root 28w REG 254,58 392 6694 /var/log/nginx/error.log
Passenger 14776 root 1w REG 254,58 139447 6877 /var/log/nginx/error.log-20220701
Passenger 14776 root 2w REG 254,58 392 6694 /var/log/nginx/error.log
Passenger 14776 root 324w REG 254,58 392 6694 /var/log/nginx/error.log
Passenger 14776 root 331w REG 254,58 392 6694 /var/log/nginx/error.log
root@swapp-1:~#