Настройка ротации логов с Logrotate

Как настроить ротацию и сжатие логов с помощью logrotate
/ Системное администрирование Логирование

Конфигурация ротации логов с Logrotate: Настройка ротации и сжатие логов

Logrotate — это удобный инструмент для управления лог-файлами в Unix-подобных операционных системах. Он помогает автоматизировать процесс ротации, архивирования, удаления и сжатия логов, что особенно важно для поддержания системы в чистоте и предотвращения переполнения дискового пространства.

Основные возможности Logrotate:

  1. Ротация логов: Переименование текущего лог-файла и создание нового файла
  2. Сжатие логов: Автоматическое сжатие старых лог-файлов для экономии места на диске
  3. Удаление старых логов: Автоматическое удаление самого старого лог-файла по достижении заданного количества архивов
  4. Настройка интервала: Выбор интервала ротации (день, неделя, месяц и т.д.)
  5. Выполнение команд: Возможность выполнения скриптов и команд до и после ротации

Основные компоненты конфигурационного файла logrotate:

Директивы глобальных настроек:

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

   # Число архивов для хранения
   rotate 5
   # Сжатие архивов
   compress
   # Создание нового пустого файла после ротации
   create

Индивидуальные настройки для лог-файлов:

Конкретные файлы и их настройки указываются после глобальных директив. Конфигурация для каждого файла или группы файлов обособляется в фигурные скобки `{}`:

   /var/log/syslog {
       daily                 # Ротация логов ежедневно
       missingok             # Пропускать ротацию, если файл отсутствует
       rotate 7              # Хранить 7 архивных копий
       compress              # Сжимать архивы
       delaycompress         # Сжимать архив со следующей ротации
       notifempty            # Не ротировать пустые файлы
       create 0640 root adm  # Создавать файл с указанными правами и владельцем
       postrotate            # Команды для выполнения после ротации
           /usr/lib/rsyslog/rsyslog-rotate
       endscript
   }

Пример настроек для Apache log-файлов:

/var/log/apache2/*.log {
    weekly                  # Еженедельная ротация
    missingok               # Пропускать ротацию, если файл отсутствует
    rotate 12               # Хранить 12 архивных копий
    compress                # Сжимать архивы
    delaycompress           # Сжимать архив со следующей ротации
    notifempty              # Не ротировать пустые файлы
    create 0640 www-data www-data  # Создавать файл с указанными правами и владельцем
    sharedscripts           # Использовать общие скрипты ротации
    postrotate              # Команды для выполнения после ротации
        if [ -f /var/run/apache2.pid ]; then
            /etc/init.d/apache2 reload > /dev/null
        fi
    endscript
}

Команды и директивы:

  • daily, weekly, monthly, yearly: Интервалы ротации
  • rotate <число>: Число сохраняемых архивов
  • compress, nocompress: Включение и выключение сжатия
  • create <права> <владелец> <группа>: Создание нового файла с заданными правами и владельцем
  • missingok: Пропускать ротацию, если файл отсутствует
  • notifempty: Не ротировать пустые файлы
  • delaycompress: Отложить сжатие до следующей ротации
  • postrotate/endscript: Команды для выполнения после ротации

Порядок действий:

Редактирование конфигурационного файла:

- Открываем конфигурационный файл (`/etc/logrotate.conf` или отдельный файл в `/etc/logrotate.d/`).

Добавление новых правил:

- Добавляем секции с директивами для нужных лог-файлов с индивидуальными настройками.

Проверка конфигурации:

- Проверяем синтаксис конфигурационного файла командой `logrotate -d /etc/logrotate.conf`.

Запуск logrotate:

- Запускаем ротацию вручную для проверки работы: `logrotate -f /etc/logrotate.conf`.

Настройка ротации логов с помощью Logrotate помогает избежать проблем с заполнением дискового пространства и упрощает управление лог-файлами. Правильная конфигурация и регулярное тестирование работы logrotate гарантируют стабильную работу системного и прикладного софта.

Поиск