logrotate
Утилита logrotate для Найс.ОС предназначена для ротации, сжатия и удаления системных логов, обеспечивая эффективное управление лог-файлами и предотвращение переполнения дискового пространства.
Домашняя страница: https://github.com/logrotate/logrotate
Доступные версии
Версия | Релиз | Архитектура | Лицензия | Дата сборки | Размер | Версии ОС | Подробности |
---|---|---|---|---|---|---|---|
3.22.0 | 1.niceos5 | x86_64 | GPL-2.0-or-later | 25 апр. 2025 г. | 158,308 МиБ | Подробности |
Описание
Описание пакета logrotate для Найс.ОС
Пакет logrotate является мощным и широко используемым инструментом в операционных системах на базе Linux, включая Найс.ОС. Он предназначен для автоматизации управления лог-файлами, которые генерируются различными службами и приложениями. Логи, если их не контролировать, могут быстро занимать значительное место на диске, что приводит к проблемам с производительностью системы. Утилита logrotate решает эту проблему, обеспечивая ротацию, сжатие и удаление устаревших логов по заданным правилам.
Основные функции logrotate
Программа logrotate предоставляет гибкий механизм для работы с лог-файлами, что делает её незаменимой для системных администраторов. Основные возможности включают:
- Ротация логов: создание новых файлов логов через определённые промежутки времени (ежедневно, еженедельно, ежемесячно) или при достижении заданного размера файла.
- Сжатие логов: автоматическое сжатие старых логов в форматы, такие как gzip, для экономии дискового пространства.
- Удаление устаревших логов: настройка политики хранения, позволяющая удалять логи старше определённого возраста.
- Выполнение скриптов: запуск пользовательских команд перед или после ротации (например, перезапуск службы).
- Гибкая конфигурация: поддержка индивидуальных настроек для каждого лог-файла или группы файлов.
Установка logrotate в Найс.ОС
Для установки пакета logrotate в Найс.ОС используется пакетный менеджер dnf. Выполните следующую команду для установки:
dnf install logrotate
После установки утилита обычно готова к работе, так как базовая конфигурация уже присутствует в системе. Основной конфигурационный файл находится по пути /etc/logrotate.conf
, а дополнительные настройки для конкретных служб хранятся в директории /etc/logrotate.d/
.
Принципы работы logrotate
Утилита logrotate работает на основе конфигурационных файлов, где задаются правила для обработки логов. Программа может быть запущена вручную или автоматически через системный планировщик задач cron. В Найс.ОС по умолчанию cron-задание для logrotate настроено на ежедневный запуск.
Пример проверки текущего статуса cron-задания:
systemctl status crond
Если задание не настроено, его можно добавить вручную, отредактировав файл /etc/crontab
или создав отдельный скрипт в /etc/cron.d/
.
Конфигурация logrotate
Основной файл конфигурации /etc/logrotate.conf
содержит глобальные настройки, такие как периодичность ротации, количество хранимых копий логов и параметры сжатия. Пример стандартной конфигурации:
cat /etc/logrotate.conf
Вывод может выглядеть следующим образом:
# 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
Для конкретных приложений, таких как Apache или NGINX, настройки ротации логов обычно находятся в /etc/logrotate.d/
. Пример файла для Apache (/etc/logrotate.d/httpd
):
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
delaycompress
postrotate
/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
endscript
}
В этом примере указано, что логи Apache будут ротироваться, только если они не пусты (notifempty
), а после ротации служба httpd будет перезагружена для записи в новый лог-файл.
Ручной запуск logrotate
Для проверки работы утилиты или выполнения ротации вручную можно использовать следующую команду:
logrotate -f /etc/logrotate.conf
Флаг -f
заставляет logrotate выполнить ротацию даже если условия (например, размер файла или время) ещё не наступили. Для отладки можно добавить флаг -d
, который выводит информацию о процессе без фактического выполнения ротации:
logrotate -d /etc/logrotate.conf
Примеры использования logrotate
Рассмотрим несколько типичных сценариев настройки logrotate для управления логами в Найс.ОС.
1. Настройка ротации для пользовательского приложения
Предположим, у вас есть приложение, которое пишет логи в /var/log/myapp.log
. Вы хотите ротировать этот файл ежедневно, хранить 7 копий и сжимать старые логи. Для этого создайте файл в /etc/logrotate.d/myapp
со следующим содержимым:
/var/log/myapp.log {
daily
rotate 7
compress
missingok
create 0644 myuser mygroup
}
Эта конфигурация указывает, что лог будет ротироваться ежедневно, сохраняться 7 старых копий, сжиматься, а новый файл будет создаваться с правами доступа 0644 и владельцем myuser:mygroup.
2. Ротация по размеру файла
Если лог-файл быстро растёт, можно настроить ротацию по размеру. Например, ротировать файл, если он превышает 100 МБ:
/var/log/bigapp.log {
size 100M
rotate 5
compress
}
В этом случае лог будет ротироваться при достижении размера 100 МБ, независимо от времени.
Диагностика и устранение неполадок
Если logrotate не работает как ожидается, проверьте следующие аспекты:
- Права доступа к лог-файлам и конфигурациям. Убедитесь, что утилита имеет доступ к файлам.
- Ошибки в конфигурационных файлах. Используйте флаг
-d
для отладки. - Статус cron-задания. Убедитесь, что cron работает и запускает logrotate.
Пример проверки логов cron для диагностики:
grep CRON /var/log/cron
Преимущества использования logrotate
Использование logrotate в Найс.ОС позволяет:
- Предотвращать переполнение дискового пространства за счёт своевременной ротации и сжатия логов.
- Упрощать анализ логов, так как они разделены по времени или размеру.
- Автоматизировать рутинные задачи управления логами, экономя время администратора.
Таким образом, logrotate является критически важным инструментом для поддержания порядка в системе логирования Найс.ОС. Гибкость настроек и интеграция с системными службами делают его идеальным решением для серверов и рабочих станций.