Как управлять файлами журналов с помощью Logrotate в Ubuntu 12.10
О Логротейт
Logrotate — это утилита/инструмент, которая управляет такими действиями, как автоматическая ротация, удаление и сжатие файлов журналов в системе. Это отличный инструмент для управления журналами и экономии драгоценного места на диске. Имея простой, но мощный файл конфигурации, можно контролировать различные параметры логротации. Это дает полный контроль над автоматическим управлением журналами и не требует ручного вмешательства.
Предпосылки
В качестве предварительного условия мы предполагаем, что вы ознакомились со статьей о том, как настроить дроплет или VPS. Если нет, вы можете найти статью здесь. Для этого руководства требуется, чтобы у вас был запущен и работал VPS, и вы вошли в него.
Настройка Logrotate
Шаг 1. Обновите систему и системные пакеты
Выполните следующую команду, чтобы обновить списки пакетов из apt-get и получить информацию о новейших версиях пакетов и их зависимостях.
sudo apt-get update
Шаг 2 — Установите Logrotate
Если logrotate еще не установлен на вашем VPS, установите его сейчас через apt-get.
sudo apt-get install logrotate
Шаг 3 — Подтверждение
Чтобы убедиться, что logrotate успешно установлен, запустите его в командной строке.
logrotate
Поскольку утилита logrotate основана на файлах конфигурации, приведенная выше команда не будет выполнять ротацию файлов и покажет вам краткий обзор использования и доступных параметров переключения.
Шаг 4 — Настройте Logrotate
Конфигурации и параметры по умолчанию для утилиты logrotate присутствуют в:
/etc/logrotate.conf
Некоторые из важных параметров конфигурации: интервал ротации, размер файла журнала, количество ротаций и сжатие.
Информация файла журнала для конкретного приложения (для переопределения значений по умолчанию) хранится по адресу:
/etc/logrotate.d/
Мы рассмотрим несколько примеров, чтобы лучше понять концепцию.
Шаг 5 — Пример
Примером настройки конфигурации приложения может быть dpkg (система управления пакетами Debian), которая хранится в /etc/logrotate.d/dpkg. Одна из записей в этом файле будет:
/var/log/dpkg.log { monthly rotate 12 compress delaycompress missingok notifempty create 644 root root }
Это означает, что:
- ротация журнала для dpkg отслеживает файл /var/log/dpkg.log и делает это ежемесячно — это интервал ротации.
- rotate 12 означает, что будут храниться журналы за 12 дней.
- файлы журналов можно сжимать с использованием формата gzip, указав сжатие и delaycompress, чтобы отложить процесс сжатия до следующей ротации журнала. delaycompress будет работать, только если указана опция сжатия.
- missingok не останавливается при любой ошибке и продолжает работу со следующим файлом журнала.
- notifempty позволяет избежать ротации журналов, если файл журнала пуст.
- create
создает новый пустой файл с указанными свойствами после ротации журнала.
Хотя размер отсутствует в приведенном выше примере, он также является важным параметром, если вы хотите контролировать размер журналов, растущих в системе.
Параметр конфигурации около 100 МБ будет выглядеть так:
size 100M
Обратите внимание, что если заданы и размер, и интервал вращения, размер имеет более высокий приоритет. То есть, если файл конфигурации имеет следующие настройки:
monthly size 100M
затем журналы чередуются, как только размер файла достигает 100 МБ, и для этого не нужно ждать месячного цикла.
Шаг 6 — Задание Cron
Вы также можете установить логротацию как cron, чтобы избежать ручного процесса, и об этом позаботятся автоматически. При указании записи в /etc/cron.daily/logrotate ротация запускается ежедневно.
Шаг 7 — Проверка статуса и проверка
Чтобы проверить, действительно ли тот или иной журнал ротируется, а также проверить дату и время последней ротации, проверьте файл /var/lib/logrotate/status. Это аккуратно отформатированный файл, который содержит имя файла журнала и дату последней ротации.
cat /var/lib/logrotate/status
Несколько записей из этого файла, например:
"/var/log/lpr.log" 2013-4-11 "/var/log/dpkg.log" 2013-4-11 "/var/log/pm-suspend.log" 2013-4-11 "/var/log/syslog" 2013-4-11 "/var/log/mail.info" 2013-4-11 "/var/log/daemon.log" 2013-4-11 "/var/log/apport.log" 2013-4-11
Поздравляем! В вашей системе установлен logrotate. Теперь измените параметры конфигурации в соответствии с вашими требованиями.