img

Как собрать логи Asterisk?

IP – АТС Asterisk – сложная система обработки телефонных вызовов, состоящая из различных драйверов и модулей. Зачастую системные администраторы сталкиваются с неисправностью того или иного функционала: не работает входящая/исходящая связь, односторонняя слышимость, проблемы с внутренними номерами и так далее. Чтобы решить данные проблемы, надо понять их суть – посмотреть в журнал (лог – файл) Asterisk и узнать, что же происходит на самом деле. О том, как правильно собрать логи, их глубина и параметры, а также про сбор сетевого дампа расскажем в этой статье.


Настройка логирования

Приступаем к настройке. Для этого, нам необходим посмотреть содержимое файла /etc/asterisk/logger.conf. Давайте откроем его:

[root@asterisk ~]# cat  /etc/asterisk/logger.conf
[general]
#include logger_general_additional.conf
#include logger_general_custom.conf

[logfiles]
#include logger_logfiles_additional.conf
#include logger_logfiles_custom.conf
Как собрать логи Asterisk?

Как видим, в данный файл включен «кастомная» настройка – файл logger_logfiles_custom.conf . В нем мы и будем производить необходимые настройки. Допустим, мы хотим записывать в файл logs_ echo date("Ymd"); основные события. Для этого, откроем для редактирования файл и добавим в него следующую запись:

[root@asterisk ~]# vim logger_logfiles_custom.conf
 logs_ echo date("Ymd");  => notice,warning,error,debug,verbose,dtmf

Сохраняем изменения нажатием :x!.

Начиная с 13 версии Asterisk, существует возможность создавать задачи на логирования прямо из консоли. Для этого существует команда logger add channel . Например:
logger add channel logs_ echo date("Ymd");   notice,warning,error,debug,verbose,dtmf
Логирование будет остановлено при следующем рестарте Asterisk.

Глубина записи логов

В Asterisk можно задавать глубину логирования параметром verbose и debug. Первый режим более информативен для администратора, когда необходимо оперативно понять причину неисправности, тогда как второй режим более полезен для более глубоко анализа. Глубина задается от 1 до 10, где 10 – максимальный уровень информативности:

asterisk*CLI> core set verbose 3
asterisk*CLI> core set debug 3

После этого, необходимо перезагрузить модуль логирования:

asterisk*CLI> module reload logger

Дебаг на уровне каналов

В Asterisk можно производить дебаг на уровне отдельных драйверов. Например, если вы хотите отладить подключения по протоколу SIP – своя команда, по IAX – другая. Ниже представлен список:

Драйвер Команда отладки
SIP (версия вышел 1.6) sip set debug on
SIP (версия 1.4) sip set debug
PJSIP pjsip set logger on
Запись CDR cdr set debug on
IAX2 (версия вышел 1.6) iax2 set debug on
IAX2 (версия 1.4) iax2 set debug

Остановить логирование

Когда отладка закончена, необходимо вернуть все в первоначальный вид. Отключаем дополнительный дебаг:

asterisk*CLI> core set verbose 0
asterisk*CLI> core set debug 0

Чтобы выключить дебаг на конкретных каналах, даем команду вида:

asterisk*CLI> sip set debug on
asterisk*CLI> iax2 set debug off

Далее, в файле /etc/asterisk/logger.conf закомментируйте или удалите добавленную строчку. После этого перегружаем модуль логирования:

asterisk*CLI> module reload logger

Дебаг Asterisk в файл

Прямо из консоли можно добавлять дебаг в файл. Для этого, его необходимо первоначально создать. Например:

[root@asterisk ~]# touch /home/asterisk_cli.txt

Далее, вызываем консоль сервера IP – АТС Asterisk следующим способом:

[root@asterisk ~]# asterisk -rvvvv | tee /home/asterisk_cli.txt

В открывшейся консоли дайте одну из перечисленных команд дебага, например, sip set debug on. Весь вывод будет сохранен в указанном файле. По окончанию укажите в консоли sip set debug off и quit.


Сетевой дамп Asterisk для анализа в Wireshark

Простейшим способом снять сетевой дамп является утилита tcpdump. Чтобы ей воспользуйтесь командой:

[root@asterisk ~]# tcpdump -s 0 -w /home/dump.cap

Затем, после снятия необходимого дампа, Вы сможете сохранить файл dump.cap в директории /home себе на компьютер, для последующего анализа. Помимо этого, в команде есть возможность дать дополнительные ключи, например -i eth0 - указание интерфейса, с которого необходимо снять дамп, а port 5060 - указать порт, на который приходят пакеты.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Еще по теме:
img
Мы создали калькулятор инсталляции IP - АТС Asterisk. При планировании сервера и необходимого оборудования заполните соответствующие поля для расчета производительности, шлюзов и плат
img
Скачать руководство администратора Cisco UCM/CME на русском языке
img
Скачать руководство администратора FreePBX на русском языке
img
Рассказываем как рассчитать пропускную способность для IP-вызовов Cisco
img
Рассказываем как настроить отправку СМС сообщений из контакт-центра Октелл через Ростелеком СМС Реклама