Въртящи се дневници с logrotate в Debian/Ubuntu

Добави към

Логроте - приложение, предназначено да улесни управление на регистрационни файлове. Специален Логроте полезно, когато се генерират голям брой регистрационни файлове. Помощната програма ви позволява автоматично да архивирате, изтривате, почиствате и изпращате регистрационни файлове на имейл. Този процес обикновено се нарича ротация на регистрационни файлове.

Логроте може да се конфигурира за ежедневно, седмично или месечно въртене. Освен това можете да зададете размера на файла, при достигане на който файлът ще бъде завъртян. Обикновено logrotate изпълнява се като ежедневна работа (cron).

Инсталацията е често срещана за дистрибуциите, базирани на Debian/Ubuntu:

Описание на това как Логроте ще работи с един или друг регистрационен файл, намиращ се в специален конфигурационен файл. Като правило те се намират в директорията /etc/logrotate.d/. Например конфигурационният файл за apache2 изглежда така:

Освен това, първият ред /var/log/apache2/*.log няма нищо повече от шаблон за обработени регистрационни файлове. Това означава, че посочената конфигурация на ротация ще се използва за всички файлове, намиращи се в директорията/var/log/apache2/и имащи разширението "log".

В конфигурационния файл има много валидни директиви (повече от 40). Можете да научите повече за тях от човек logrotate.

Като правило, след настройване на конфигурационния файл, става необходимо да се провери операцията logrotate за нови дневници. За това има възможност за директно стартиране logrotate от командния ред. Разрешени са следните опции:

. Включва режима за отстраняване на грешки и също дублира опции -v. В режим за отстраняване на грешки няма да се извършва действие върху регистрационните файлове.

-f, - сила. Принуждава logrotate да завърта трупите. Понякога е необходимо след добавяне на нови конфигурационни файлове или ако старият регистрационен файл е бил ръчно изтрит; по този начин ще бъдат създадени нови регистрационни файлове и регистрирането ще продължи правилно.

-m, - команда за поща. Указва коя команда да се използва за регистрация на пощенски файлове. Командата трябва да вземе 2 входни параметъра:

  • заглавна буква
  • получателят на писмото

След това командата трябва да прочете съобщението от стандартния вход (STDIN) и да го изпрати на получателя. Командата по подразбиране е / usr/bin/mail -s

-s, - state statefile. Показва използването на файл с алтернативно състояние. Полезно в случаите, когато logrotate работи като различни потребители за различни набори от регистрационни файлове. Файл по подразбиране: / var/lib/logrotate/status

--използване. Показва кратки инструкции за използване на помощната програма.

-v, --verbose. Извеждане на диагностични съобщения по време на ротация.

Като пример, нека кажем, че в директорията /home/site/debianworld.ru/logs/ се намират регистрационните файлове на уеб сървъри като nginx и apache. Те работят съвместно: nginx - frontend, apache2-backend.

Коментарите по пътя не трябва да оставят въпроси. Но като цяло схемата е такава, че nginx регистрационните файлове се завъртат отделно, apache2 регистрира отделно. В същото време, тъй като nginx е предният край и дневникът му се попълва по-интензивно от този на apache, той (log на nginx) се върти 7 пъти по-често от дневника на apache2.

В допълнение, при всяка итерация на въртене на регистрационния файл на nginx се събират статистически данни за AWstats (вижте Инсталиране и конфигуриране на AWstats и Конфигуриране на AWstats за генериране на статистика по ден).

След създаването на конфигурационния файл трябва да се уверите, че всичко ще работи точно както е предвидено. За да направите това, е необходимо да изпълните (в този случай няма да има реални промени, тъй като стартирането ще се извърши в режим за отстраняване на грешки):

След като от диагностичните съобщения стана ясно, че всичко е наред, трябва директно да започнете ротацията:

В бъдеще ротацията ще се извършва автоматично на интервала, посочен в конфигурационния файл.