Налаштування logrotate

У Linux, більшість сервісів і програм, які працюють у фоновому режимі, таких як Apache, Nginx, Postfix і інших записують інформацію про свій стан, результати роботи і помилки в лог файли. Стандартне розташування балок або як їх ще називають - журналів - в папці / var / log.

За допомогою аналізу логів ви можете зрозуміти що працює не так, чому сталася помилка і як вирішити проблему. Але той криється одна проблема. Розмір логів постійно зростає і вони займають все більше і більше місця на диску, тому необхідно вчасно чистити логи і видаляти застарілі записи, щоб вони не заважали нормально працювати. Це можна робити вручну час від часу або налаштувати скрипти Cron, але є ще більш простий варіант - утиліта logrotate. У цій статті буде розглянута настройка logrotate і її використання.

Як працює Logrotate?

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

Відео: setup rsyslog server as Centralised logging server in RHEL 6 / CentOS 6

Перевірку умов можна налаштувати щодня, щотижня або щомісяця. Це дозволяє створити схему ротації логів, зручну саме для вас і вашого сервера. Також ротація логів може бути корисна на домашньому комп`ютері, але тут вона не так важлива як на серверах, де тільки в логи Apache можуть записуватися до сотень тисяч рядків щодня.

Налаштування Logrotate

Logrotate - це популярна утиліта, тому в більшості дистрибутивів вона поставляється за замовчуванням. Ви можете переконатися, що програма встановлена ​​в вашому дистрибутиві, спробувавши її встановити. Наприклад, в CentOS:

Відео: LPIC 108.2 частина друга. Журнал подій: logrotate

$ Sudo apt install logrotate

Тепер, навіть якщо утиліта не була встановлена, ви її встановите. Всі основні настройки програми знаходяться в файлі /etc/logrotate.conf, додаткові налаштування, стосовно правил та інших можливостей можуть бути розміщені в папці /etc/logroate.d/. Ви можете розміщувати всі налаштування logroatae прямо в основному файлі конфігурації, буде більш правильно, якщо настройки для кожного окремого сервісу будуть знаходитися в окремому файлі, в папці /etc/logrotate.d/.

Відео: Logrotate - How to Rotate and Compress logs




Щоб конфігураційні файли з цієї папки завантажувалися програмою, необхідно додати в основний конфігураційний файл такий рядок:

include /etc/logrotate.d

Просто переконайтеся що вона там вже є. Спочатку давайте розглянемо основні директиви, які ми будемо застосовувати під час налаштування. Тут директиви виглядають не зовсім звичайно, сама директива і визначає що і коли потрібно робити, а вже якщо потрібно, їй передаються додаткові параметри. Щоб вказати як часто потрібно виконувати перевірку збігу умов використовуються такі директиви:

  • hourly - кожну годину;
  • daily - кожен день;
  • weekly - щотижня;
  • monthly - кожен місяць;
  • yearly - щороку.



Основні директиви управління і обробки балок:

  • rotate - вказує скільки старих балок потрібно зберігати, в параметрах передається кількість;
  • create - вказує, що необхідно створити порожній лог файл після переміщення старого;
  • dateext - додає дату ротації перед заголовком старого балки;
  • compress - вказує, що лог необхідно стискати;
  • delaycompress - Чи не стискайте останній і передостанній журнал;
  • extension - зберігати оригінальний лог файл після ротації, якщо у нього вказане розширення;
  • mail - відправляти Email після завершення ротації;
  • maxage - виконувати ротацію журналів, якщо вони старше, ніж зазначено;
  • missingok - не видавати помилки, якщо лог файлу не існує;
  • olddir - переміщати старі логи в окрему папку;
  • postrotate / endscript - виконати довільні команди після ротації;
  • start - номер, з якого буде розпочато нумерація старих балок;
  • size - розмір логу, коли він буде переміщений;

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

адрес_файла_лога {
директиви
}

Тепер давайте створимо файл rsyslog.conf в папці /etc/logrotate.d/ і помістимо в нього настройки для ротації цього балки:


daily
rotate 3
size 10M
compress
delaycompress
}

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

Тепер залишилося протестувати як працює наша конфігурація. Для цього запустимо утиліту logrotate з опцією -d. Вона виведе всі, що планується зробити, але не буде змінювати файли на диску. У нас є файл / var / log / messages, розміром 40 Мегабайт, подивимося що буде робити утиліта:

Відео: LPIC 108.4 частина перша. Управління печаткою. Базова настройка CUPS

$ Logrotate -d /etc/logrotate.d/rsyslog.conf

Як бачите, програма виявляє файл логу і розділяє його на кілька частин. Ви можете переконатися, що logrotate запускатиметься як годиться перевіривши розклад cron:

Поділися в соціальних мережах:

Схожі
Як виводити логи в браузер, використовуючи notification api.Як виводити логи в браузер, використовуючи notification api.
Помилка відмовлено в доступі linuxПомилка відмовлено в доступі linux
Що краще nginx або apache 2016Що краще nginx або apache 2016
Як додати команду в cronЯк додати команду в cron
Виправляємо виявлена ​​помилка в системній програмі ubuntuВиправляємо виявлена ​​помилка в системній програмі ubuntu
Безпека php на серверіБезпека php на сервері
Помилка 403 forbidden nginx 1.4 6 ubuntuПомилка 403 forbidden nginx 1.4 6 ubuntu
Помилка apt-get command not foundПомилка apt-get command not found
Як подивитися логи в linuxЯк подивитися логи в linux
Очищення системи ubuntuОчищення системи ubuntu
» » Налаштування logrotate