ubuntu – nginx登录到access.log.1而不是access.log,logrotate失败了吗?

我有一个Nginx实例,设置为记录访问/var/log/Nginx/access.log和错误到/var/log/Nginx/errors.log,但只要logrotate每周运行,文件就会移动到* .log.1和新的* .log文件被创建,但是Nginx继续记录到log.1文件而不是新的.log文件(并且没有任何内容被gzip压缩).我第一次注意到这一点,自从日志轮换起已经过了3周,日志变得越来越大.运行kill -HUP`cat / run / Nginx.pid`使得Nginx再次开始记录到正确的位置,但问题在下周再次开始.

更令人沮丧的更重要的原因是我将日志设置为通过rsyslog上传到Loggly,当Nginx停止记录到我有rsyslog轮询的文件时,然后停止上传并且我没有收到任何警报.

我怀疑它与重新启动Nginx或重新加载配置有关,因为它直到我进行配置更改并以我认为正常的方式重新加载配置时才启动.我尝试运行kill -USR1`cat / run / Nginx.pid`但是文件继续被记录到错误的位置,直到我运行kill -HUP`cat / run / Nginx.pid`,我已经知道它没有解决问题.

知道发生了什么事吗?我承认我不是logrotate或Nginx管理方面的专家,但我的谷歌在这一方面让我失望.

这是我的Nginx logrotate脚本,让我知道你还有什么想看的.除了定义输出位置之外,Nginx.conf在日志记录方面没有什么特别之处.

