Поиск по сайту:

Как управлять файлами журналов с помощью 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. Теперь измените параметры конфигурации в соответствии с вашими требованиями.