Как сделать бэкап asterisk

Реализация резервирования сервера Asterisk

Одним из главных критериев при выборе новой АТС это надежность, отказоустойчивость и возможность резервирования системы. Маленьким и средним компаниям обычно хватает простого бэкапа с возможностью восстановиться в течение 24 часов, в то время как для больших компании это очень критично и не может быть и речи о простое телефонной связи. На это обычно компания тратят много ресурсов и денег. С появлением R800 и R850 от компании DIGIUM, asterisk становится действительно надежной системой с полноценным резервированием PSTN линий Е1/T1/BRI и FXO. Под катом подробности установки и настройки двух серверов Asterisk и R850.

Для этого проекта нам понадобиться железо:

  1. Сервер, Ubuntu 10.04 — 2 шт (для текущей версии rseries, Digium рекомендует использовать именно ubuntu 10.04 или Centos 5.6)
  2. Digium R850 — 1 шт.
  3. Платы Digium TE420 — 2 шт.
  4. USB флэшка (минимум 1 гб) -2 шт.

Схема нашей системы будет примерно такой

Как видно на схеме железка R850 будет принимать в себя потоки от провайдера связи и отдавать их на 2 сервера Астериск. В зависимости от состояния сервера R850 будет переключать потоки между серверами, для этого он подключен еще и USB портами.

Подключение R850:

  1. Подключаем Primary Е1 в плату Master Server
  2. Подключаем Secondary Е1 в плату Slave Server
  3. Primary USB, в порт Master Server
  4. Secondary USB, в порт Slave Server
  5. USB Console (не обязательно)

R850 питается от USB порта, и как только вы его подключите к серверу, он должен включится. Проверяем систему на наличие новых USB устройств

# lsusb
Bus 007 Device 003: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x Composite Device

Все что написано ниже нужно делать на обоих серверах!

Приготовление серверов для работы с R850

Установка софта для r-series:
Перед установкой нужно отключить R850 из USB порта.

Далее снова подключаем R850 к серверу и проверяем

Должны получить такой ответ

Для полного тестирования R850 можно запустить ./rtest.sh tests /dev/rseries0 железка будет пару секунд переключать потоки и щелкать при этом.

Настройка кластеризации системы на базе Pacemaker, Corosync, и DRBD

DRBD — это блочное устройство, обеспечивающее синхронизацию (RAID1) между локальным блочным устройством и удалённым. В нашем случае я буду использовать 2 флэшки.

Готовим флэшки для DRBD

1) Удаляем (осторожно у меня флэшка /dev/sdb у вас может быть другой диск)

2) Создаем партицию на 1Гб. (можно и больше)

далее n, p, 1, 1, +1024M

3) Установка Pacemaker, Corosync, и DRBD

4) Устанавливаем конфиги

если получите сообщение

то копируем его руками.

Приступаем к настройке

1) Редактируем /etc/drbd.d/asterisk.res, меняем на свой данные, e-mail, IP disk и hostname я так и оставил astnode1 и astnode2 и получилось так:

2) Меняем хост в зависимости от сервера (etc/hostname)
hostname astnode1 — на первой машине и
hostname astnode2 — на второй

3) Создаем новое блочное устройство

если все настроено верно то получите

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

Следующие шаги нужно делать только на главном сервере astnode1

Читайте также:  Как сделать бутерброд яичницу

Создаем партицию на DRBD

Проверяем на первом сервере astnode1

Если файл test есть значит все идет по плану, отключаем drbd

Теперь проверяем на втором сервере astnode2

Тут также мы должны увидеть файл test, далее:

На этом этапе наша система готова для установки Asterisk, Dahdi и LibPRI.
На главном сервере astnode1 создаем нужные файлы и линки:

Устанавливаем Asterisk, DAHDI и LibPRI

Установка на первом сервере astnode1
1) Установка необходимых пакетов для сборки DAHDI и Asterisk

2)Качаем Asterisk, DAHDI и LibPRI

После успешной установки

Переходим к установке на второй сервер astnode2

тут скрипт ответит что есть уже такие папки, так и должно быть.
Установка на втором сервере почти идентична первому, делаем все кроме make samples для asterisk.

1) Установка необходимых пакетов для сборки DAHDI и Asterisk

2)Качаем Asterisk, DAHDI и LibPRI

После успешной установки

Приступаем к настройке Corosync на обоих серверах

Правим memberaddr в соответствие с нашими ИП адресами серверов и bindnetaddr
вот мой конфиг:

Далее меняем в /etc/default/corosync START=no на START=yes

Настройка Pacemaker

Настроить его надо только на первом сервере astnode1

В rseries-1.0.0 есть пример настройки ее мы и отредактируем

я поменял в нем только ип адрес шлюза GatewayStatus и ocf:heartbeat:IPaddr2 ип адрес моего SIP телефона.
Конфиг:

применяем конфиг для pacemaker

На втором сервере ничего не надо делать.

Настройка R850

Для настройки используем порт Console на R850 и кабель из slave-astnode2 например

Тут должна появится меню для настройки: для E1 я настроил так:

