Установка asterisk 16 на debian 10

Дополнительные материалы по Zabbix

Онлайн курсы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте .

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

  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.
Рекомендую полезные материалы по Zabbix:
Настройки системы
  • Установка 4.0
  • Обновление 3.0 -> 3.2
  • Обновление 3.4 -> 4.0
  • Установка Zabbix Proxy
  • Работа на NGINX

Видео и подробное описание установки и настройки Zabbix 4.0, а также установка агентов на linux и windows и подключение их к мониторингу.

Подробное описание обновления системы мониторинга zabbix версии 3.4 до новой версии 4.0.

Пошаговая процедура обновления сервера мониторинга zabbix 2.4 до 3.0. Подробное описание каждого шага с пояснениями и рекомендациями.

Подробное описание установки и настройки zabbix proxy для организации распределенной системы мониторинга. Все показано на примерах.

Подробное описание установки системы мониторинга Zabbix на веб сервер на базе nginx + php-fpm.

Мониторинг служб и сервисов
 
  • Температура процессора
  • Nginx и php-fpm
  • Mysql репликация
  • Службы Linux
  • Рейд mdadm
  • Транки Asterisk
  • Synology

Мониторинг температуры процессора с помощью zabbix на Windows сервере с использованием пользовательских скриптов.

Настройка полноценного мониторинга web сервера nginx и php-fpm в zabbix с помощью скриптов и пользовательских параметров.

Мониторинг репликации mysql с помощью Zabbix. Подробный разбор методики и тестирование работы.

Описание настройки мониторинга tcp служб с помощью zabbix и его инструмента простых проверок (simple checks)

Настройка мониторинга рейда mdadm с помощью zabbix. Подробное пояснение принципа работы и пошаговая инструкция.

Подробное описание мониторинга регистраций транков (trunk) в asterisk с помощью сервера мониторинга zabbix.

Подробная инструкция со скриншотами по настройке мониторинга по snmp дискового хранилища synology с помощью сервера мониторинга zabbix.

Мониторинг различных значений
  • Мониторинг сайта
  • Мониторинг бэкапов
  • Размер бэкапа
  • Делегирование домена
  • Значения из текстового файла
  • Мониторинг логов

Настройка мониторинга web сайта в zabbix. Параметры для наблюдения — доступность сайта, время отклика, скорость доступа к сайту.

Один из способов мониторинга бэкапов с помощью zabbix через проверку даты последнего изменения файла из архивной копии с помощью vfs.file.time.

Подробное описание настройки мониторинга размера бэкапов в Zabbix с помощью внешних скриптов.

Пример настройки мониторинга за временем делегирования домена с помощью Zabbix и внешнего скрипта. Все скрипты и готовый шаблон представлены.

Пример распознавания и мониторинга за изменением значений в обычных текстовых файлах с помощью zabbix.

Описание мониторинга лог файлов в zabbix на примере анализа лога программы apcupsd. Отправка оповещений по событиям из лога.

Подключение GSM модема

Здесь собранная копипаста из разных источников:

  • E171 — ОК

  • E1550 — ОК

  • E150 — Голос только в одну сторону

  • E3131 — Работают не стабильно, при исходящих голос только в одну сторону

  • E352 — Нет голосовых функций

    Подключаем GSM-модем HUAWEI E1550, проверяем появились ли устройства ttyUSB*:

Чтобы при подключении GSM-модема, Asterisk имел доступ к нему, необходимо устройству назначить владельца asterisk и группу dialout. Создаем файл (nano /etc/udev/rules.d/92-dongle.rules) со следующим содержимым:

KERNEL==»ttyUSB*», MODE=»0666″, OWNER=»asterisk», GROUP=»dialout»

Перезагружаем raspberry командой reboot и переподключаемся к атс с помощью Putty.

Настройка файла dongle.conf ( nano /etc/asterisk/dongle.conf ) — проверяем параметр exten и прописываем imei модема, остальное можно не трогать:

В консоли asterisk, перечитываем конфигурацию chan_dongle и проверяем состояние устройства. Если все было сделано правильно, то подключение к GSM-модему будет осуществлено и устройство будет отображаться в консоли asterisk:

Настройка файла конфигурации для звонков и смс (настраивал только входящие смс с переадресацией на настроенный extension) :

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

