Настройка модуля Backup&Restore на FreePBX13. Full&Remote Backup
В данной статье будет рассмотрена настройка Backup для восстановления станции в случае возникновения аварии на АТС. Описание модуля Backup&Restore на FreePBX13. Данный модуль служит для создания резервной копии сервера, а так же восстановления работоспособности сервера из своевременно подготовленной копии. Примечательно, что данный модуль имеет очень широкий набор параметров, которые предопределяют файлы и директории, которые будут […]
В данной статье будет рассмотрена настройка Backup для восстановления станции в случае возникновения аварии на АТС.
Описание модуля Backup&Restore на FreePBX13.
Данный модуль служит для создания резервной копии сервера, а так же восстановления работоспособности сервера из своевременно подготовленной копии. Примечательно, что данный модуль имеет очень широкий набор параметров, которые предопределяют файлы и директории, которые будут подвержены копированию. В том числе модуль предполагает настройку параметров для подключения к серверам, которые будут хранить резервные копии, настройку расписания резервного копирования, а так же отправку их на удалённые машины, либо же хранение на жёстком диске. Таким образом, можно исключить использование стороннего программного обеспечения и довериться данному модулю, при условии правильной конфигурации нашего Backup.
Ключевые отличия Full Backup & Remote.
Прежде, чем приступить к созданию бэкапов, стоит поговорить о том, чем отличаются друг от друга Full & Remote Backup’s. Полный бэкап подразумевает, что мы делаем полную копию сервера Asterisk. Под копирование попадают все базы данных, статистика звонков, записи телефонных разговоров, все конфигурационные файлы Asterisk, звуковые файлы, а так же те файлы, которые прямо или косвенно связаны с сервером телефонии, например, FOP2. Как правило, отправляется на жёсткий диск сервера, где находится IP-ATC Asterisk.
Remote же состоит из конфига сервера в MySQL, базы данных Asterisk DB, директории /etc/asterisk*, директорию /etc/dahdi*, директорию Apache /etc/httpd/conf.d, конфигурационного файла FPBX /etc/freepbx.conf, директории MariaDB /etc/my.cnf.d, директорию с поддиректориями Asterisk Gateway Interface /var/lib/asterisk/agi-bin*, а так же, звуковых файлов MOH и записей диктора. Отправляется на удалённый сервер.
Подведём итог:
- Full Backup – полная копия сервера телефонии, поднимет сервер из пепла и праха, как ни в чём не бывало, но тяжёлый и, как следствие, труднотранспортируемый на удалённые машины, потому, обычно, сохраняется на жёсткий диск сервера, на котором установлен Asterisk.
- Remote Backup – минимально необходимый набор для восстановления работоспособности сервера, как следствие, очень маловесный и легкотранспортируемый.
Всё вышеописанное – не является сводом правил, а лишь руководством к созданию тех или иных резервных копий, наработки, личный опыт. Никто не помешает Вам создать один Full_Backup и организовать его передачу удалённому серверу-хранилищу. Всё остальное зависит только от Вашей фантазии.
Создание Full Backup с сохранением на локальном сервере.
Для того, чтобы приступить к настройке бэкапирования, в FreePBX необходимо перейти Admin -> Backup & Restore.
После перехода увидим примерно следующее:
Далее нам необходимо сразу настроить подключение к удалённому серверу, на который будет отправляться копия. Для этого необходимо нажать на , затем выбрать “Servers”.
После перехода увидим следующее:
Как можно увидеть, отправка бэкапа на локальное хранилище уже настроена, давайте ознакомимся с структурой отправки более подробно:
Server
Name – имя сервера, может быть
любым, например, Voxlink.
Description – пользовательский
комментарий.
Path – путь, по которому будет располагаться папка с бэкапами.
Приступим к добавлению удалённого сервера-хранилища бэкапов. Для этого необходимо нажать на кнопку Add Server, а затем выбрать нужный пункт из меню. В нашем случае – это будет FTP сервер-хранилище:
Откроется меню настройки отправки на FTP сервер:
Далее заполним параметры отправки на удалённый сервер:
Server Name – имя сервера. Может быть любым, например Voxlink.
Description – пользовательский комментарий.
Hostname – укажите IP адрес удалённого сервера или DNS имя, по которому можно произвести обращение к искомому серверу.
Port – укажите порт, по которому следует обращаться к удалённому серверу.
Username – имя пользователя для подключения к удалённому серверу.
Password – пароль пользователя для подключения к удалённому серверу.
Filesystem type – укажите тип файловой системы удалённого FTP-сервера.
Path – укажите путь к директории хранения бэкапов.
Transfer mode – укажите тип передачи.
В моём случае это будет выглядеть вот так:
После описание параметров передачи бэкапа на удалённый сервер, нажимаем кнопку Save.
Результате можно наблюдать в общем списке серверов:
Далее, для настройки Full Backup вернёмся в Backups:
Для того, чтобы создать новый Backup, нажмите на + New Backup:
Откроется меню создания бэкапов:
Приступим к конфигурированию Full Backup по разделам:
Первый блок раздела Backup включает в себя описательные параметры:
Backup Name – название бэкапа для WEB-Interface FPBX.
Description – краткое описание.
Status Email – уведомление на почту. В этом поле указывается электронный почтовый ящик по форме [email protected]
On
Failure
Only – условие, при котором
должно поступать уведомление на почту. Если выставлено No, то сообщение будет приходить в случае
успешного создания и отправки бэкапа на сервер. Если выставлено Yes, то сообщение будет приходить только в
случае возникновения ошибки.
Должно получиться что-то похожее:
Следующий блок раздела Backup – Items:
В данном разделе нужно описать все файлы и директории, которые мы хотим включить в наш фулл.
Для того, чтобы добавить элемент, нажмите +:
Появится контекстное меню chose:
Затем нажмите на поле chose, чтобы сделать выбор типа элемента.
Выбрав нужный тип, укажите путь к элементу или базу данных:<p
Также, в целях экономии времени или недостатка знаний о том, что именно нужно скопировать, выберите нужные шаблоны из списка:<
Базовый Full Backup выглядит следующим образом:
В базовый набор входит:
- MySQL CDR Server – сохраняем статистику звонков.
- MySQL Config Server – сохраняем конфигурацию сервера.
- Asterisk DB – сохраняем базу данных Asterisk.
- Directory __ASTETCDIR__ — сохраняем /etc/asterisk*.
- Directory __AMPWEBROOT__ — сохраняем /var/www/html*
- Directory __AMPBIN__ — сохраняем /usr/bin*
- Directory /tftpboot – сохраняем директорию автопровиженинга, а так же все её поддиректории.
- Directory /etc/dahdi – сохраняем директорию драйвера DAHDI платы, а так же все её поддиректории.
Переходим к следующему разделу Hooks:
В данном разделе подключаются дополнительные внешние скрипты, которые будут выполняться на разных этапах создания бэкапа или восстановления из него, а так же выбор сервера, который нужно забэкапить и выбор серверов, на которые нужно отправлять готовый бэкап.
Pre—Backup Hook – скрипт, который будет выполняться до инициализации бэкапа.
Post—Backup Hook – скрипт, который будет выполняться после инициализации бэкапа.
Pre—Restore Hook – скрипт, который будет выполняться до восстановления их бэкапа.
Post—Restore Hook – скрипт, который будет выполняться после восстановления из бэкапа.
Backup Server – селектор, позволяющий выбрать сервер, который нужно забэкапить.
Следующий блок раздела Hooks – выбор серверов, на которые будут отправляться готовые бэкапы.
Здесь у нас есть 2 подраздела – Storage Servers и Available Servers.
Storage Servers – список серверов-хранилищ, на которые будет осуществлена отправка резервной копии.
Available Servers – список доступных серверов, которые можно использовать.
Перетащим, voxlink (ftp) из Storage Servers в Available Servers:
Полный бэкап будет храниться на нашей машине в директории /var/spool/asterisk/backup
Следующий раздел Backup Shedule:
В данном разделе устанавливается временной режим создание бэкапов, в котором присутствует хэлпер с пояснением по каждому из параметров – Schedule Help.
Hourly – запуск бэкапа раз в час.
Daily – запуск бэкапа раз в день.
Weekly – запуск бэкапа раз в неделю.
Monthly – запуск бэкапа раз в месяц.
Anually – запуск бэкапа раз в год.
Reboot – запуск бэкапа после перезагрузки системы, в частности после выполнения команды service cron restart.
Never – никогда не запускать бэкап автоматически.
Custom – настройка собственного расписания инициализации бэкапа.
Для полного бэкапа нам подходит расписание ежемесячного копирования, т.е. Monthly.
После выбора расписания копирования, появляется селектор Randomize. Данный параметр работает следующим образом: если значение = Yes, то расписание плавает в рамках месяца, подстраиваясь под нагрузку сервера, избегая пиковых рабочих часов. Перепланирование происходит случайным образом, т.е. дата очередного бэкапа будет постоянно меняться в рамках, определённых параметром Run Automatically. Если значение = No, то дата всегда будет одной и той же. Я выставлю No.
Последний раздел модуля Backup – Maintenance.
В данном разделе настраивается удаление бэкапов по определённым параметрам, а именно:
Delete After – В зависимости от выбранного временного значения (Minutes, Hours, Days, Weeks, Months, Years) будет удаляться бэкап-файл. Например, в графе выставлено значение 2, а в параметре выбрано Months, то файл будет удаляться тогда, когда ему исполнится 2 месяца.
Delete After Runs – в зависимости от количества копий удалять самую старую. Например, выставлено значение 3, это означает, что после того, как на сервер запишется 3 бэкапа, каждая последующая инициализация нового бэкапа будет запускать процесс удаления самого старого из созданной тройки, таким, образом постоянно поддерживая установленное количество актуальных копий.
Я выставлю параметр Delete After 3 Runs:
Это последний этап в конфигурировании политики создания Full Backup. Далее необходимо нажать Save:
Бэкап сконфигурирован. Для того, чтобы инициализировать процесс резервного копирования, необходимо нажать Save and Run:
После запуска процесса увидим окно состояния создания бэкапа:
В случае успешного создания бэкапа на локальную машину увидим следующий вывод:
После этого зайдём на сервер и выполним команду:
#ls –l /var/spool/asterisk/backup/
Если после исполнения Вы увидели следующий вывод, значит, бэкап создан успешно:
Создание Remote Backup для отправки на удалённый сервер.
Аналогичным образом происходит создание Remote Backup. Т.к. общий процесс создания бэкапа был описан в предыдущем пункте, то здесь я сделаю то же самое, но в тех местах, где имеются отличия.
Т.к. у меня нет FTP-сервера, но есть машина, к которой есть доступ по SSH, расскажу о том, как организовать данный способ передачи.
Первым делом заходим на машину, которая будет выступать в роли сервера-хранилища, затем выполняем в терминале следующий набор команд (в моём случае используется машина под управлением CentOs 6):
Изменим пароль пользователя asterisk:
#passwd asterisk
Вводим пароль, затем система просит повторить его:
Если всё хорошо, увидим следующий вывод:
После этого нужно дать необходимые права нашему пользователю, для этого выполним:
#chmod 755 /var/lib/asterisk
С сервером-хранилищем закончили. Переходим к машине, на которой развёрнут сервер телефонии:
Меняем пользователя root на asterisk#
#su asterisk
Далее действуем от лица пользователя asterisk. Выполним в терминале генерацию SSH-ключа для подключения к серверу-хранилищу.
$ssh-keygen
Будет предложено ввести имя файла. Ничего не вводим, нажимаем Enter.
Далее будет предложено ввести пароль. Ничего не вводим, нажимаем Enter:
Подтверждение пароля. Снова нажимаем Enter.
Если генерация прошла удачно, увидим следующий вывод:
SSH-ключи id_rsa и id_rsa.pub созданы и находятся в директории /var/lib/asterisk/.ssh/.
Далее нужно загрузить наш ключ на машину, к которой мы имеем доступ по паролю, т.е. – серверу-хранилищу. Для этого выполним:
$ssh—copy—id asterisk@host_ip (где asterisk – имя пользователя на удалённой машине host_ip – IP адрес удалённой машины)
Будет запрошен пароль пользователя, который мы вводили ранее. Вводим пароль. После ввода пароля увидим следующий вывод:
Это значит, что ключ загружен на удалённый сервер. Для проверки аутентификации по SSH-ключу, в терминале нужно выполнить следующую команду:
$ssh asterisk@host_ip (где asterisk – имя пользователя на удалённой машине host_ip – IP адрес удалённой машины)
Если всё прошло удачно, увидим, что мы попали на удалённый сервер. На этом терминальная работа окончена. Перейдём к настройке передачи бэкапа по SSH на FreePBX.
Переходим во вкладку Servers, нажимаем Add Server -> + New SSH Server:
Затем заполняем параметры по аналогии:
Server name – имя сервера.
Description – пользовательский комментарий.
Hostname – IP адрес или DNS имя, по которому можно обратиться к серверу-хранилищу.
Port – выбираем порт подключения к серверу-хранилищу. По умолчанию SSH работает на 22 порту. Если Ваш сервер использует другой порт, укажите его.
Username – имя пользователя. Указываем имя пользователя, под которым нужно залогиниться на удалённой машине.
Key – указываем путь к ключу на сервере телефонии, где развёрнут Asterisk, чтобы подключиться к серверу-хранилищу.
Path – указываем директорию, в которой должны храниться наши бэкапы. В моём случае это __ASTPOOLDIR_/SSH_Backup, что иначе выглядит как /var/spool/asterisk/SSH_Backup. Сохраняем, затем переходим к настройке Remote_Backup.
Изменим ему имя и описание, чтобы различать бэкапы:
Затем пропишем сет для Remote_Backup:
Выберем сервер, на который будет оправляться Backup:
Далее настроим расписание. Т.к. это легковесный бэкап, содержащий основу сервера телефонии, то целесообразно будет использовать еженедельное копирование:
Систему очистки старых бэкапов настроим так, чтобы она удаляла самый старый шестой бэкап, освобождая место новому. Так мы будем всегда держать 6 актуальных резервных копий.
Нажимаем Save:
Затем запустим первый бэкап, чтобы удостовериться, что всё работает:
Бэкап готов. Зайдём на сервер-хранилище, который должен был принять наш бэкап и выполним команду в терминале:
#ls –l /var/spool/asterisk/SSH_Backup
Если увидим следующий вывод:
Значит, бэкап был отправлен и принят сервером-хранилищем успешно.
Подводя итог статьи, можно сказать, что на сервере полностью настроена и налажена система резервного копирования с отправкой на локальное хранилище и на удалённый сервер.
Остались вопросы?
Я - Першин Артём, менеджер компании 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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.