воскресенье, 1 мая 2016 г.

Включение логов full и security в Asterisk 13 и ежедневная ротация логов.

В Asterisk правила логирования определяются в файлах
1) /etc/asterisk/asterisk.conf  - содержит переменную astlogdir, которая указывает местоположение логов asterisk (по умолчанию - /var/log/asterisk)
2) /etc/asterisk/logger.conf. В этом файле можно задать различные опции для ведения логов, а также указать, какие виды информации в эти логи сохранять.

Настраиваем полное логгирование в Asterisk (full).

Открываем файл конфигурации функции логирования logger.conf
# nano /etc/asterisk/logger.conf
Раскомментируем / прописываем строчку в блоке [logfiles]
security => security
Данная строчка с security доступна в Asterisk c 10ой версии и выше.
Далее прописываем / расскомментируем
full => notice,warning,error,debug,verbose,dtmf,fax
Раскомментируем / прописываем строчку в блоке [general] для правильного отображения времени следующую строчку:
dateformat=%F %T
По умолчанию время пишется вот так:
[Apr 28 11:23:08]
После задания формата будет писаться так:
[2016-04-28 11:25:16]
Сохраняемся и выходим из файла.

Перезапускаем службу логов в Asterisk:
# asterisk -rx 'logger reload'
Смотрим какие логи сейчас включены командой:
# asterisk -rx 'logger show channels'

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

Что бы логи Asterisk не разрастались нужно включить ротацию логов
В папке /etc/logrotate.d создаём файл asterisk
# touch /etc/logrotate.d/asterisk
Редактируем его:
# nano /etc/logrotate.d/asterisk
Содержимое файла:
/var/log/asterisk/security
/var/log/asterisk/messages
/var/log/asterisk/full {
    missingok 
    daily
    noolddir 
    nocreate 
    nocopytruncate
    rotate 3
    size=10M
    postrotate
       /usr/sbin/asterisk -rx 'logger reload' > /dev/null 2> /dev/null 
    endscript

Если Asterisk младше 10ой версии (1.8, 1.6), то строчку 
/var/log/asterisk/security 
нужно убрать.
Параметры здесь:
missingok – отсутствие файла не является ошибкой
daily – выполнять каждый день
noolddir – держать все файлы в одном и том же каталоге
nocreate  - не создавать новый log файл. Это сделает сам Asterisk.
nocopytruncate – будет выполнено переименование старого файла логов и создание нового.
nocreate – не создавать нового файла логов
rotate 3 – количество хранимых фрагментов
size=10M – ротация будет проведена, только если размер файла будет больше 10Мбайт.
Между postrotate и endscript расположены команды интерпретатора sh(1), исполняемые непосредственно после ротации

Для проверки изменений нужно запустить команду (никаких действий с логами не будет выполнено):
# logrotate -d /etc/logrotate.conf
Перезапускать службу не нужно. Утилита logrotate запускается по умолчанию через приложение cron.

Комментариев нет:

Отправить комментарий