Анализ sip трафика asterisk с помощью sngrep

Давайте посмотрим, что у нас происходит во время регистрации у провайдера. В данном случае это проект zadarma. Запускаем в одной консоли sngrep, а в другой выполняем команду, в результате которой в том числе обновятся все регистрации.

# asterisk -rx "sip reload"

Смотрим консоль с sngrep. Там появилась строка с командой register.

Выбираем ее и жмем Enter. Проваливаемся в более подробную информацию о событии. Направления стрелок указывают направления передачи информации. Сначала наш сервер отправил запрос на регистрацию.

Потом удаленный сервер прислал ответ о том, что все в порядке.

Обращаю внимание на выделенный параметр expires=120. Это время действия регистрации, которую установил для нас сервер

Она равна двум минутам. Если мы посмотрим на левый столбец последнего скрина, то заметим, что повторный запрос на регистрацию нашим сервером был отправлен через 105 секунд. Это время expires — 15 секунд.

Дальше подключим нового абонента к нашему серверу и посмотрим на его регистрацию. Это будет софтофон с номером 100.

Смотрим подробности обмена информацией.

Клиент с user-agent 3CXPhone запросил регистрацию с временем 120. Наш сервер зарегистрировал его с указанными параметрами.

Теперь предположим, что к нам подключается очень много клиентов и мы хотим увеличить интервал регистрации с 120 секунд до 600 (10 минут), чтобы на сервер сыпалось поменьше запросов. Мы можем указать этот параметр на стороне каждого клиента, но это более хлопотно. Вместо этого изменим минимальное время регистрации на сервере. Проверим, какое оно установлено сейчас.

# asterisk -rx "sip show settings" | grep "Reg. min duration\|Reg. max duration\|Reg. default duration"

Reg. min duration 60 secs
Reg. max duration: 3600 secs
Reg. default duration: 120 secs

Изменим параметр Reg. default duration и Reg. min duration до 600 секунд. Для этого добавляем в sip.conf в блок параметры.

defaultexpiry=600
minexpiry=600

Перечитываем настройки.

# asterisk -rx "sip reload"

Открываем в консоли sngrep и снова подключаемся тем же софтфоном. Проверяем регистрацию.

Клиент шлет запрос с Expires: 120, мы ему подтверждаем регистрацию с нашим временем — 600.

Повторно за регистрацией абонент придет теперь только через 10 минут.

MEDIA & RTP Settings

Reinvite Behavior

Поведение ReInvite — см. подробнее >

  • yes: стандартный reinvite;
  • no: никогда не использовать reinvite;
  • nonat: дополнительная опция, разрешающая перенаправить медиа поток (reinvite), но только если пир установлен не за NATом (RTP может определить это на основе ИП адресов абонентов)
  • update: используется специальный SIP пакет UPDATE для принятия решения о перенаправлении вместо пакета INVITE. (Значение yes соответствует = update + nonat)

RTP Timers

rtptimeout. Завершает звонок если в установленное в секундах значение rtptimeout не обнаруживается активности RTP или RTCP в аудио канале и если абонент не поставлен на Hold (ожидание). Это позволяет завершить звонок в случае внезапного исчезновения телефона из сети, например при потере питания или повреждении кабеля Ethernet.

rtpholdtimeout. Завершает звонок если в установленное в секундах значение rtpholdtimeout не обнаруживается активности RTP или RTCP в аудио канале при состоянии on Hold (в ожидании). Значение должно быть > чем rtptimeout.

rtpkeepalive. Посылает пакеты rtpkeepalive в RTP поток для поддержки открытых динамических трансляций NAT в то время, когда RTP поток может например стоять на удержании.

  • 30 (rtptimeout)
  • 300 (rtpholdtimeout)
  • 0 (rtpkeepalive)

Создание пользователя asterisk и запуск

По-умолчанию, asterisk установлен от root и будет запускаться от него же. Я предлагаю для этого создать отдельного пользователя и запускать астериск от него. Для этого создаем пользователя и добавляем его в некоторые группы.

# groupadd asterisk
# useradd -r -d /var/lib/asterisk -g asterisk asterisk
# usermod -aG audio,dialout asterisk
# chown -R asterisk.asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib64/asterisk

Настраиваем Asterisk на запуск под этим пользователем. Для этого добавляем в конфиг /etc/sysconfig/asterisk параметры:

AST_USER="asterisk"
AST_GROUP="asterisk"

Теперь добавим примерно то же самое в сам конфиг астера /etc/asterisk/asterisk.conf.

runuser = asterisk
rungroup = asterisk

Пробуем запустить asterisk:

# systemctl start asterisk

Если нет сообщений об ошибке, скорее всего все в порядке. Проверяем статус службы.

# systemctl status asterisk

Asterisk запустился, но есть небольшие ошибки.

radcli: rc_read_config: rc_read_config: can't open /etc/radiusclient-ng/radiusclient.conf: No such file or directory

Связаны с тем, что в конфигах неверно указан путь к radiusclient. Сейчас исправим это.

# sed -i 's";\"\"g' /etc/asterisk/cdr.conf
# sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cdr.conf
# sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cel.conf

Перезапускаем asterisk и убеждаемся, что ошибок нет. Проверим, все ли в порядке, зайдя в консоль:

# asterisk -r

Если получили такой же вывод команды, значит все в порядке, астериск 16 установлен. Добавим его теперь в автозагрузку.

# systemctl enable asterisk

FreePBX Настройка AsteriskNOW

Для настройки системы с помощью FreePBX, откройте ваш любимый веб-браузер на другом компьютере,
Введите http адрес указанный во время загрузки: «To configure AsteriskNOW with FreePBX, point your web browser to http://xx.xx.xx.xx/.»
(По умолчанию, сетевой интерфейс настроен для получения ip адреса по DHCP.
Если в вашей сети настроен dhcp и вы подключили сетевой кабель, адрес будет отображен как указано на скриншоте загрузки.)
Итак откроем указанный адрес в браузере, если все в порядке отобразится следующее:

Отсюда, зайдем по «FreePBX Administration» ссылке. Нажмите ее, и вы увидите экран входа в FreePBX:

  • Имя пользователя по умолчанию: admin

  • Пароль по умолчанию: admin

После успешного входа вы увидите панель FreePBX:

Обратите внимание на красную кнопку Apply Config. Она будет появляться каждый раз, после внесения любых изменений на странице

Если вы видите это, она должна быть нажата, будут применены любые изменения сделанные в системе FreePBX.
Это руководство предполагает, что всякий раз, когда вы видите Apply Config, вы нажимаете это.

Далее, поменяем пароль администратора по умолчанию. Это необходимо! Если этого не сделать может произойти неприятность

Важность этого нельзя недооценивать.

В первую очередь посетим инструмент Admin>Administrators

Далее, выберите admin в правой колонке:

И измените пароль администратора

Обновление модулей FreePBX

Наконец, следует обновить устаревшие модули в системе FreePBX.

Чтобы сделать это, посетим инструмент Admin>Module Asministration:

Нажмите кнопку Check Online и вы увидите все доступные для обновления модули:

Для обновления модуля, щелкните по нему, а затем выберите опцию загрузки

Наконец, нажмите кнопку Process и следуйте инструкциям для завершения обновления модуля.

Обновление, Поиск и Удаление пакетов

После завершения установки AsteriskNOW, все пакеты для работы Asterisk установлены. Однако часто доступны системные обновления .
AsteriskNOW содержит несколько Yum репозиториев в дополнение к тем, которые есть в CentOS.
Это asterisk-current/asterisk-tested и digium-current/digium-tested.
В asterisk- репозитории содержат пакеты для Digium- открытого программного обеспечения (например, Asterisk, libpri и DAHDI).
В digium- репозитории содержится несвободное или коммерческое программное обеспечение
(например, Digium Phone модуль для Asterisk, G.729 для Asterisk, Факс для Asterisk, и HPEC модуль эхоподавления).
Это позволяет устанавливать дополнительное программное обеспечение, чтобы оставаться в курсе последних изменений.
Пакеты могут быть установлены или удалены с помощью `yum install <package>` и`yum remove <package>` соответственно.
Обновления рекомендуется регулярно устанавливать с помощью `yum update`.
Для получения полного списка доступных и установленных пакетов, вы можете использовать `yum list | less`.

Registration Settings

Registrations

registertimeout. Повторяет попытки регистрации каждые N секунд, указанные в registertimeout до успешной регистрации, или при достижении указанного ограничения в registrationattempts.

registrationattempts. Количество попыток регистрации. Значение 0 соответствует бесконечному числу попыток. Обычное значение указывается 0 для того, чтобы Астериск продолжал попытки зарегистрироваться при пропадании локальной сети или маршрута в публичных сетях.

  • 20 (registertimeout)
  • 0 (registerattempts)
Registration Times

minexpiry. Минимальное значение действия регистрации/подписки.

maxepiry. Максимально возможное время действия для входящих регистраций.

defaultexpiry. Дефолтное значение действия входящих и исходящих регистраций.

  • 60 (minexpiry)
  • 3600 (maxexpiry)
  • 120 (defaultexpiry)

Advanced General Settings

Bind Address

IP адрес на котором ‘слушаются’ входящие вызовы. Если указано 0.0.0.0, то будут «прослушиваться» все доступные IP адреса. Рекомендуется оставить это поле ПУСТЫМ.

Bind Port

Входящий порт на котором Asterisk будет слушать SIP сообщения. Стандартный порт 5060. Например, если вы назначите порт 5666, входящие SIP сообщения на другие порты будут просто игнорироваться. Рекомендуется отставить это поле пустым.

Allow SIP Guests

Разрешить неавторизованные SIP вызовы. Звучит опасно, но на самом деле позволяет вызывать абонента Asterisk незарегистрированному абоненту по SIP URI: user@asterisk_domain.
Yes/No

Allow Anonymous Inbound SIP Calls

В данном случае рассматриваются анонимные SIP запросы, не имеющие определенного адресата. Если включить они попадут в контекст from-sip-exteral (если не задано другое в )
Yes/No

Генерировать события AMI на основании действий UA во время вызова (например HOLD).

Yes/No

Other SIP Settings

Добавьте кастомные установки, которые вам требуются.

Например:

alwaysauthreject = yes всегда отвечать на SIP запрос — SIP «401 Unauthorized»

  • prematuremedia = no
  • progressinband = yes

транслировать КПВ или сообщение из канала (например, по умолчанию, при вызове на занятый или отключенный мобильный телефон, Астериск сообщит что все канала заняты, что вводит пользователей в замешательство. Включенная установка progressinband позволит транслировать в канал сообщение о занятости или недоступности абонента от провайдера.

В данном модуле настраивается транспортный уровень драйвера pjsip.

2016/11/26

Создание шаблона мониторинга asterisk на сервере zabbix

Нам нужно создать шаблон на сервере, для назначения его серверам с астериском. Здесь ничего сложного, делаем все то же самое, что мы делали ранее, настраивая мониторинг рейда mdadm. Идем в раздел Configuration -> Templates, нажимаем Create template.

Пишем название и добавляем его в группу с шаблонами.

Открываем шаблон, переходим в раздел Items и жмем на Create item. Заполняем параметры нового итема как на картинке.

Я поставил интервал проверок 120 секунд = 2 минуты. Вы можете поменять под свои нужды этот параметр. Сохраняем новый итем.

Для сбора данных все готово. Теперь назначаем шаблон серверам с астериском, где мы подготовили агенты мониторинга и скрипты и ждем поступления данных. Проверять как обычно идем в Latest data. Через пару минут должны поступить значения.

У меня пришло значение 0 как и должно быть. Все регистрации на месте. Теперь нам нужно добавить триггер, который будет отправлять уведомление, если какая-нибудь из регистраций отвалится. Для этого идем в созданный шаблон и переходим в раздел Triggers. Жмем Create trigger и указываем значения, как у меня.

Если 3 последние проверки покажут значение, отличное от 0, сработает триггер и прилетит уведомление на почту. Сохраняем триггер. На этом все. Можете проверить работу любым способом, который придумаете. Например, временно измените пароль на одном из транков, или добавив новый с несуществующими параметрами. Можно и не проверять, все должно и так работать :)

Установка и настройка Freepbx

Скачиваем последнюю версию Freepbx с сайта разработчика.

# cd ~ && wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-15.0-latest.tgz

Распаковываем исходники.

# tar xvfz freepbx-*.tgz

Переходим в каталог freepbx и запускаем скрипт проверки запуска asterisk.

# cd freepbx && ./start_asterisk start

Если не получили ошибок, то запускаем установку непосредственно FreePBX.

# ./install -n

Если получили ошибку php:

PHP Fatal error: Uncaught Error: Call to a member function connected() on null in /root/freepbx/amp_conf/htdocs/admin/libraries/BMO/Framework.class.php:180

Запустите установку еще раз

# ./install -n

Она должна пройти без ошибок, но freepbx не будет работать корректно, так как не сможет подключиться к asterisk. После повторной установки надо открыть конфиг /etc/asterisk/manager.conf и в конце строки

#include manager_additional.conf
#include manager_custom.conf

заменить на

;include manager_additional.conf
;include manager_custom.conf

И убедиться, что указан параметр secret с паролем amp111. Если это не так, отредактируйте строку.

secret = amp111

Если этого параметра вообще нет, то добавить в секцию . После этого надо еще раз запустить установку freepbx, в третий раз. После этого ошибок быть не должно и freepbx будет корректно работать.

Если все прошло без ошибок, то можно проверять работу Freepbx. Но перед этим отключим Firewall, если он у вас работает.

# systemctl stop firewalld && systemctl disable firewalld

Я не хочу в этой статье касаться его настройки. Подробно вопрос настройки firewall я рассмотрел отдельно. Там можно узнать все нюансы. Здесь же я прото скажу, что для начала нам нужно открыть 80-й порт, чтобы мы смогли работать с веб интерфейсом:

iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

Для полноценной работы астериск, нужно открыть следующие порты:

iptables -A INPUT -p udp -m udp --dport 5060 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 5061 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 5060 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 5061 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 4569 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 5038 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 5038 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT

Теперь можно запустить httpd.

# systemctl start httpd

Добавляем его в автозагрузку:

# systemctl enable httpd

На этом установка закончена Freepbx. Можно зайти браузером на страницу с ip адресом сервера. У меня это http://85.143.175.176 Открывается начальная страница freepbx, где нам предлагается создать нового пользователя:

Создаем пользователя и заходим в web интерфейс управления астериском:

Вот и все, дальше можно заниматься настройкой. Раньше следующим разделом шла информация по автозагрузке freepbx, но в данный момент эта информация неактуально. Отдельно автоазгрузку для freepbx настраивать не надо. Она по дефолту автоматически запускается при старте системы.

Что такое ELK Stack

Расскажу своими словами о том, что мы будем настраивать. Ранее на своем сайте я уже рассказывал о централизованном сборе логов с помощью syslog-ng. Это вполне рабочее решение, хотя очевидно, что когда у тебя становится много логов, хранить их в текстовых файлах неудобно. Надо как-то обрабатывать и выводить в удобном виде для просмотра. Именно эти проблемы и решает представленный стек программ:

  • Elasticsearch используется для хранения, анализа, поиска по логам.
  • Kibana представляет удобную и красивую web панель для работы с логами.
  • Logstash сервис для сбора логов и отправки их в Elasticsearch. В самой простой конфигурации можно обойтись без него и отправлять логи напрямую в еластик. Но с logstash это делать удобнее.
  • Beats — агенты для отправки логов в Logstash. Они бывают разные. Я буду использовать Filebeat для отправки данных из текстовых логов linux и Winlogbeat для отправки логов из журналов Windows систем.

К этой связке еще добавляется Nginx, который проксирует соединения на Kibana. В самом простом случае он не нужен, но с ним удобнее. Можно, к примеру, добавить авторизацию или ssl сертификат, в nginx удобно управлять именем домена. В случае большой нагрузки, разные службы разносятся по разным серверам или кластерам. В своем примере я все установлю на один сервер. Схематично работу данной системы можно изобразить вот так:

Начнем по этапам устанавливать и настраивать все компоненты нашей будущей системы хранения и обработки логов различных информационных систем.

Если у вас еще нет своего сервера с CentOS 8, то рекомендую мои материалы на эту тему:

  • Установка CentOS 8.
  • Настройка CentOS.

Если у вас еще не настроен сервер с Debian, рекомендую мои материалы на эту тему:

  • Установка Debian на сервер
  • Базовая настройка Debian после установки
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: