Ротация файлов отладочных сообщений в Yate

Файл "yate.logrotate" - это файл настроек, использующий те же самые опции и инструкции, что и logrotate UNIX-систем. Просто выполните "man logrotate" в командной строке, чтобы убедиться в этом. Вы можете найти его в подкаталоге packing/ Yate. Если вы устанавливаете Yate в качестве службы, этот файл настроек будет находится в /etc/logrotate.d/yate, как и файлы настроек всех остальных служб и приложений в операционной системе.

Зачем нужна ротация файлов отладочных сообщений (logrotate)?

Logrotate - это приложение, работающее, как ежедневное задание cron. Оно упрощает управление системными файлами отладочных сообщений (логами).
С его помощью эти файлы можно сжимать, очищать, удалять или отправлять по адресу электронной почты.

Подготовка ротации файлов отладочных сообщений (логов)

Скопируйте файл "packing/yate.logrotate в /etc/logrotate.d под именем yate и, при необходимости, отредактируйте его. Обратите внимание, что автоматическая очистка файлов отладочных сообщений выполняется раз в день, поэтому проследите, что размер их не превышает 2 Гб за сутки.
Вам необходимо сделать владельцем файла суперпользователя (root):

 cp packing/yate.logrotate /etc/logrotate.d/yate
 chown root.root /etc/logrotate.d/yate

Если логи слишком быстро увеличиваются в объёме, попробуйте снизить уровень подробности отладочных сообщений (помодульно) или настройте logrotate так, чтобы он срабатывал чаще. Например, можно переместить сценарий logrotate из /etc/cron.daily в /etc/cron.hourly.

Как это работает?

Помимо обычных опций и инструкций, файл настроек ротации логов /etc/logrotate.conf включает другие файлы настроек, расположенные в /etc/logrotate.d. Другие пакеты установят свои файлы настроек для соответствующей ротации логов программ, содержащихся в них. Это же относится и к yate.logrotate, автоматически очищающему содержимое лога yate.

Ниже можно увидеть содержимое этого файла настройки:

Содержимое /etc/logrotate.d/yate:

# Have to rotate the log and CDR files before each reaches 2GB in size
/var/log/yate /var/log/yate-cdr.tsv {
    size=100M
    rotate 5
    missingok
    sharedscripts
    notifempty
    postrotate
    /bin/kill -HUP `/bin/cat /var/run/yate.pid`
    endscript
}

Согласно файлу настроек, logrotate управляет файлами yate и yate-cdr.tsv, очищая их каждый раз, когда их объём превышает 100 Мб. Каждый день logrotate будет проверять, не превысили ли файлы указанный предел. В противном случае, файлы будут очищены. 
Настроенное количество операций очистки равняется 5-ти.
После указанного промежутка времени, logrotate начнёт перезаписывать файлы. Это сделано для того, чтобы предотвратить падение Yate из-за превышения файлом /var/log/yate объёма в 2 Гб.
В случае отсутствия файла, сообщение об ошибке выведено не будет, но в таком случае он не будет очищен.
Команда "kill -HUP" отправляет Yate сообщение о потере соединения с управляющим терминалом пользователя (SIGHUP) каждый раз, когда файл отладочных сообщений очищен.

Подготовка сценария службы

Вам понадобится скопировать и переименовать соответствующий файл yate.init из подкаталога packing/ в /etc/init.d, куда установлены все сценарии запуска служб. Помните, что сценарий и дополнительные инструменты зависят от используемого дистрибутива Linux.
Для выполнения следующей команды необходимы права суперпользователя (root):

 cp packing/rpm/yate.init /etc/init.d/yate
 chown root.root /etc/init.d/yate

Замените rpm выражением, соответствующим типу пакетов, используемым менеджером пакетов вашего дистрибутива.

Вам будет необходимо отредактировать файл запуска (init-файл) и изменить путь исполнения с /usr/bin на /usr/local/bin.
Вы также можете изменить ключи команды для получения более подробных отладочных сообщений. Для добавления временных меток в сообщениях отладки добавьте ls.

Как этим пользоваться?

Чтобы использовать yate.logrotate, активируйте опцию автоматической очистки сообщений отладки при запуске службы Yate.

Для использования ключа -r необходимо активировать управляемый режим и присвоить имя файлу отладочных сообщений. Для этого запустите Yate с добавлением к команде yate ключей -s -r -l.
В случае запуска yate в качестве службы с активированной ротацией логов, сами файлы можно найти в /var/log/yate. В противном случае, их можно найти в директории сборки. Чтобы узнать больше о команде запуска yate, выполните yate --help.

ПОДПИСАТЬСЯ