Поиск по сайту:
Если собираетесь кого-нибудь полюбить, научитесь сначала прощать (А.В. Вампилов).

Как бороться с огромными (и растущими) файлами журнала в Linux

28.09.2018
Как бороться с огромными (и растущими) файлами журнала в Linux

Если вы продолжительное время управляете сервером Linux, вы знакомы с проблемой файлов журналов. Иногда они могут быть достаточно сложными, чтобы даже найти их, а затем вы иногда сталкиваетесь с файлом размером в сотни МБ (или даже с ГБ). Поиск через это — боль, и они могут в конечном итоге даже начать съедать Ваше пространство для хранения.

В этой статье вы узнаете, как справиться с этой проблемой. Мы собираемся использовать встроенный пакет Linux для системных журналов, который уже существуют. Это означает, что вам не нужно устанавливать новые пакеты! Все, что вам нужно знать, — это добавить конфигурацию для собственных файлов журналов.

Как журналы Linux вращаются с помощью logrotate

Существует несколько файлов системных журналов в следующем месте:

/var/log/

 

На скриншоте ниже мы перечислим все файлы в этом каталоге и покажим размер файла в МБ:

Как бороться с огромными (и растущими) файлами журнала в Linux

Как вы можете видеть, есть много больших файлов журналов, которые проставлены с датой. Они генерируются по умолчанию «logrotate». Посмотрев на отметки времени, мы видим, что они генерируются раз в семь дней. Поэтому для каждого файла журнала здесь logrotate выполняет следующие действия:

  1. Переименовывает файл журнала с меткой времени
  2. Создает новый пустой файл журнала с тем же именем, что и раньше

Проверка конфигурации Logrotate по умолчанию

Logrotate проверяет следующий файл для его конфигурации:

/etc/logrotate.conf

 

В этом мы видим, что он получает всю важную информацию о:

  1. Как часто он должен вращать журналы
  2. Сколько резервных копий следует сохранить
  3. Какой суффикс он должен добавить к старым журналам
  4. Нужно ли им сжимать их или нет
  5. и т.д…

Вот скриншот файла конфигурации logrotate:

Как бороться с огромными (и растущими) файлами журнала в Linux

 

По умолчанию старые файлы журналов не сжимаются. Вы можете изменить это, просто раскомментируя директиву «compress», как показано выше.

Добавление файлов для logrotate

Как logrotate знает, с какими журналами работать? Файлы в этом каталоге:

/etc/logrotate.d

 

Например, в нашем журнале “secure”, который мы видели в первом скриншоте, мы можем выяснить, какой файл в файле logrotate.d содержит его с помощью простой команды grep, как подробно описано в нашем руководстве по grep для продвинутых пользователей:

grep -r secure /etc/logrotate.d

 

Снимок экрана ниже показывает, какой файл отвечает за журнал “secure”:

Как бороться с огромными (и растущими) файлами журнала в Linux

 

Открывая «syslog», мы видим, что он сообщает logrotate работать с несколькими файлами:

Как бороться с огромными (и растущими) файлами журнала в Linux

Все они расположены по пути /var/log/. Поэтому каждый файл содержит:

  1. Имена файлов журналов, которые он должен вращать
  2. Директивы, специфичные для этого конкретного файла
  3. При отсутствии директив будут использоваться значения по умолчанию от logrotate.conf

Создание собственного файла Logrotate для ваших журналов

Мы можем следовать приведенному выше шаблону, чтобы создать запись с logrotate, которая сообщает нам, что она обрабатывает наши собственные файлы таким же образом.

Получить владельца и группу для своего каталога

Чтобы убедиться, что все разрешения установлены, нам необходимо запустить logrotate с соответствующими разрешениями. Перейдите в каталог, содержащий файл (ы) журнала, который вы хотите обработать, и получите владельца, а также группу, используя эту команду:

ls -l -d

 

Например, каталог /var/log имеет владельца как «root», а также группу «root»:

Как бороться с огромными (и растущими) файлами журнала в Linux

Создание файла Logrotate с конфигурацией

Затем создайте новый файл в файле /etc/logrotate.d/ и вставьте в него следующую конфигурацию:

/var/log/newlogfile {

size 10M

compress

delaycompress

su root root

}

 

Замените /var/log/newlogfile на расположение собственного файла журнала. Кроме того, замените su root root владельцем и именем группы, которое вы получили на предыдущем шаге. Вот список директив logrotate, которые вы можете использовать. Директива «delaycompress» сообщает logrotate только для сжатия файлов с двумя версиями, старыми или более старыми. Таким образом, вы получаете быстрый и легкий доступ к последнему сжатому файлу журнала.

Вы также можете использовать следующие строки в блоке фигурных скобок для запуска скриптов до того и после, как ваши файлы журналов будут повернуты:

postrotate
// скрипты для ротации журналов
endscript

 

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

Спасибо!

Теперь редакторы в курсе.