Управление файлами журналов
100%

Журналирование · Урок 6

Управление файлами журналов

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

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

Понимание ротации

Типичная ротация переименовывает активный файл, создаёт замену, при необходимости просит приложение открыть её заново, сжимает старые поколения и удаляет вышедшие за предел хранения. Шаги зависят от конфигурации; ротация не является резервной копией, потому что сохранённые файлы всё ещё удаляются, повреждаются или теряются вместе с хостом.

Почему ротация не заменяет резервное копирование или архивирование?

Поиск конфигурации

Основной файл обычно /etc/logrotate.conf, а фрагменты пакетов и приложений — в /etc/logrotate.d/. Упрощённая политика:

/var/log/example/app.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    create 0640 example adm
}

Она запрашивает ежедневную оценку, семь сохранённых ротаций, сжатие с задержкой одного поколения, допуск отсутствующего или пустого журнала и новый файл с явными mode и владельцем. Фактическая ротация также зависит от записанного состояния и запуска logrotate планировщиком.

Что задаёт rotate 7?

Координация с записывающим процессом

После переименования демон может продолжать писать через открытый descriptor в старый файл. Сценарий postrotate часто отправляет документированный сигнал reload или reopen. Проверяйте точное поведение приложения и держите сценарий узконаправленным.

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

Почему приложению может потребоваться сигнал reopen после ротации?

Тестирование до активации

Используйте debug для просмотра решений без ротации:

$ sudo logrotate -d /etc/logrotate.conf

Debug-вывод не доказывает, что разрешения, сценарии, свободное место или reopen приложения сработают при реальном запуске. Протестируйте новое правило в контролируемой среде, затем проверьте активный файл, ротированное поколение, владение, сжатие, вывод приложения и состояние logrotate. -f принудительно выполняет ротацию и меняет состояние; не путайте его с dry run.

Что предоставляет logrotate -d?

Учёт других хранилищ

Logrotate управляет файлами из своих политик. У systemd journal собственные настройки размера и хранения, а базы данных и удалённые службы — отдельные жизненные циклы. Контролируйте ёмкость файловой системы и здоровье журналирования, чтобы обнаружить зависший writer или неудачную ротацию до заполнения места.

Применяет ли правило logrotate автоматически хранение systemd journal?

Урок завершён

Вы завершили Управление файлами журналов

Теперь вы можете проектировать и проверять ротацию файлов, не принимая её за архивирование.

  • Балансировать место, эксплуатацию и требования хранения.

  • Задавать поколения, сжатие, владение и поведение пустых файлов.

  • Безопасно координироваться с приложениями, удерживающими descriptors.

  • Проверять конфигурацию в debug до контролируемой реальной ротации.

  • Отдельно управлять хранением journal и внешних систем.

Сохраните прогресс

Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.

Создать бесплатный аккаунт
Назад к Журналирование