Настройка базового High-Availability кластера под Asterisk на Centos 7
Данная статья является первой из небольшого цикла статей по настройке кластеризации для IP-АТС Asterisk, разворачиваемой на операционной системе Centos 7. На тестовом стенде собраны две ноды со следующими параметрами сети: Node 1: 192.168.170.187 — сеть офиса с выходом в интернет 10.10.56.101 — адрес для синхронизации кластера — прямой линк между нодами Node 2: сеть настроена […]
Данная статья является первой из небольшого цикла статей по настройке кластеризации для IP-АТС Asterisk, разворачиваемой на операционной системе Centos 7.
На тестовом стенде собраны две ноды со следующими параметрами сети:
Node 1:
192.168.170.187 — сеть офиса с выходом в интернет
10.10.56.101 — адрес для синхронизации кластера — прямой линк между нодами
Node 2:
сеть настроена по аналогии и имеет следующие ip:
192.168.170.205
10.10.56.102
192.168.170.20 — виртуальный «разделяемый» ip-адрес
Перед началом настройки рекомендуется обновить ОС, выполнив команду
yum update
Сначала необходимо сменить имена хостов на обе ноды, выполнив команды:
hostnamectl set-hostname main.test
hostnamectl set-hostname rezerv.test
Далее необходимо в
файле /etc/hosts прописать имена хостов и
их соответсвие ip
192.168.170.187
master.test
192.168.170.205 rezerv.test
10.10.56.101 node1
10.10.56.102 node2
После этого можно командой ping проверить доступность нод между собой, например введя на первой ноде команду ping node2, в результате ответы должны будут приходить с адреса прямого линка второй ноды.
Аналогично можно пропинговать по имени и первую ноду
Перед установкой необходимых утилит нужно подключить репозиторий epel, коммандой
yum install epel-release
Следующим шагом будет установка пакетов инструментария настройки Pacemaker. выполняется командой:
yum install pcs pacemaker fence-agents-all psmisc policycoreutils-python
В процессе установки автоматически будут установлены все необходимые зависимости.
На этапе настройки рекомендуется отключить файервол и временно убрать его из автозагрузки, командами:
systemctl stop firewalld && systemctl disable firewalld
Далее необходимо запустить Pacemaker и добавить его в автозагрузку командой:
systemctl start pcsd && systemctl enable pcsd
Перед созданием кластера необходимо установить пароль для пользователя hacluster с помощью команды: echo <strongpasswd> | passwd —stdin hacluster, где <strongpasswd> необходимо заменить на любой пароль, пароли должны совпадать на обоих хостах.
Для проверки корректности необходимо аутентифицироваться под пользователем hacluster с любой ноды с помощью команды:
pcs cluster auth node1 node2 -u hacluster -p <strongpasswd> --force
В выводе должно показать что на оба хоста прошла авторизация
Далее необходимо создать кластер с указанием входящих в него узлов, для этого необходимо запустить команду: pcs cluster setup —force —name ForAsterisk node1 node2, имя кластера можно указать любое, в данном примере используется имя ForAsterisk
Далее кластер запускается командой:
pcs cluster start --all
При использовании ключа —all кластер запустится на всех сконфигурированных узлах.
Для проверки состояния кластера необходимо использовать команду pcs status, ее вывод должен показать что онлайн два узла: node1 и node2
Также в выоде статуса
видно оповещение:
WARNINGS:
No stonith devices and stonith-enabled is not false
Данное сообщение не указывает на ошибку, для дальнейшей настройки временно рекомендуется отключить STONITH, командой:
pcs property set stonith-enabled=false
Состояние можно проверить командой:
pcs property show stonith-enabled
Так как в данной схеме кластеризации используется всего два узла, то необходимо отключить quorum, так как данный параметр необходим только в том случае если в кластере в какой-то момент становится доступно более половины узлов. Отключение выполняется командой:
pcs property set no-quorum-policy=ignore
Статус данного параметра проверяется командой:
pcs property show no-quorum-policy
Если вывод на обоих узлах показывает статус ignore — соответственно отключение прошло корреткно.
Следующим шагом необходимо добавить в кластер ресурсы с помощью команды:
pcs resource create PBX_VirtIP ocf:heartbeat:IPaddr2 ip=192.168.170.20 cidr_netmask=24 op monitor interval=30s
PBX_VirtIP — произвольное имя сервиса
ocf:heartbeat:IPaddr2 — Данная конструкция указывает heratbeat на то какой скрипт использовать
ip=192.168.170.20 — указывает какой ip установить в качестве виртуального
op monitor interval — в данном параметре задается интервал проверки здоровья сервисов:
Далее можно произвести проверку — выключить первый узел и проверить статус на резервном узле командой pcs status — вывод должен показать что виртуальный адрес присвоен резервному узлу — а также что первый узел в режиме оффлайн.
Также с помощью команды ip addr необходимо убедиться что виртуальный адрес присвоен интерфейсу, смотрящему в локальную сеть.
Если после перезагрузки узла кластер не запускается, то первым делом необходимо проверить добавлены ли необходимые службы в автозапуск. Если не добавлены, то необходимо добавить с помощью команды:
systemctl enable pcsd && systemctl enable corosync && systemctl enable pacemaker
Также необходимо разрешить автозапуск созданного кластера командой:
pcs cluster enable --all
Для переключения активной ноды необходимо выполнить команду:
pcs resource move <имя_ресурса> <имя_ноды>
Остались вопросы?
Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
VoIP оборудование
ближайшие курсы
Новые статьи
10 доводов в пользу Asterisk
Распространяется бесплатно.
Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.
Безопасен в использовании.
Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.
Надежен в эксплуатации.
Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.
Гибкий в настройке.
Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.
Имеет огромный функционал.
Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.
Интегрируется с любыми системами.
То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.
Позволяет телефонизировать офис за считанные часы.
В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.
Отличная масштабируемость.
Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.
Повышает управляемость бизнеса.
Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.
Снижает расходы на связь.
Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.
В этом случае есть проблема. Брандмауэр настроен на перенаправление трафика sip и rtp на виртуальный IP-адрес (NAT). Но с узла трафик поступает с первичного IP-адреса, а не с виртуального IP-адреса. Это вызывает проблемы с трафиком RTP.
Как можно решить эту проблему?
Заранее спасибо
Необходимо забиндить астериск только на виртуальный интерфейс.
Как вариант — установить виртуальный адрес, сделать его сорсом, связать два ресурса и выставить порядок загрузки
Добрый день. при выключении адрес переносится на вторую ноду, но как только первая появляется в сети, адрес возвращается на нее. как это можно исправить?