/var/log/Nginx/*.log {
        weekly
        missingok
        rotate 52
        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
                [ -s /run/Nginx.pid ] && kill -USR1 `cat /run/Nginx.pid`
        endscript
}

编辑:我想我发现了这个问题.以下是在调试模式下运行logrotate的输出

$sudo logrotate --force -d /etc/logrotate.d/Nginx
reading config file /etc/logrotate.d/Nginx

Handling 1 logs

rotating pattern: /var/log/Nginx/*.log  forced from command line (52 rotations)
empty log files are not rotated,old logs are removed
considering log /var/log/Nginx/access.log
  log needs rotating
considering log /var/log/Nginx/error.log
  log needs rotating
rotating log /var/log/Nginx/access.log,log->rotateCount is 52
dateext suffix '-20141023'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
prevIoUs log /var/log/Nginx/access.log.1 does not exist
renaming /var/log/Nginx/access.log.52.gz to /var/log/Nginx/access.log.53.gz (rotatecount 52,logstart 1,i 52),renaming /var/log/Nginx/access.log.51.gz to /var/log/Nginx/access.log.52.gz (rotatecount 52,i 51),renaming /var/log/Nginx/access.log.50.gz to /var/log/Nginx/access.log.51.gz (rotatecount 52,i 50),renaming /var/log/Nginx/access.log.49.gz to /var/log/Nginx/access.log.50.gz (rotatecount 52,i 49),renaming /var/log/Nginx/access.log.48.gz to /var/log/Nginx/access.log.49.gz (rotatecount 52,i 48),renaming /var/log/Nginx/access.log.47.gz to /var/log/Nginx/access.log.48.gz (rotatecount 52,i 47),renaming /var/log/Nginx/access.log.46.gz to /var/log/Nginx/access.log.47.gz (rotatecount 52,i 46),renaming /var/log/Nginx/access.log.45.gz to /var/log/Nginx/access.log.46.gz (rotatecount 52,i 45),renaming /var/log/Nginx/access.log.44.gz to /var/log/Nginx/access.log.45.gz (rotatecount 52,i 44),renaming /var/log/Nginx/access.log.43.gz to /var/log/Nginx/access.log.44.gz (rotatecount 52,i 43),renaming /var/log/Nginx/access.log.42.gz to /var/log/Nginx/access.log.43.gz (rotatecount 52,i 42),renaming /var/log/Nginx/access.log.41.gz to /var/log/Nginx/access.log.42.gz (rotatecount 52,i 41),renaming /var/log/Nginx/access.log.40.gz to /var/log/Nginx/access.log.41.gz (rotatecount 52,i 40),renaming /var/log/Nginx/access.log.39.gz to /var/log/Nginx/access.log.40.gz (rotatecount 52,i 39),renaming /var/log/Nginx/access.log.38.gz to /var/log/Nginx/access.log.39.gz (rotatecount 52,i 38),renaming /var/log/Nginx/access.log.37.gz to /var/log/Nginx/access.log.38.gz (rotatecount 52,i 37),renaming /var/log/Nginx/access.log.36.gz to /var/log/Nginx/access.log.37.gz (rotatecount 52,i 36),renaming /var/log/Nginx/access.log.35.gz to /var/log/Nginx/access.log.36.gz (rotatecount 52,i 35),renaming /var/log/Nginx/access.log.34.gz to /var/log/Nginx/access.log.35.gz (rotatecount 52,i 34),renaming /var/log/Nginx/access.log.33.gz to /var/log/Nginx/access.log.34.gz (rotatecount 52,i 33),renaming /var/log/Nginx/access.log.32.gz to /var/log/Nginx/access.log.33.gz (rotatecount 52,i 32),renaming /var/log/Nginx/access.log.31.gz to /var/log/Nginx/access.log.32.gz (rotatecount 52,i 31),renaming /var/log/Nginx/access.log.30.gz to /var/log/Nginx/access.log.31.gz (rotatecount 52,i 30),renaming /var/log/Nginx/access.log.29.gz to /var/log/Nginx/access.log.30.gz (rotatecount 52,i 29),renaming /var/log/Nginx/access.log.28.gz to /var/log/Nginx/access.log.29.gz (rotatecount 52,i 28),renaming /var/log/Nginx/access.log.27.gz to /var/log/Nginx/access.log.28.gz (rotatecount 52,i 27),renaming /var/log/Nginx/access.log.26.gz to /var/log/Nginx/access.log.27.gz (rotatecount 52,i 26),renaming /var/log/Nginx/access.log.25.gz to /var/log/Nginx/access.log.26.gz (rotatecount 52,i 25),renaming /var/log/Nginx/access.log.24.gz to /var/log/Nginx/access.log.25.gz (rotatecount 52,i 24),renaming /var/log/Nginx/access.log.23.gz to /var/log/Nginx/access.log.24.gz (rotatecount 52,i 23),renaming /var/log/Nginx/access.log.22.gz to /var/log/Nginx/access.log.23.gz (rotatecount 52,i 22),renaming /var/log/Nginx/access.log.21.gz to /var/log/Nginx/access.log.22.gz (rotatecount 52,i 21),renaming /var/log/Nginx/access.log.20.gz to /var/log/Nginx/access.log.21.gz (rotatecount 52,i 20),renaming /var/log/Nginx/access.log.19.gz to /var/log/Nginx/access.log.20.gz (rotatecount 52,i 19),renaming /var/log/Nginx/access.log.18.gz to /var/log/Nginx/access.log.19.gz (rotatecount 52,i 18),renaming /var/log/Nginx/access.log.17.gz to /var/log/Nginx/access.log.18.gz (rotatecount 52,i 17),renaming /var/log/Nginx/access.log.16.gz to /var/log/Nginx/access.log.17.gz (rotatecount 52,i 16),renaming /var/log/Nginx/access.log.15.gz to /var/log/Nginx/access.log.16.gz (rotatecount 52,i 15),renaming /var/log/Nginx/access.log.14.gz to /var/log/Nginx/access.log.15.gz (rotatecount 52,i 14),renaming /var/log/Nginx/access.log.13.gz to /var/log/Nginx/access.log.14.gz (rotatecount 52,i 13),renaming /var/log/Nginx/access.log.12.gz to /var/log/Nginx/access.log.13.gz (rotatecount 52,i 12),renaming /var/log/Nginx/access.log.11.gz to /var/log/Nginx/access.log.12.gz (rotatecount 52,i 11),renaming /var/log/Nginx/access.log.10.gz to /var/log/Nginx/access.log.11.gz (rotatecount 52,i 10),renaming /var/log/Nginx/access.log.9.gz to /var/log/Nginx/access.log.10.gz (rotatecount 52,i 9),renaming /var/log/Nginx/access.log.8.gz to /var/log/Nginx/access.log.9.gz (rotatecount 52,i 8),renaming /var/log/Nginx/access.log.7.gz to /var/log/Nginx/access.log.8.gz (rotatecount 52,i 7),renaming /var/log/Nginx/access.log.6.gz to /var/log/Nginx/access.log.7.gz (rotatecount 52,i 6),renaming /var/log/Nginx/access.log.5.gz to /var/log/Nginx/access.log.6.gz (rotatecount 52,i 5),renaming /var/log/Nginx/access.log.4.gz to /var/log/Nginx/access.log.5.gz (rotatecount 52,i 4),renaming /var/log/Nginx/access.log.3.gz to /var/log/Nginx/access.log.4.gz (rotatecount 52,i 3),renaming /var/log/Nginx/access.log.2.gz to /var/log/Nginx/access.log.3.gz (rotatecount 52,i 2),renaming /var/log/Nginx/access.log.1.gz to /var/log/Nginx/access.log.2.gz (rotatecount 52,i 1),renaming /var/log/Nginx/access.log.0.gz to /var/log/Nginx/access.log.1.gz (rotatecount 52,i 0),rotating log /var/log/Nginx/error.log,log->rotateCount is 52
dateext suffix '-20141023'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
prevIoUs log /var/log/Nginx/error.log.1 does not exist
renaming /var/log/Nginx/error.log.52.gz to /var/log/Nginx/error.log.53.gz (rotatecount 52,renaming /var/log/Nginx/error.log.51.gz to /var/log/Nginx/error.log.52.gz (rotatecount 52,renaming /var/log/Nginx/error.log.50.gz to /var/log/Nginx/error.log.51.gz (rotatecount 52,renaming /var/log/Nginx/error.log.49.gz to /var/log/Nginx/error.log.50.gz (rotatecount 52,renaming /var/log/Nginx/error.log.48.gz to /var/log/Nginx/error.log.49.gz (rotatecount 52,renaming /var/log/Nginx/error.log.47.gz to /var/log/Nginx/error.log.48.gz (rotatecount 52,renaming /var/log/Nginx/error.log.46.gz to /var/log/Nginx/error.log.47.gz (rotatecount 52,renaming /var/log/Nginx/error.log.45.gz to /var/log/Nginx/error.log.46.gz (rotatecount 52,renaming /var/log/Nginx/error.log.44.gz to /var/log/Nginx/error.log.45.gz (rotatecount 52,renaming /var/log/Nginx/error.log.43.gz to /var/log/Nginx/error.log.44.gz (rotatecount 52,renaming /var/log/Nginx/error.log.42.gz to /var/log/Nginx/error.log.43.gz (rotatecount 52,renaming /var/log/Nginx/error.log.41.gz to /var/log/Nginx/error.log.42.gz (rotatecount 52,renaming /var/log/Nginx/error.log.40.gz to /var/log/Nginx/error.log.41.gz (rotatecount 52,renaming /var/log/Nginx/error.log.39.gz to /var/log/Nginx/error.log.40.gz (rotatecount 52,renaming /var/log/Nginx/error.log.38.gz to /var/log/Nginx/error.log.39.gz (rotatecount 52,renaming /var/log/Nginx/error.log.37.gz to /var/log/Nginx/error.log.38.gz (rotatecount 52,renaming /var/log/Nginx/error.log.36.gz to /var/log/Nginx/error.log.37.gz (rotatecount 52,renaming /var/log/Nginx/error.log.35.gz to /var/log/Nginx/error.log.36.gz (rotatecount 52,renaming /var/log/Nginx/error.log.34.gz to /var/log/Nginx/error.log.35.gz (rotatecount 52,renaming /var/log/Nginx/error.log.33.gz to /var/log/Nginx/error.log.34.gz (rotatecount 52,renaming /var/log/Nginx/error.log.32.gz to /var/log/Nginx/error.log.33.gz (rotatecount 52,renaming /var/log/Nginx/error.log.31.gz to /var/log/Nginx/error.log.32.gz (rotatecount 52,renaming /var/log/Nginx/error.log.30.gz to /var/log/Nginx/error.log.31.gz (rotatecount 52,renaming /var/log/Nginx/error.log.29.gz to /var/log/Nginx/error.log.30.gz (rotatecount 52,renaming /var/log/Nginx/error.log.28.gz to /var/log/Nginx/error.log.29.gz (rotatecount 52,renaming /var/log/Nginx/error.log.27.gz to /var/log/Nginx/error.log.28.gz (rotatecount 52,renaming /var/log/Nginx/error.log.26.gz to /var/log/Nginx/error.log.27.gz (rotatecount 52,renaming /var/log/Nginx/error.log.25.gz to /var/log/Nginx/error.log.26.gz (rotatecount 52,renaming /var/log/Nginx/error.log.24.gz to /var/log/Nginx/error.log.25.gz (rotatecount 52,renaming /var/log/Nginx/error.log.23.gz to /var/log/Nginx/error.log.24.gz (rotatecount 52,renaming /var/log/Nginx/error.log.22.gz to /var/log/Nginx/error.log.23.gz (rotatecount 52,renaming /var/log/Nginx/error.log.21.gz to /var/log/Nginx/error.log.22.gz (rotatecount 52,renaming /var/log/Nginx/error.log.20.gz to /var/log/Nginx/error.log.21.gz (rotatecount 52,renaming /var/log/Nginx/error.log.19.gz to /var/log/Nginx/error.log.20.gz (rotatecount 52,renaming /var/log/Nginx/error.log.18.gz to /var/log/Nginx/error.log.19.gz (rotatecount 52,renaming /var/log/Nginx/error.log.17.gz to /var/log/Nginx/error.log.18.gz (rotatecount 52,renaming /var/log/Nginx/error.log.16.gz to /var/log/Nginx/error.log.17.gz (rotatecount 52,renaming /var/log/Nginx/error.log.15.gz to /var/log/Nginx/error.log.16.gz (rotatecount 52,renaming /var/log/Nginx/error.log.14.gz to /var/log/Nginx/error.log.15.gz (rotatecount 52,renaming /var/log/Nginx/error.log.13.gz to /var/log/Nginx/error.log.14.gz (rotatecount 52,renaming /var/log/Nginx/error.log.12.gz to /var/log/Nginx/error.log.13.gz (rotatecount 52,renaming /var/log/Nginx/error.log.11.gz to /var/log/Nginx/error.log.12.gz (rotatecount 52,renaming /var/log/Nginx/error.log.10.gz to /var/log/Nginx/error.log.11.gz (rotatecount 52,renaming /var/log/Nginx/error.log.9.gz to /var/log/Nginx/error.log.10.gz (rotatecount 52,renaming /var/log/Nginx/error.log.8.gz to /var/log/Nginx/error.log.9.gz (rotatecount 52,renaming /var/log/Nginx/error.log.7.gz to /var/log/Nginx/error.log.8.gz (rotatecount 52,renaming /var/log/Nginx/error.log.6.gz to /var/log/Nginx/error.log.7.gz (rotatecount 52,renaming /var/log/Nginx/error.log.5.gz to /var/log/Nginx/error.log.6.gz (rotatecount 52,renaming /var/log/Nginx/error.log.4.gz to /var/log/Nginx/error.log.5.gz (rotatecount 52,renaming /var/log/Nginx/error.log.3.gz to /var/log/Nginx/error.log.4.gz (rotatecount 52,renaming /var/log/Nginx/error.log.2.gz to /var/log/Nginx/error.log.3.gz (rotatecount 52,renaming /var/log/Nginx/error.log.1.gz to /var/log/Nginx/error.log.2.gz (rotatecount 52,renaming /var/log/Nginx/error.log.0.gz to /var/log/Nginx/error.log.1.gz (rotatecount 52,running prerotate script
running script with arg /var/log/Nginx/*.log : "
        if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
            run-parts /etc/logrotate.d/httpd-prerotate; \
        fi \
"
renaming /var/log/Nginx/access.log to /var/log/Nginx/access.log.1
creating new /var/log/Nginx/access.log mode = 0640 uid = 33 gid = 4
renaming /var/log/Nginx/error.log to /var/log/Nginx/error.log.1
creating new /var/log/Nginx/error.log mode = 0640 uid = 33 gid = 4
running postrotate script
running script with arg /var/log/Nginx/*.log : "
        [ -s /run/Nginx.pid ] && kill -USR1 `cat /run/Nginx.pid`
"
removing old log /var/log/Nginx/access.log.53.gz
error: error opening /var/log/Nginx/access.log.53.gz: No such file or directory

但是,只有大约* .log.8.gz的归档,因此logrotate在尝试与/var/log/Nginx/access.log.53.gz进行交互时失败.为什么它试图这样做呢?我想我需要触摸假文件来填写它?这似乎错了.

呸,经过长时间的挖掘,我终于找到了答案.在我的情况下,问题不在于logrotate失败了.该错误消息很好,并没有实际停止logrotate.问题是Nginx在从kill接收到-USR1信号时没有释放日志文件文件句柄.简而言之,它没有重新加载日志文件的原因是因为/ var / log / Nginx文件夹不是由与Nginx工作进程相同的用户所拥有(由www-data拥有,在web下运行).我不知道这是怎么改变的(也许是因为这个服务器最近被重新制作),但是改变与Nginx工作进程相同的用户所拥有的文件夹(以及修复logrotate文件以使新日志成为web)修复了这个问题.

相关文章

目录前言一、创建Hadoop用户二、更新apt和安装Vim编辑器三、...
原文连接:https://www.cnblogs.com/yasmi/p/5192694.html ...
电脑重启后,打开VirtualBox,发现一直用的虚拟机莫名的消失...
参见:https://blog.csdn.net/weixin_38883338/article/deta...
Ubuntu 18.04 LTS 已切换到 Netplan 来配置网络接口。Netpla...
介绍每个 Web 服务都可以通过特定的 URL 在 Internet 上访问...