управляємо балками

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

Другий етап - налаштування ротації лог-файлів. Тут ми поставимо всі параметри самих лог-файлів і дій над ними.

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

Що таке ротація? Простими словами - це механізм управління логами, який розбиває логи на кілька шматків-файлів в залежності від періоду часу і (або) розміру логів. При цьому більш нові "зрушують" старі логи на одну позицію, а найостанніший видаляється (в більшості випадків). Щоб подивитися на прикладі - відкрийте папку і подивіться на імена файлів і ви побачите щось на зразок цього - syslog syslog.0 syslog.1.gz syslog.2.gz syslog.3.gz syslog.4.gz. де syslog - це поточний лог-файл, syslog.0 - лог-файл минулого тижня, syslog.1.gz - логи 2-тижневої давності і т.д. При наступної ротації файл syslog.4.gz буде видалений, syslog.3.gz буде перейменований в syslog.4.gz. syslog.2.gz - в syslog.3.gz. syslog.1.gz - в syslog.2.gz. syslog.0 в syslog.1.gz. syslog - в syslog.0. а в файл syslog буде очищений для нових балок.

Ставлячи параметри logrotate ми можемо контролювати зберігання логів. Конфігурація для logrotate знаходиться в файлі /etc/logrotate.conf - подивимося на нього уважніше.

Це значення за замовчуванням, тобто в цьому файлі зберігаються правила ведення лог-файлів для всіх програм за винятком зазначених (читай нижче нижче).

Йдемо по параметрам:

weekly - означає, що ротація буде здійснюватися раз на тиждень, може бути зазначено monthly (daily) - раз на місяць (раз на день);

rotate 4 - скільки разів робити ротацію логів перед їх видаленням або пересиланням поштою, якщо вказано 0 - то стара версія відразу віддаляється або пересилається поштою;
size 1000 - при перевищенні зазначеного розміру лог-файлу буде проведена ротація, розмір можна вказувати і так: 1000k, 5M, тобто в кілобайтах і мегабайтах.

create - після ротації відразу буде створено порожній лог-файл;

compress - якщо вказана ця директива, то лог-файли після ротації будуть стискатися.

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

Це основні директиви, більш детально, якщо є бажання або необхідність, ви можете подивитися набравши команду:

І ви дізнаєтеся, що можна запускати перед ротацією і після неї свій скрипт обробки, стискати своїм алгоритмом та інше.

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

Схожі статті