📜 Как настроить ротацию логов NGINX

Ротируем логи Nginx

by itisgood

Когда мы запускаем веб-сервер NGINX, его файлы логов со временем могут стать очень большими.

К счастью, NGINX позволяет ротировать файлы логов, чтобы автоматически создавать новые файлы и архивировать старые.

В этой статье мы рассмотрим, как настроить ротацию журналов NGINX.

Что такое ротация логов?

Когда вы запускаете веб-сервер, его файлы системных журналов в со временем растут и становятся очень большими файлами, и поэтому ими которыми нужно управлять.

В результате у вас может закончиться место на сервере.

Это может повлиять на производительность приложений и увеличить технологические затраты.

Ротация логов позволяет автоматически создавать новые пустые файлы журнала, архивировать текущий файл логов и условно удалять старые архивы.

Как настроить ротацию логов NGINX

Ниже описаны шаги по настройке ротации журналов NGINX.

1. Установите logrotate

Утилита Logrotate позволяет автоматизировать процесс ротации.

Откройте терминал и выполните следующую команду для ее установки.

Ubuntu/Debian

$ sudo apt-get install logrotate

CentOS/Redhat/Fedora

#yum install logrotate -y

2. Настройка ротации логов NGINX

Logrotate предварительно настроен для работы с популярными веб-серверами, такими как NGINX/Apache.

Тем не менее, мы также можем настроить его вручную.

Глобальный файл конфигурации Logrotate находится по адресу /etc/logrotate.conf, но его можно переопределить, поместив файлы конфигурации для конкретного приложения или сайта в /etc/logrotate.d/.

Стандартный файл конфигурации для сервера NGINX находится в /etc/logrotate.d/nginx, который можно использовать в качестве шаблона для добавления других сайтов/приложений.

/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
                invoke-rc.d nginx rotate >/dev/null 2>&1
        endscript
}

Давайте рассмотрим их подробнее.

  • weekly – ротация логов раз в неделю
  • missingok – не выдавать ошибку, если файл логов отсутствует
  • rotate 52 – хранить 52 лог-файла, по одному на каждую неделю года. Он удалит старые файлы только после того, как сохранит годовое количество лог-файлов. Вы можете изменить этот параметр на rotate 4, чтобы хранить файлы журнала в течение 4 недель.
  • compress – сжимать старые файлы логов для экономии места
  • notifempty – убедиться, что logrotate записывает только в новые файлы.
  • create – создавать новый пустой файл журнала после каждой ротации
  • sharedscripts – logrotate будет запущен только один раз, независимо от того, сколько файлов журнала соответствует его шаблону
  • postrotate/prerotate – скрипт postrotate запускается после ротации журнала. скрипт prerotate запускается до ротации логов.

3. Управление logrotate

После установки Logrotate будет автоматически запускаться на вашем сервере.

Вам не нужно запускать службу при загрузке или настраивать для нее задания cron.

Все, что вам нужно сделать, это разместить конфигурационные файлы для каждого приложения в /etc/logrotate.d/, и logrotate автоматически позаботится о его лог-файлах за вас.

см. также:

 

You may also like

Leave a Comment