Вступление
Logrotate - это утилита Linux, которая упрощает администрирование файлов журналов. Обычно он запускается один раз в день с помощью задания cron и управляет журналами на основе настроенных правил / настроек из своего конфигурационного файла.
Некоторые из его полезных настроек включают в себя автоматическое вращение, сжатие, удаление и отправку файлов журнала.
Монтаж
Большинство систем Linux поставляются с Logrotate, установленным по умолчанию. Проверьте, установлен ли он на вашем экземпляре Vultr, введя logrotate
команду. Вы увидите вывод с версией Logrotate, на которой работает ваш сервер.
Если он не установлен, выполните следующие шаги, чтобы продолжить установку.
В системах Debian / Ubuntu:
sudo apt-get update
sudo apt-get install logrotate
В системах Redhat / CentOS:
sudo yum update
sudo yum install logrotate
Понимание Logrotate
Движущиеся части, которые запускают logrotate:
-
Актуальный инструмент logrotate
.
-
Файл конфигурации Logrotate находится по адресу /etc/logrotate.conf
. Этот файл содержит конфигурацию для всех файлов журнала, которыми управляет Logrotate.
-
Ежедневное задание cron, /etc/cron.daily/logrotate
которое запускает команду logrotate на основании настроек в файле конфигурации. Если это задание cron не существует в вашей системе, создайте его и добавьте приведенный ниже фрагмент кода.
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
Подробнее о конфигурации
Если вы загляните внутрь /etc/logrotate.conf
, вы увидите, что в нем есть строчка include /etc/logrotate.d
. Эта строка говорит Logrotate заглянуть внутрь /etc/logrotate.d
каталога и запустить каждый файл конфигурации в нем. В этом каталоге обычно приложения, установленные в вашей системе Linux, добавляют свои конфигурации logrotate. Например, Apache2 обычно создает /etc/logrotate.d/apache
файл конфигурации после установки.
Управление журналами
Чтобы проверить Logrotate, мы будем:
-
Создайте новый файл журнала испытаний с 1 МБ или случайными данными:
sudo base64 /dev/urandom | head -c 1000000 > /tmp/testfile.log
-
Создайте новую конфигурацию Logrotate, запустив sudo nano /etc/logrotate.d/testlog
. Скопируйте следующий фрагмент в пустой файл и нажмите Ctrl + X, чтобы сохранить и выйти.
/tmp/testfile.log {
size 1k
copytruncate
missingok
rotate 5
}
Параметры конфигурации в приведенном выше фрагменте инструктируют Logrotate:
size 1k
: Поворот файла журнала, если размер больше или равен 1 КБ.
missingok
: Игнорировать сообщения об ошибках, если testfile.log
не существует.
copytruncate
Создайте копию текущего файла журнала и затем обрежьте ее. Это удобно, когда приложение не может закрыть свой файл журнала, потому что оно постоянно добавляется к нему.
rotate 5
: ограничить количество обращений к файлу журнала до 5. Это приведет к удалению старых версий файлов журнала более чем на 5 дней.
ПРИМЕЧАНИЕ. Вы можете увидеть все параметры конфигурации для logrotate здесь .
-
Запустите команду Logrotate вручную:
sudo logrotate /etc/logrotate.conf
После выполнения вышеуказанной команды перечислите все файлы в каталоге tmp, ls -l /tmp
чтобы подтвердить, что testfile.log действительно был повернут. Вы должны увидеть список, похожий на следующий, который показывает, что testfile.log
он действительно был повернут. Это будет продолжаться каждый день и хранить последние 5 копий.
[root@vultr ~]# ls -l /tmp
-rw-r--r-- 1 root root 0 Nov 14 23:31 testfile.log
-rw-r--r-- 1 root root 1000000 Nov 14 23:30 testfile.log-20141114
-rw-r--r-- 1 root root 634 Nov 10 00:23 vultr_ipv6
-rw-------. 1 root root 0 Oct 15 20:44 yum.log
Заключение
Журналы могут быстро создавать проблемы на сервере, становясь слишком большими и вызывая проблемы с дисковым прос��ранством. Управление журналами имеет решающее значение для любой системы, но еще лучше автоматизировать это управление. Logrotate позволяет легко вращать, архивировать и удалять журналы.
Автор Лами Адабонян