Также для управления R850 можно использовать rctl из rseries пакета, он позволит проверить и обновить прошивку и протестировать устройство.

Тестирование системы


Сперва проверим что R850 переключен на первый астериск astnode1

alarms=OK все отлично шлюз работает, если нет то советую просто перезагрузить astnode1 и потом astnode2.

Падение Asterisk на astnode1

Запускаем killall asterisk
получаем лог

crmd запустил заново Asterisk и он работает далее, но поскольку бывают моменты когда астериск больше не поднимается. Попробуем имитировать такой тест:

Asterisk поднимается на втором сервере, R850 щелкает и переключает потоки.

Проблемы с питанием сервера.

Перед тестом я вернул astnode1 в рабочее состояние, но потоки остались на втором сервере. Проверим как сработает система если на втором сервере отключить питание.

Думаю все понятно, сервер astnode2 упал и на astnode поднялись потоки и asterisk. Также протестировал отключение USB кабеля и отключение сервера от локальной сети R850 всегда срабатывал.

Благодаря компании DIGIUM и новому продукту R850, Asterisk поднялся на новый уровень надежности и применения. Теперь астерискеры могут спать спокойно.

Источник

FreePBX: Backup and Restore

Модуль для создания резервных копий и восстановления конфигурации FreePBX.

Шаблоны

Есть несколько предустановленных шаблонов для резервирования различных данных FreepBX

Места сохранения

backup storage locations

Места сохранения бэкапов можно просмотреть и отредактировать кликнув «Servers» в правом верхнем углу страницы.
По умолчанию заданы два хранилища для резервных файлов.

Можно создать дополнительные хранилища для отправки бэкапов по e-mail, на удаленный FTP или TFTP сервер или на удаленный MySQL сервер.

Пример создания бэкапа

Запуск вручную

Проверка

Восстановление

Выберете требуемый бэкап и нажмите «Go»

Синхронизация Баз Данных FreePBX

Настроим резервный сервер (asterisk2) таким образом, чтобы он подключался к основному серверу (asterisk1) по SSH
и синхронизировал настройки asterisk, autoprovision и др.

Настройка SSH подключения

В данном примере Asterisk и Web server работают из под пользователя asterisk.

Зададим временный пароль пользователю asterisk
На основном сервере asterisk1

Сгенерируем ssh ключ на резервном сервере Asterisk2

Читайте также:  Как сделать долгое лето

Команда ssh-keygen создаст ключ в /home/asterisk/.ssh/ip_rsa

Не вводите passphrase, оставьте пустым:

Кода ключ создан, скопируем его на основной сервер:

Будет запрошен пароль, заданный для пользователя asterisk на основном севере.

Проверим подключение по ssh с ключом:

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

В завершении настройки SSH подключения, удалим пароль пользователя asterisk на основном сервере (asterisk1).

И перейдем к настройке автоматической синхронизации FreePBX

Выберете на резервном сервере Admin > Backup & Restore > Servers — New SSH Server

Hostname — ip адрес основного сервера Asterisk1

Port — порт ssh

User Name — пользователь, в нашем случае asterisk

Key — местонахождение ключа (/home/asterisk/.ssh/id_rsa)

Затем выберите Admin > Backup & Restore > Backups — New Backup

Задайте имя и перетащите шаблоны для настроек:

в нашем примере это Full Backup и Exclude Backup Settings

Местонахождение директории tftp сервера, где лежат файлы для autoprovision, изменена с /tftpboot на /var/lib/tftpboot.

Задайте в соответствии с вашими условиями.

И в завершении укажем созданный нами Backup Server (asterisk1)
и хранилище — Local Storage (local)

Restore Here — записать скачанный бэкап в базу данных asterisk

Disable Registered Trunks — отключить зарегистрированные транки, во избежание проблем с входящими вызовами на основном сервере.

Apply Config — Применить скачанный бэкап (записать в конфиги asterisk)

Сохраним Save и проверим немедленно and Run

Источник

FreePBX 14 — резервное копирование конфигурации (BackUp)

В данной статье мы рассмотрим автоматизированный процесс создания резервных копий системы. FreePBX 14 резервное копирование – важнейшая процедура устранения внештатной ситуации, то есть способная восстановить конфигурацию. Данный процесс возможно автоматизировать с помощью настроек модуля Backup and Restore. Следовательно, переключаемся в меню AdminBackup & Restore.

Техническое задание

Просто так описывать поля не интересно, поэтому выполним техническое задание по примеру резервирования FreePBX 14:

  1. Полное резервное копирование конфигурации системы ежемесячно.
  2. Хранение последних трех полных копий системы на локальном носителе.
  3. Копирование CDR-данных ежегодно на локальный носитель и отправка их на FTP.
  4. Отправка копий на удаленный сервер по FTP.
  5. Отправка e-mail оповещения в случае ошибки

Описание

Прежде всего, необходимо удалить существующие настройки резервирования (Default backup).

Модуль позволяет создавать план резервирования через пошаговый мастер создания резервных копий. Для этого необходимо нажать кнопку Backup Wizard. Мастер установки содержит 5 шагов, в которых необходимо заполнить всю информацию и установить параметры. Мы будем использовать, тем временем простое создание копии через кнопку + New Backup.

Настройка сервера

Во-первых, необходимо создать сервер FTP, на который будем отправлять данные. Переходим в меню Servers, которое находится справа. Выбираем Add ServerNew FTP server:

Далее заполняем данные, необходимые для авторизации на удаленном FTP-сервере.

Доступны следующие сервера:

  • Email – отправка резервной копии на электронную почту в качестве вложения.
  • FTP – отправка файлов на FTP сервер.
  • Local – сохранять файлы локальном сервере.
  • MySQL Server – внешний MySQL сервер, на который Asterisk будет отправлять копии базы данных.
  • SSH Server – это может быть любая другая АТС, с которой вы можете также делать резервные копии (бэкапы).

Следующим шагом переходим в настройки создания плана резервного копирования – Backup.

  • Backup Name – имя процесса создания резервной копии. Стоит называть интуитивно понятно, чтобы различить среди прочих процессов.
  • Description – описание процесса.
  • Status Email – адрес электронной почты, на которую следует отправить уведомления и ходе данного процесса.
  • On Failure Only – отправлять письма только в случае неудачи.

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

Читайте также:  Как сделать диван тахту

Мы будем выполнять согласно нашего ТЗ и выберем Full Backup.

Hooks

Данный раздел позволяет подключать собственные скрипты в процесс выполнения резервного копирования. Например, это может быть скрипт, который делает отметку о бэкапе в БД, или формирует письмо, или вносит данные во внешнюю систему. Данный раздел позволяет определить, в какой момент резервного копирования или восстановления из копии подключать данные скрипты:

  • Pre-Backup Hook – в этом поле можно указать путь к скрипту, который необходимо запускать перед проведением резервного копирования.
  • Post-Backup Hook – путь к скрипту, который необходимо выполнить после процесса бэкапа.
  • Pre-Restore Hook – скрипт запускаемый перед началом процесса восстановления сервера из бэкапа.
  • Post-Restore Hook – запуск скрипта после проведения восстановления.
  • Backup Server – сервер, на котором необходимо произвести процесс резервирования. Это может быть как локальный сервер с вашей АТС (This server), либо это может быть любой другой сервер. Данные сервера можно настроить в разделе Servers.

Пользователь и владелец файлов-скриптов должен быть asterisk

Мы выбираем ранее созданный сервер для отправки на FTP хранилище.

Storage Location

В данном окне настраивается хранилище для файлов резервного копирования. Вы можете настроить различные FTP, SSH, Email, MySQL и даже Amazon сервера для хранения различных экземпляров копий (бэкапов). Чтобы выбрать сервер, перенесите его из правой части (Available Servers) в поле слева, которое называется Storage.

Backup Schedule

Расписание создания резервных копий.

Run Automatically – периодичность создания копий. Доступны следующие опции:

  • Never – не запускать данный скрипт.
  • Hourly – запускать ежечасно. Скрипт запускается с самого начала нового часа. Например, в 02:00:00.
  • Daily скрипт запускается ежедневно в полночь.
  • Weekly – запуск скрипта происходит еженедельно в воскресение в полночь.
  • Monthly – ежемесячно каждое первое число в полночь.
  • Annually – ежегодно каждое первое января в полночь.
  • Reboot – проводить бэкап при команду перезагрузки.
  • Custom – собственное расписание бэкапов, позволяет определить конкретное время проведения бэкапа. При данной выборе настраиваются, минуты, часы, дни недели, месяцы и дни месяцев создания копий.

Согласно наших условий и ТЗ, нам необходимо создавать копии каждый месяц 1-го числа в 02:00. Хранить не более трех копий.

Maintenance – удаление старых копий:

  • Delete After – возраст файла, который необходимо будет удалить. Например, можно удалять файлы спустя 1 месяц хранения.
  • Delete After Runs -количество копий, которые необходимо хранить на сервере. Например, если вы укажите цифру 5, то после того, как сервер сделает 5 бэкапов, на 6 копирование будет удален самый старый файл. Тем самым, сервер будет поддерживать постоянное количество копий в размере 5, удаляя самый старый из них файл.

Жмем кнопку Save and Runs.

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

На вкладке Restore, показаны все доступные резервные копии. Данные копии можно загрузить дистанционного, используя вкладку Import. Или копии с данного сервера, используя вкладку BrowseLocal Storage.

В навигации между директориями, выберите необходимые файлы. Они буду иметь расширение .tgz:

Выбрав необходимый файл, нажмите Go. Сразу после этого, вам будет предложено галочкой отметить какие сегменты бэкапа вы хотите восстановить (CDR, голосовую почту, конфигурацию и так далее). После выбора нажмите кнопку Restore и процесс будет запущен. Отметим, что процесс восстановления из локально файла абсолютно аналогичен. Просто необходимо нажать на копку Browse и далее выбрать необходимый файл.

Подведем итог. FreePBX 14 резервное копирование по нашему техническому заданию выполнено.

Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.

Источник

Поделиться с друзьями
Ответ и точка