Одним из простых способов построения отказоустоичивой системы телефонии на основе elastix является использование heartbeat для резервироания серверов и rsync для синхронизации конфигурации. Для начала устанавливаем и настраиваем heartbeat и rsync.
После настройки heartbeat и rsync создаем на основном сервере файл mysqldump.sh
mysqldump -u root -ppassword asterisk > /home/backup/asterisk.sql mysqldump -u root -ppassword asteriskcdrdb > /home/backup/asteriskcdrdb.sql mysqldump -u root -ppassword meetme > /home/backup/meetme.sql cp /etc/sysconfig/iptables /home/backup/
Изменяем права на запуск:
chmod 750 /home/mysqldump.sh
Добавляем его в cron, для этого в файл /var/spool/cron/root добавляем строчку
00 00 * * * * /home/mysqldump.sh
Перезапускаем крон.
/etc/init.d/crond restart
На резервном сервере создадим скрипт который будет синхронизировать конфигурацию с основным сервером.
nano /home/sync_config.sh
Его содержание
rsync -rc --exclude=Thumbs.db -t -e ssh --rsync-path=/usr/bin/rsync --temp-dir=/tmp root@server1:/home/backup/ /home/backup rsync -rc --exclude=Thumbs.db -t -e ssh --rsync-path=/usr/bin/rsync --temp-dir=/tmp root@server1:/etc/asterisk/ /etc/asterisk rsync -rc --exclude=Thumbs.db -t -e ssh --rsync-path=/usr/bin/rsync --temp-dir=/tmp root@server1:/var/lib/asterisk/ /var/lib/asterisk rsync -rc --exclude=Thumbs.db -t -e ssh --rsync-path=/usr/bin/rsync --temp-dir=/tmp root@server1:/var/spool/asterisk/monitor/ /var/spool/asterisk/monitor mysql -u root -ppassword asterisk < /home/backup/asterisk.sql mysql -u root -ppassword meetme < /home/backup/meetme.sql
mysql -u root -ppassword meetme < /home/backup/asteriskcdrdb.sql
cp /home/backup/iptables /etc/sysconfig/iptables service iptables restart /bin/asterisk.reload
Изменяем права
chmod 750 /home/sync_config.sh
И тоже добавляем его в cron
30 00 * * * * /home/sync_config.sh
Для корректной работы астериска, нужно прописать в /etc/asterisk/sip.conf
bindaddr=192.168.0.12
Где 192.168.0.12 — общий ip адрес на который переключается сервер с помощью heartbeat.
Для этого в WEB интерфейсе elastix заходим во вкладку PBX->Unembedded freePBX. И на вкладке Tools в меню Asterisk Sip Seting в самом низу есть строка «Bind Address». Здесь прописываем наш адрес.
Так же настраиваем авторизацию по ключу. Чтобы работала синхронизация конфигурации через cron.