Nginx/Openresty продолжает создавать пустой файл журнала и записывает в предыдущий, в результате чего журналы никогда не меняются.

Мое приложение Django работает на сервере nginx/openresty. Пользователь, запускающий сервер,root:rootно обычно приложение принадлежитwebapp:webapp. Это означает, что журналы создаются и записываютсяroot.

Проблема в том, что журналы не ротируются, потому что создается пустой журнал, и вместо записи сервер продолжает писать в предыдущий:

      webapp@webapphost:~$ ls -lh logs/openresty/
total 6.7G
-rw-rw-rw- 1 root root    0 Jan 30 13:24 access.log
-rw-rw-rw- 1 root root 6.4G Mar 17 11:34 access.log.1
-rw-rw-rw- 1 root root 135M Dec 21 20:29 access.log.12.gz
-rw-rw-rw- 1 root root 146M Nov 16 12:39 access.log.15.gz
-rw-rw-rw- 1 root root 8.4K Jan 29 17:34 access.log.2.gz
-rw-rw-rw- 1 root root 3.0K Jan 19 10:24 access.log.4.gz
-rw-rw-rw- 1 root root 216K Jan 18 10:54 access.log.6.gz
-rw-rw-rw- 1 root root  58K Jan 12 10:58 access.log.8.gz
-rw-rw-rw- 1 root root 1.5M Mar 17 06:16 error.log
-rw-rw-rw- 1 root root 7.4K Jan 29 16:38 error.log.1.gz
-rw-rw-rw- 1 root root 1.2K Jan 19 10:22 error.log.2.gz
-rw-rw-rw- 1 root root 4.5K Jan 18 08:31 error.log.3.gz
-rw-rw-rw- 1 root root 1.6K Jan 12 08:55 error.log.4.gz
-rw-rw-rw- 1 root root  12K Jul 13  2020 error.log.7.gz

webapp@webapphost:~$ ls -lh /var/log/openresty/
total 352M
-rw-rw-rw- 1 root root    0 Feb 16 15:24 access.log
-rw-rw-rw- 1 root root 277M Mar 17 11:37 access.log.1
-rw-rw-rw- 1 root root  13M Oct 29 19:24 access.log.11.gz
-rw-rw-rw- 1 root root  38M Oct  6 11:19 access.log.12.gz
-rw-rw-rw- 1 root root 5.1M Jul 23  2020 access.log.13.gz
-rw-rw-rw- 1 root root 8.0K Jul 13  2020 access.log.14.gz
-rw-rw-rw- 1 root root 8.2M Jul 13  2020 access.log.15.gz
-rw-rw-rw- 1 root root 1004 Jan 29 17:34 access.log.2.gz
-rw-rw-rw- 1 root root 6.4M Jan 29 17:34 access.log.3.gz
-rw-rw-rw- 1 root root 599K Jan 19 10:24 access.log.4.gz
-rw-rw-rw- 1 root root  11K Jan 18 10:54 access.log.5.gz
-rw-rw-rw- 1 root root 3.7M Jan 18 10:19 access.log.6.gz
-rw-rw-rw- 1 root root 514K Jan 12 10:58 access.log.7.gz
-rw-rw-rw- 1 root root  50K Mar 17 06:16 error.log
-rw-rw-rw- 1 root root 2.7K Jan 29 10:24 error.log.1.gz
-rw-rw-rw- 1 root root 1.6K Jan 17 10:58 error.log.2.gz

Как вы можете видеть,*.log* files as empty, but *.log.1` продолжает бесконечно расти.

Моя конфигурация logrotate следующая:

      webapp@webapphost:~$ cat /etc/logrotate.d/openresty
/home/webapp/logs/openresty/*.log /var/log/openresty/*.log {
        su root root
        size 100M
        missingok
        rotate 14
        compress
        nodelaycompress
        notifempty
        create 0666 root root
        sharedscripts
        prerotate
        if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
                run-parts /etc/logrotate.d/httpd-prerotate; \
        fi \
        endscript
        postrotate
                invoke-rc.d openresty rotate >/dev/null 2>&1
                service openresty reload >/dev/null 2>&1
        endscript
}

Когдаlogrotateничего не происходит, потому что "журнал не нуждается в ротации", так как он пуст:

      webapp@webapphost:~$ sudo logrotate -d /etc/logrotate.d/openresty
reading config file /etc/logrotate.d/openresty

Handling 1 logs

rotating pattern: /home/webapp/logs/openresty/*.log /var/log/openresty/*.log  104857600 bytes (14 rotations)
empty log files are not rotated, old logs are removed
considering log /home/webapp/logs/openresty/access.log
  log does not need rotating
considering log /home/webapp/logs/openresty/error.log
  log does not need rotating
considering log /var/log/openresty/access.log
  log does not need rotating
considering log /var/log/openresty/error.log
  log does not need rotating
not running prerotate script, since no logs will be rotated
not running postrotate script, since no logs were rotated

Принудительное вращение с помощью-fтоже не работает.

Однако, если я сделаю следующее, принудительное вращение сработает:

      invoke-rc.d openresty rotate
sudo systemctl reload openresty
sudo logrotate -f /etc/logrotate.d/openresty

0 ответов

Другие вопросы по тегам