Ротація логів - logrotate, база знань

Ротація логів - logrotate. В Ubuntu, та й у всіх Linux, сама система, сервіси та програми всі значущі події записують в файли журналів або лог-файли, які використовуються для діагностики помилок, визначення причини збоїв, отримання статистики, а іноді і для роботи інших програм або сервісів. Зазвичай лог-файли зберігаються в директорії / var / log.

Включення або відключення функції ведення логів, перелік подій, які повинні записуватися в логи, назви лог-файлів і інша інформація зазвичай задається в конфігураційних файлах сервісу або програми.

Деякі сервіси та програми записують в лог-файли досить багато інформації і вони розпухають на очах. Для обмеження безконтрольного зростання лог-файлів існує спеціальний сервіс - logrotate. який здійснює ротацію логів через заданий відрізок часу і видаляє стали непотрібними старі файли.

Основна функція logrotate полягає в періодичній заміні старих балок новими. Logrotate може бути налаштований на щоденну, щотижневу або щомісячну ротацію. Крім того, можна задати розмір файлу, після досягнення якого файл буде ротирована. Залежно від налаштувань архів логів може зберігатися як в стислому, так і в стислому вигляді. Зазвичай logrotate виконується в якості щоденного завдання (cron).

Базові настройки logrotate зберігаються в конфігураційному файлі /etc/logrotate.conf. За замовчуванням, в Ubuntu 14.04 він виглядає так:

Зазвичай встановлюються пакети записують інформацію про ротацію своїх логів (яким чином Logrotate буде працювати з тим чи іншим лог файлом) в директорію /etc/logrotate.d, але далеко не всі і не завжди оптимальну. Іноді виходить безконтрольне зростання лог-файлів, який призводить до неприємних наслідків. Особливо це важливо при роботі з vds / vps з невеликим обсягом дискової пам'яті.

Наприклад утиліта fail2ban при установці формує конфігураційний файл /etc/logrotate.d/fail2ban з вмістом:

Для негайного застосування змін можна виконати:

Для перевірки внесений змін можна запустити команду (ніяких дій з логами не буде виконано):