Logrotate проверить

Logrotate проверить Хостинг

Основные параметры для настройки


Вспомогательные настройки


Проверка конфигурации

В РЕД ОС большинство сервисов и программ, которые работают в фоне, записывают информацию о своем состоянии, результатах работы и ошибках в файлы, называемые журналами
. Стандартное расположение журналов или, как их еще называют, логов
— в папке /var/log
.

С помощью анализа этих файлов можно понять, что работает не так, почему произошла ошибка и как решить возникшую проблему. Однако существует некоторая проблема — размер журналов постоянно растет, они занимают все больше и больше места на диске, поэтому необходимо вовремя удалять устаревшие записи, чтобы они не мешали нормальной работе компьютера. Делать это можно вручную или воспользоваться утилитой logrotate
.

Утилита logrotate
предназначена для автоматизации обработки журналов. Она может выполнять необходимые действия в зависимости от определенных условий и правил соответствия. Например, можно сжимать журналы в архив или отправлять на другой сервер, когда они достигают определенного размера, возраста или других параметров.

Проверку условий можно настроить ежедневно, еженедельно или ежемесячно — это позволяет создать схему ротации логов, удобную именно для вас и вашего сервера.

Logrotate
— популярная утилита, поэтому в большинстве дистрибутивов она поставляется по умолчанию.

На нашем Youtube-канале
вы можете подробнее ознакомиться с возможностью настройки ротации логов при помощи утилиты logrotate
, просмотрев видео Настройка ротации логов: logrotate
, а также найти много другой полезной информации.

В дистрибутиве РЕД ОС программа также является предустановленной, поэтому даже установка ОС подробно записывается в журнал:

     ls /var/log/anaconda/    
 

 anaconda.log 	journal.log 		packaging.log 	 	X.log
 dbus.log 	ks-script-mmizpj2u.log 	program.log
 dnf.librepo.log 	ks-script-z8uq2i_g.log 	storage.log
 hawkey.log 	lvm.log 		syslog  

Все основные настройки программы находятся в файле /etc/logrotate.conf
.

Для дополнительных настроек в основном файле указана папка /etc/logrotate.d
. Собственные настройки лучше сохранять именно в данном каталоге, так ими будет проще управлять.

     nano /etc/logrotate.conf    
 

 # see "man logrotate" for details
 # rotate log files weekly
 weekly
 
 # keep 4 weeks worth of backlogs
 rotate 4
 
 # create new (empty) log files after rotating old ones
 create
 
 # use date as a suffix of the rotated file
 dateext
 
 # uncomment this if you want your log files compressed
 #compress
 
 # packages drop log rotation information into this directory
       
 
 
 # system-specific logs may be also be configured here.    

Основные параметры для настройки

Чтобы указать частоту выполнения проверок на совпадение условий, используются следующие директивы:

  • hourly
    — каждый час;

  • d
    aily
    — каждый день;

  • weekly
    — каждую неделю;

  • monthly
    — каждый месяц;

  • yearly
    — каждый год.

По умолчанию настроена еженедельная ( weekly
) проверка.

Рассмотрим основные параметры управления и обработки журналов:

  • rotate
    — указывает, сколько старых логов нужно хранить (в параметрах передается количество);

  • create
    — создание пустого файла лога после перемещения старого;

  • dateext
    — перед заголовком старого лога добавляется дата ротации;

  • compress
    — сжатие логов;

  • delaycompress
    — не сжимать последний и предпоследний журнал;

  • extension
    — сохранять оригинальный лог-файл после ротации, если у него указано расширение;

  • mail
    — отправлять e-mail после завершения ротации;

  • maxage
    — выполнять ротацию журналов, если они старше, чем указано;

  • missingok
    — не выдавать ошибки, если лог-файла не существует;

  • olddir
    — перемещать старые логи в отдельную папку;

  • postrotate/endscript
    — выполнить произвольные команды после ротации;

  • start
    — номер, с которого будет начинаться нумерация старых логов;

  • size
    — размер лога, когда он будет перемещен.

По умолчанию настроено хранение четырех старых файлов журналов, создание нового пустого файла журнала после перемещения старых и использование даты ротации при создании файлов журнала.

Вспомогательные настройки

В каталоге дополнительных настроек /etc/logrotate.d
находятся несколько файлов, по названиям и содержимому которых можно определить, к журналам какой программы они относятся:

     ls /etc/logrotate.d/    
 
 
 bootlog chrony glusterfs kadmind ppp samba syslog wtmp
 btmp dnf iscsiuiolog krb5kdc psacct sssd wpa_supplicant yum  

В файлах содержатся правила обработки отдельных журналов.

В качестве примера рассмотрим параметры файла конфигурации bootlog
:

     cat /etc/logrotate.d/bootlog    
 

 /var/log/boot.log
 {
 1.   missingok
 2.   daily
 3.   copytruncate
 4.   rotate 7
 5.   notifempty
 }  

Файл состоит из одной записи, которая, в свою очередь, разделена на две части:

  • имя файла
    , который нужно обрабатывать ( /var/log/boot.log
    );

  • параметры обработки
    , указанные в фигурных скобках.

Читайте также:  Бесплатный хостинг BeGet

Описание параметров обработки:

  1. missingok
    – не выдавать ошибки, если лог-файла не существует;

  2. daily
    – обрабатывать журнал каждый день;

  3. copytruncate
    – обрезать оригинальный файл до нулевого размера после создания копии вместо переименования оригинального файла и создания нового.

  4. rotate
    7 – необходимо хранить 7 старых файлов журналов;

  5. notifempty
    – не ротировать файл лога, если он пуст.

Рассмотрим ещё один файл конфигурации — sssd
.

     cat /etc/logrotate.d/sssd    
 

 /var/log/sssd/*.log {
 weekly
 missingok
 notifempty
 sharedscripts
 rotate 2
 compress
 delaycompress
 postrotate
 /bin/kill -HUP `cat /var/run/sssd.pid 2>/dev/null` 2> /dev/null || true
 endscript  

Здесь та же структура, но в конфигураторе дополнительно указана команда терминала, заключенная в postrotate
и endscript
. Строки, находящиеся между данными служебными словами, каждое из которых должно находиться в отдельной строке, выполняются с использованием /bin/sh
после ротации файла журнала.

Проверка конфигурации

После настройки какого-либо файла конфигурации logrotate
желательно проверить его корректность. Для этого необходимо запустить утилиту logrotate
с опцией -d
, она выведет все, что планируется сделать, но не будет изменять файлы на диске.

Рассмотрим действие утилиты на примере файла /var/log/bootlog
:

     logrotate -d /etc/logrotate.d/bootlog    
 
 
 WARNING: logrotate in debug mode does nothing except printing debug messages! Consider using verbose mode (-v) instead if this is not what you want.
 
 reading config file /etc/logrotate.d/bootlog
 Reading state from file: /var/lib/logrotate/logrotate.status
 Allocating hash table for state file, size 64 entries
 
 Handling 1 logs
 
 rotating pattern: /var/log/boot.log
 after 1 days (7 rotations)
 empty log files are not rotated, old logs are removed
 considering log /var/log/boot.log
 Now: 2022-12-05 07:56
 Last rotated at 2022-12-02 00:00
 log does not need rotating (log is empty)  

Если сообщений об ошибках нет, можно считать, что настройка завершена успешно.

Дата последнего изменения:
05.12.2022

Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter
.

Ротация логов в Linux и FreeBSD с помощью logrotate

С помощью утилиты logrotate можно настроить автоматическое удаление (чистку) лог-файлов. В противном случае, некоторые логи могут заполнить все дисковое пространство, что приведет к проблемам в работе операционной системы.

Установка

Чаще всего, в Linux данная утилита установлена по умолчанию. Если это не так, установка выполняется следующими командами.

Ubuntu / Debian:

apt-get install logrotate

CentOS / Red Hat:

yum install logrotate

pkg install logrotate

Утилита не работает как служба, поэтому нет необходимости в ее запуске или перезагрузке ( logrotate start
или logrotate restart
делать не нужно).

Настройка

Для приложение, ротация логов настраивается в отдельных файлах, расположенных по пути  /etc/logrotate.d/
(во FreeBSD — /usr/local/etc/logrotate.d/
).

К примеру, нам необходимо настроить ротацию лога для logstash-forwarder. Создаем файл со следующим содержимым:

/var/log/logstash-forwarder/*
— путь к файлу, который нужно ротировать. * указывает, что нужно чистить все файлы, которые расположены в каталоге  /var/log/logstash-forwarder.

** имейте в виду, что во FreeBSD, путь может быть  /usr/local/etc/logrotate.d/logstash.

Другие примеры читайте в статье  Примеры настроек logrotate для различных программ

При настройке необходимо проверять работу сервиса после ротации лога. Некоторые службы могут перестать работать без лог-файла. В данном случае, необходимо создавать новый ( create
). Также, в некоторых случаях, сервис необходимо перезапускать, так как при создании нового файла меняется его дескриптор.

Описание опций

Для описания ротации мы можем использовать следующие директивы:

Запуск

Мы можем разово запустить ротацию, а также настроить автозапуск.

Вручную

Запуск выполняется со следующим синтаксисом:

logrotate -f <путь к файлу конфигурации>

Автоматический

Задание на автоматический запуск создается по умолчанию в файле  /etc/cron.daily/logrotate
. Если изучить его содержимое, мы увидим, что идет запуск logrotate, который читает все файлы в директории /etc/logrotate.d/ и выполняющий для каждого из них ротацию.

Если для какого-то приложения необходимо выполнять ротацию лога по особому расписанию, узнаем полный путь до утилиты logrotate:

* в моем случае, это было  /usr/sbin/logrotate
.

Получив путь, создаем правило в cron:

0 0 * * * /usr/sbin/logrotate -f /etc/logrotate.d/logstash

* в данном примере в 00:00 будет запускаться logrotate и чистить логи с нашей настройкой для logstash-forwarder.

или запуск чистки всех логов:

0 0 * * * /usr/sbin/logrotate -f /etc/logrotate.conf

Дмитрий Моск — частный мастер

Была ли полезна вам эта инструкция?


Logrotate проверить

Обсудим что такое Logrotate, как установить Logrotate и как управлять файлами журнала с помощью Logrotate в Linux.

Что такое Logrotate?

Как следует из названия, Logrotate
полностью удаляет журналы из вашей системы через регулярные промежутки времени. Он также позволяет автоматически перезаписывать, сжимать, удалять и рассылать файлы журналов.

Утилита logrotate обрабатывает каждый файл журнала ежечасно, ежедневно, еженедельно, ежемесячно, или когда он становится слишком большим или файл журнала достигает определенного размера.

Интересно:
Как узнать дату и время создания файла в Linux?

Эта утилита logrotate упрощает администрирование файлов журнала, и особенно полезна для систем, которые ежедневно пополняются большим объемом данных.

Установка Logrotate в Linux

Logrotate доступен в стандартных репозиториях большинства дистрибутивов Linux.

Для установки logrotate в Alpine Linux, выполните:

  sudo apk add logrotate  

Для установки logrotate в Arch Linux и его разновидностях, таких как EndeavourOS и Manjaro Linux, выполните следующую команду:

  sudo pacman -S logrotate  

Для установки logrotate в системах на базе , таких как Fedora, , CentOS, CentOS Stream, AlmaLinux и Rocky Linux, выполните:

  sudo dnf install logrotate  

На старых системах , CentOS используйте yum
вместо dnf
для установки logrotate.

  sudo yum install logrotate  

Для установки logrotate в Debian, Ubuntu и производных Ubuntu, таких как Elementary OS, Linux Mint и Pop!_OS, выполните следующую команду:

  sudo apt install logrotate  

Для установки logrotate в системах и openSUSE используйте следующую команду:

  sudo znf install logrotate  

Управление файлами журнала с помощью Logrotate

Главный конфигурационный файл LogRotate – /etc/logrotate.conf
.

Здесь показано содержимое этого файла по умолчанию в моей системе Fedora Linux.

  # see "man logrotate" for details
# global options do not affect preceding include directives
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# packages drop log rotation information into this directory
include /etc/logrotate.d
# system-specific logs may also be configured here.    

Давайте посмотрим, что делает каждая опция в приведенном выше конфигурационном файле.

  • weekly
    – Дополняет и удаляет старые данные в журналыах каждую неделю.
  • rotate 4
    – По умолчанию LogRotate хранит журналы за четыре недели. Так как он ротирует все файлы журнала через определенный период времени, вам может понадобиться сохранить резервные копии важных файлов журнала, если вы не хотите их потерять.
  • size 20M
    – Ротирует файлы журнала, если их размер достиг 20 Мб. По умолчанию эта опция отключена. Чтобы включить ее, просто откомментируйте ее.
  • create
    – Создает новые файлы журналов после ротации старых. Эта опция включена по умолчанию.
  • compress
    – Сжимает файлы журнала. По умолчанию журналы не сжимаются. Если вы хотите сжать журналы, откомментируйте эту строку.
  • /etc/logrotate.d/
    – Этот каталог содержит файлы правил ведения журналов, специфичных для конкретного приложения.
  • missing ok
    – Если файл журнала отсутствует, Logrotate перейдет к следующему, не выдавая сообщения об ошибке.

Logrotate сегментирует файлы журналов и сжимает их на основе правил, заданных в каталоге /etc/logrotate.d/
.

Посмотрим на содержимое этого каталога.

  ls /etc/logrotate.d/  
  bootlog chrony firewalld httpd libvirtd numad psacct sssd wtmp
btmp dnf glusterfs iscsiuiolog libvirtd.qemu ppp samba wpa_supplicant  

Как видно из приведенного выше вывода, он содержит различные файлы правил для всех журналов, управляемых Logrotate.

Чтобы просмотреть правило журнала конкретного приложения, например, samba
, выполните:

  cat /etc/logrotate.d/samba
/var/log/samba/log.smbd /var/log/samba/log.nmbd /var/log/samba/*.log {
notifempty
missingok
sharedscripts
copytruncate
postrotate
/bin/kill -HUP "cat /var/run/samba/*.pid 2>/dev/null" 2>/dev/null || true
endscript
}  
  • notifempty
    – Указывает, что файлы журнала не будут ротироваться, если они пусты.
  • copytruncate
    – Усечение оригинального файла журнала на месте после создания копии.
  • sharedscript
    – Сценарии запускаются только один раз, независимо от того, сколько журналов соответствует шаблону.
  • postrotate/endscript
    – Строки между postrotate и endscript выполняются после поворота файла журнала.

Вы также можете создать свои собственные файлы правил журнала в директории /etc/logrotate.d/

и определить свои собственные правила.

Конфигурация Cron

Cron
ежедневно запускает утилиту logroate в поисках файлов журналов для ротации. Вы можете указать правила автоматической ротации журналов в файле /etc/cron.daily/logrotate
, чтобы избежать ручного вмешательства пользователя.

  cat /etc/cron.daily/logrotate 
#!/bin/sh
# skip in favour of systemd timer
if [ -d /run/systemd/system ]; then exit 0
fi
# this cronjob persists removals (but not purges)
if [ ! -x /usr/sbin/logrotate ]; then exit 0
fi
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit $EXITVALUE  

Он будет выполнять ротацию журналов каждый день в определенное время.

Проверка состояния Logrotate

Чтобы проверить, ротируется ли файлы журналов или нет, проверьте logrotate.status
файл:

  sudo cat /var/lib/logrotate/logrotate.status
logrotate state -- version 2
"/var/log/glusterfs/snaps/*/*.log" 2022-11-29-14:0:0
"/var/log/firewalld" 2022-11-29-14:0:0
"/var/log/boot.log" 2023-4-7-16:10:29
"/var/log/hawkey.log" 2023-4-7-16:10:29
"/var/log/glusterfs/*.log" 2022-11-29-14:0:0
"/var/log/httpd/*log" 2022-11-29-14:0:0
"/var/log/chrony/*.log" 2022-11-29-14:0:0
"/var/log/wtmp" 2022-11-29-14:0:0
"/var/log/btmp" 2023-4-7-16:10:29
"/var/log/glusterfs/samples/*.samp" 2022-11-29-14:0:0
"/var/log/iscsiuio.log" 2022-11-29-14:0:0
"/var/log/libvirt/libvirtd.log" 2022-11-29-14:0:0
"/var/log/libvirt/qemu/*.log" 2022-11-29-14:0:0
"/var/log/sssd/sssd_kcm.log" 2023-4-7-16:10:29
"/var/log/wpa_supplicant.log" 2022-11-29-14:0:0
"/var/log/glusterfs/bricks/*.log" 2022-11-29-14:0:0
"/var/log/numad.log" 2022-11-29-14:0:0
"/var/log/ppp/connect-errors" 2022-11-29-14:0:0
"/var/log/samba/log.*" 2022-11-29-14:0:0
"/var/account/pacct" 2022-11-29-14:0:0  

В некоторых старых дистрибутивах Linux расположение этого файла может быть другим.

  cat /var/lib/logrotate.status
logrotate state -- version 2
"/var/log/samba/log.smbd" 2022-5-12-11:0:0
"/var/log/lircd" 2022-6-15-10:0:0
"/var/log/httpd/*log" 2022-5-12-11:0:0
"/var/log/wtmp" 2022-5-6-10:0:0
"/var/log/samba/*.log" 2022-5-12-11:0:0
"/var/log/btmp" 2023-4-1-11:36:53
"/var/log/samba/log.nmbd" 2023-4-1-11:0:0  

Заключение

Logrotate – это простой, но полезный инструмент ротации логов
, который упрощает управление логами. Вам не нужно усложнять себе жизнь сложными шагами по настройке и установке. Все просто и понятно. Если вы управляете системой, которая производит большое количество файлов журналов, вы можете периодически ротировать журналы с помощью Logrotate на вашем Linux сервере.

Logrotate проверить


Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Со временем журналов в Linux становится очень много. Они занимают немало места и негативно могут влиять на производительность всей системы. Вручную управлять ими очень сложно и нецелесообразно. Куда правильнее – установить утилиту Linux Logrotate
, которая позволит автоматизировать процесс.

Linux Logrotate

Что такое Logrotate?

