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 - указать порт, на который приходят пакеты.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Привет, дорогой читатель! В повседневной работе зачастую не хватает автоматизации. Поэтому, мы решили создать калькулятор инстал
img
Мы подумали, а почему бы не консолидировать все знания по Cisco VoIP продуктам и их настройке в единый документ? Добавить в них
img
Привет! Для удобства, мы структурировали все материалы по графическому интерфейсу FreePBX в нашей базе знаний в единый файл. Сам
img
Вам, как сетевому инженеру, крайне важно разбираться в том, каким образом вызовы VoIP влияют на пропускную способность канала в
img
В этой статье расскажем как отправлять различные СМС сообщения пользователям, позвонившим в контакт-центр Октелл и запросившим т
img
Всем современным кампаниям, производящим товары и оказывающим услуги, необходимо иметь специалистов, работающих с потенциальными
ЗИМНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59