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

Ротация логов в Caddy

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

Настройка ротации логов с помощью logrotate

1. Установка logrotate (если он еще не установлен)


sudo apt install logrotate

2. Создание конфигурации для Caddy

Откройте или создайте файл конфигурации для Caddy в /etc/logrotate.d/caddy:


sudo nano /etc/logrotate.d/caddy

3. Пример конфигурации для ротации логов Caddy

Вставьте в файл следующую конфигурацию:


/var/log/caddy/*.log {

daily

missingok

rotate 14

compress

delaycompress

notifempty

create 0640 root root

postrotate

systemctl reload caddy

endscript

}

Если у вас используется другой пользователь, не root, то замените на него.

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

  • daily: Логи будут ротироваться каждый день. Можно заменить на weekly для еженедельной ротации.

  • rotate 14: Хранить до 14 архивов логов.

  • compress: Сжимать архивы для экономии места.

  • delaycompress: Откладывать сжатие логов до следующей ротации.

  • notifempty: Не ротация, если файл логов пустой.

  • create 0640 root root: Создавать новый файл с правами 0640 и владельцем root.

  • postrotate: После ротации перезапустить службу Caddy, чтобы она начала писать в новый файл.

Проверка работы logrotate

Вы можете проверить правильность конфигурации logrotate с помощью команды:


sudo logrotate -d /etc/logrotate.d/caddy

Эта команда выполняет тест и показывает, как будет проходить ротация, но не вносит изменений.

Запуск logrotate вручную для проверки

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


sudo logrotate -f /etc/logrotate.d/caddy

После этих шагов logrotate будет автоматически ротировать логи Caddy согласно заданным настройкам.