Речь идет об утилите, которая позволяет осуществлять ротацию и сжатие журналов. Это препятствует разрастанию логов до таких объемов, что они начинают влиять на скорость работы системы. Требуется задать для Logrotate конфигурацию
, чтобы процесс работы с логами был автоматизирован. Если их задать неверно, то логи некоторых сервисов могут занять существенное место на устройстве.

Важно
. Linux Logrotate
уже предустановлена на Ubuntu 16.04 и на более новых версиях. Если пользователь использует устаревшую версию Ubuntu или другой дистрибутив, где нет данной утилиты, то ее можно легко установить.

Основные преимущества Logrotate следующие:

  • автоматизация обработки системных и несистемных журналов;

  • возможность своевременно удалять устаревшую информацию из логов;

  • гибкость и простота настроек;

Если использовать этот софт совместно с другими программами, направленными на управление логами, то удастся более эффективно управлять имеющимися записями о работе системы и пользователя.

Стоит подробнее рассмотреть, как работать с данной утилитой для экономии дискового пространства.

Установка Logrotate в Linux

Утилита находится в большинстве дистрибутивов OS Linux. В зависимости от используемой версии ОС, необходимо задать соответствующую команду для начала установки.

В Debian или Ubuntu:


sudo apt install logrotate

В Fedora или CentOS:


sudo yum install logrotate

После завершения можно проверить установку с помощью команды:

Управление файлами журнала с помощью Logrotate

Конфигурационный файл создается демоном logrotate – /etc/logrotate.conf
. В нем содержится базовая информация, которая не требует изменений. Однако для некоторых сервисов нужно задавать настройки вручную. В каталоге /etc/logrotate.d/
в отдельных конфигурационных файлах задается персональная ротация для каждого приложения. Тут есть настройки для пакетов rsyslog, apport, dpkg и других. Администратор может добавлять новые файлы, чтобы осуществлялась ротация логов Linux. После добавления они тоже будут обрабатываться.

Задавая настройки, необходимо обращать внимание на следующее:

  1. Периодичность выполнения ротации (команды привычные – daily, monthly, weekly).

  2. Rotate X, где X – количество журналов, которые будут храниться в автоматическом режиме.

  3. Compress требуется, чтобы сжать логи с использованием технологии gzip.

  4. Notifempty предполагает, что файл не будет ротирован, если он пустой.

  5. Missingok – если системный журнал отсутствует, то ошибка не будет фиксироваться.

  6. Delaycompress – при использовании этой команды последний журнал не будет подвержен сжатию до следующего запуска утилиты. Команду требуется использовать вместе с compress.

  7. Postrotate/endscript – возможность задать команды, которые будут выполняться при соблюдении определенных условий.

Конфигурация Cron

Cron каждый день запускает данную утилиту, чтобы проверить наличие журналов для обработки. В файле /etc/cron.daily/logrotate
можно вручную указать все необходимые правила для выполнения автоматической ротации. Такой подход позволяет автоматизировать работу и снизить нагрузку на администратора.

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

Проверка состояния Logrotate

Проверить работоспособность программы можно через файл logrotate.status
. Там указывается, когда именно происходила последняя ротация, и какой именно файл подвергся обработке.

Важно
. В старых версиях Linux местонахождение файла может отличаться.

Заключение

Logrotate считается очень простым в использовании инструментом, который помогает предотвратить разрастание журналов до такой степени, что они начнут занимать много места на компьютере или ином устройстве, которое работает на ОС Linux. Установка занимает мало времени, а настройки интуитивно понятны.

Оцените статью
Хостинги