Конфигурация Logrotate: это работает, но всегда держит в курсе пустой журнал

Я переместил вход для openvpn в его собственный журнал и предпринятый для установки вращения журнала для него но я, очевидно, сделал что-то не так.

Вход происходит, как желаемый, но всегда в 2-й файл журналаopenvpn.log.1. 'Текущий' файл журнала openvpn.log существует, но всегда пуст.

-rw------- 1 root root     0 Apr 20 07:35 openvpn.log
-rw------- 1 root root  5411 Apr 20 07:58 openvpn.log.1

Вот мой logrotate конфигурационный файл для openvpn.

/var/log/openvpn.log {
       daily
       rotate 7
       delaycompress
       compress
       notifempty
       missingok
}

Строка в Openvpn server.conf относительно входа

log-append /var/log/openvpn.log

Что я портил?

2
задан 20 April 2018 в 16:57

2 ответа

Необходимо сделать сервис, знающий о вращении журнала. Некоторые сервисы могут быть уничтожены с Сигналом HUP, некоторым, возможно, понадобится полный перезапуск. Возможно, что сервис открывается openvpn.log файл, который переименован к openvpn.log.1.

Попытайтесь добавить:

postrotate
    systemctl restart openvpn.service
endscript

Я не знаю точно, как Ваш сервис называют, таким образом, мое предположение для openvpn.service может быть неправильным.

1
ответ дан 2 December 2019 в 02:43

Согласно этому старому сообщению в openvpn-пользовательском списке рассылки:

вход openvpn сделан путем перенаправления stdout/stderr к файлу журнала

Таким образом, решение состоит в том, чтобы использовать copytruncate опция в logrotate конфигурации:

copytruncate

Усеките исходный файл журнала для обнуления размера на месте после создания копии, вместо того, чтобы переместить старый файл журнала и дополнительно создать новый. Это может использоваться, когда некоторой программе нельзя сказать закрыть ее файл журнала и таким образом могла бы продолжить писать (добавление) в предыдущий файл журнала навсегда. Обратите внимание, что существует очень маленький интервал времени между копированием файла и усечением его, таким образом, некоторые данные регистрации могли бы быть потеряны. Когда эта опция будет использоваться, создать опция не будет иметь никакого эффекта, поскольку старый файл журнала остается на месте.

Это - то, что я имею в моем /etc/logrotate.d/openvpn файл:

/var/log/openvpn.log {
    weekly
    rotate 12
    copytruncate
    compress
    delaycompress
    missingok
    notifempty
}
2
ответ дан 2 December 2019 в 02:43

Другие вопросы по тегам:

Похожие вопросы: