Инструменты пользователя

Инструменты сайта


logrotate

Различия

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

Ссылка на это сравнение

logrotate [2018/08/16 04:25] (текущий)
Строка 1: Строка 1:
 +====== logrotate Linux ======
 +~~Title: Описание и примеры настройки logrotate в Linux  ~~
 +{{htmlmetatags>​
 +metatag-description=(Logrotate позволяет в автоматическом режиме архивировать,​ удалять,​ очищать и отправлять на e-mail лог-файлы.)
 +}}
  
 +  * [[syslog.conf#​nastrojka_syslog_dlja_iptables|Настройка syslog, logrotate для iptables]].
 +**Logrotate** - приложение,​ разработанное для облегчения управления лог-файлами. Особенно Logrotate полезен там, где создается большое количество лог-файлов. Утилита позволяет в автоматическом режиме архивировать,​ удалять,​ очищать и отправлять на e-mail лог-файлы. Этот процесс обычно называется ротацией лог файлов.
 +
 +Logrotate может быть настроен на ежедневную,​ еженедельную или ежемесячную ротацию. Кроме того, можно задать размер файла, по достижении которого файл будет ротирован. Обычно logrotate выполняется в качестве каждодневного задания [[cron]].
 +
 +
 +===== Краткое описание файла настроек Logrotate =====
 +Описание того, каким образом Logrotate будет работать с тем или иным лог файлом находится в специальном конфигурационном файле. Как правило,​ они располагаются в директории /​etc/​logrotate.d/​. Например,​ файл конфигурации для apache2 выглядит следующим образом:​
 +
 +<​file>​
 +$ more /​etc/​logrotate.d/​apache2
 +/​var/​log/​apache2/​*.log {
 +        weekly ​             # ротация раз в неделю. Возможные варианты daily, weekly,
 +                            # monthly, size (например size=1M)
 +        missingok ​          # отсутствие файла не является ошибкой
 +        rotate 52           # сохраняется последние 52 ротированных файла
 +        compress ​           # сжимать ротируемый файл
 +        delaycompress ​      # сжимать предыдущий файл при следующей ротации ​
 +                            # (т.е. файл *.log.1 будет не сжат, а *.log.2 и далее сжатыми)
 +        notifempty ​         # не обрабатывать пустые файлы
 +        create 640 root adm # сразу после ротации создать пустой файл с заданными правами и пользователем
 +        sharedscripts ​      # крипты prerotate/​postrotate будут выполнены только один раз
 +                            # не зависимо от количества журналов,​ подходящих под заданный шаблон
 +        postrotate ​         # скрипт будет выполнен сразу после ротации
 +                if [ -f "`. /​etc/​apache2/​envvars ; echo ${APACHE_PID_FILE:​-/​var/​run/​apache2.pid}`"​ ]; then
 +                        /​etc/​init.d/​apache2 reload > /dev/null
 +                fi
 +        endscript
 +}
 +</​file>​
 +При этом, первая строка /​var/​log/​apache2/​*.log есть ничто иное, как шаблон обрабатываемых лог-файлов. Он означает,​ что указанная конфигурация ротации будет использоваться для всех файлов,​ находящихся в директории /​var/​log/​apache2/​ и имеющих расширение "​log"​.
 +
 +Допустимых директив в конфигурационном файле очень много (более 40). Подробнее о них можно узнать из man logrotate.
 +  * Директивы:​
 +  * **mail** - указывает куда отсылать ротированный файл
 +  * **mailfirst** - отсылать первую ротированную комию; **maillast** - отсылать последнюю ротированную копию
 +<​file>​
 +        postrotate
 +                reload rsyslog >/​dev/​null 2>&1 || true # for Debian
 +                invoke-rc.d rsyslog reload > /dev/null # for RHEL
 +        endscript
 +</​file>​
 +  * **copytruncate** - после создания копии, обрезать исходный файл журнала взамен перемещения старого файла журнала и создания нового. Это может найти применение в том случае,​ когда некоторой программе нельзя указать закрыть её журнал,​ и таким образом можно постоянно продолжать запись (добавление) в существующий файл журнала. Примите во внимание,​ что хотя между копированием файла и его обрезанием очень маленький промежуток времени,​ некоторая часть журналируемых данных может быть потеряна. При использовании этого параметра,​ не имеет силы директива create, так как старый файл журнала остаётся на своём месте.
 +
 +{{ ::​logrotate-sonfiguration.png?​nolink&​600 |}}
 +===== Основные опции Logrotate и тестирование =====
 +Как правило,​ после настройки конфигурационного файла появляется необходимость проверить работу logrotate для новых логов. Для этого есть возможность непосредственного запуска logrotate из командной строки. При этом допускаются следующие опции:
 +
 +  * -d. Включает режим отладки,​ а так же дублирует опцию -v. В режиме отладки никаких действий с логами не будет выполнено.
 +  * -f, --force. Заставляет logrotate выполнить ротацию логов. Бывает необходимо после добавления новых конфигурационных файлов или если старый лог файл был удалён вручную;​ таким образом будут созданы новые лог-файлы и журналирование будет корректно продолжено.
 +  * -m, --mail command. Указывает,​ какую команду использовать для отправки журналов по почте. Команда должна принимать 2 входных параметра:​ заголовок письма получателя письма. После этого команда должна прочитать сообщение со стандартного входа (STDIN) и отправить его получателю. Командой по умолчанию является /​usr/​bin/​mail -s
 +  * -s, --state statefile. Указывает на использование альтернативный файл состояния. Полезно в случаях,​ когда logrotate работает от имени разных пользователей для различных наборов лог-файлов. **Файл состояния:​ /​var/​lib/​logrotate/​status**
 +  * --usage. Выводит краткую инструкцию по использованию утилиты.
 +  * -v, --verbose. Вывод диагностических сообщений во время ротации.
 +
 +  * Для немедленного применения изменений нужно запустить команду:<​file>​
 +# logrotate /​etc/​logrotate.conf
 +</​file>​
 +  * Для проверки изменений нужно запустить команду (никаких действий с логами не будет выполнено):<​file>​
 +# logrotate -d /​etc/​logrotate.conf
 +</​file>​
 +====== Ссылки ======
 +  * [[http://​debianworld.ru/​articles/​rotaciya-logov-s-pomoshyu-logrotate-v-debian-ubuntu/​|Ротация логов с помощью logrotate в Debian / Ubuntu]]
 +  * [[http://​www.opennet.ru/​man.shtml?​topic=logrotate&​category=8&​russian=0|logrotate - обращение,​ сжатие,​ и отправление электронной почтой файлов системных сообщений]]
logrotate.txt · Последние изменения: 2018/08/16 04:25 (внешнее изменение)