Восстановление CRM системы на Elastix

Posted by

Окно входа в панель управления Elastix 2.5Ввиду того факта, что как я пришел в компанию здесь в плане инфраструктуры IT был полный хаос, различные дистрибутивы на сервисах, отсутствие карты сети и где какие сервисы, отношение от сотрудников других отделов к отделу IT мягко говоря желает лучшего. Сейчас осталось проработать правильный перенос последнего сервиса, бизнес компании строиться на обработки результатов обзвона/приема звонков клиентов с последующим занесением данной информации в CRM систему именуемой, как 5.2.1. А уже от туда строится статистика и перенаправление звонок в профильные отделы. Ранее я уже не раз говорил про vTigerCRM, но вот только в тех заметках которые я публиковал ранее:

  • Установка
  • Восстановление

Это все если честно не то, т. к. в корпоративной сети стоял не чистый vtiger, а комбайн из дистрибутива версии и до установленного пакета vtiger.

Вот сейчас я и пройдусь по всем шагам установки/восстановления дабы все было задокументировано.

Скачиваю с официального сайта в разделе Download пакет предыдущего значения Elastix 2.5 для 64битной версии системы на свою рабочую систему:

aollo@system:~$ wget https://sourceforge.net/projects/elastix/files/Elastix%20PBX%20Appliance20Software/2.5.0/latest/Elastix-2.5.0-STABLE-x86_64-bin-08may2015.iso

Теперь запускаю Virtualbox и подготавливаю виртуальную машину (RAM = 4Gb,CPU =1, HDD = 50Gb) под установку из скачанного на основную систему (Ubuntu 14.04.5 Trusty Desktop (Gnome Classic) amd64) образа дистрибутива Elastix 2.5.

  • Имя: Elastix
  • Тип: Linux
  • Версия: Other Linux (64-bit)

Рекомендуемый объем оперативной памяти: 4096Mb

Запускаю данную VM:

  • boot: нажимаю клавишу Enter
  • Choose a Language: English
  • Keyboard Type: us
  • Would you like to initialize this drive, erasing ALL DATA? Yes
  • Partitioning Type: Use free space on selected drives and create default layout, отмечаю свой диск и нажимаю OK
  • Review and modify partitioning layout? No
  • Would you like to configure the eth0 network interface in your system? Yes
  • Network Configuration for eth0: отмечаю Activate on boot & Enable IPv4 support и нажимаю OK
  • Тип получения IP адрес: Dynamic IP configuration (DHCP) и нажимаю OK
  • Hostname Configuration: automatically via DHCP и нажимаю OK
  • Time Zone Selection: Europe/Moscow
  • Root Password:

Password: 712mbddr@

Password (confirm): 712mbddr@

и нажимаю OK

Cледом начинается выкачивание и установка необходимых пакетов состоящих в основе дистрибутива Elastix, ожидаю…

Выкачиваются пакеты составляющие основу для Elastix

Затем потребуется указать пароль который будет на учетную запись root сервиса MySQL:

Please enter your new MySQL root password: 712mbdr@

Please (re) confirm your new MySQL root password: 712mbddr@

Затем потребуется указать пароль который будет на учетную запись admin в панель администрирования Elastix (http://IP&DNS):

Please enter your new password for freePBX ‘admin’: 712mbddr@

Please (re) confirm your new password for freePBX ‘admin’: 712mbddr@

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

CentOS release 5.10 (Final)

Kernel 2.6.18-371.1.2.el5 on an x86_64

srv-elastix login: root

Password: 712mbddr@

Welcome to Elastix

[root@srv-elastix ~]#

[root@srv-elastix ~]# rm -f /etc/localtime

[root@srv-elastix ~]# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

[root@srv-elastix ~]# nano /etc/ntp.conf

server 0.pool.ntp.org

[root@srv-elastix ~]# /etc/init.d/ntpd restart

[root@srv-elastix ~]# ntpdate 0.pool.ntp.org

А доступ через Web-интерфейс выглядит так: https://IP&DNS:80/

Так выглядит административный интерфейс Elastix при просмотре через бразуерТак с установкой Elastix на виртуальную машину я разобрался, нет ничего сложного, дистрибутив представляет из себя, сборку утилит для организации программной АТС где все компоненты подогнаны друг на друга и имеют модульную структуру. Может показаться, что использование дистрибутива лучше, но как по мне только если все сделаешь сам будет больше понимать, что и как устроено, а потому мой выбор: либо консольный Asterisk, либо Asterisk(+FreePBX) на системе Ubuntu. Я специализируюсь только на этом дистрибутиве, чем в сотнях различных.

Устанавливаю компоненту vtigercrm 5.2.1 Теперь нужно установить посредством дополнения пакет vtiger. Переходим на вкладку Addons и через поиск в Addon Market указываем Name: vtiger и нажимаем Enter, на выходе найденного получается что имеется пакет VtigerCRM — 5.2.1-9, напротив него имеется кнопка Install нажимаю ее.

Следом появляется окно Elastix Server Registration Form, заполняю его:

  • Company: Ekzorchik
  • Country: Russia
  • City: Moscow
  • Phone: <my_mobile>
  • Contact Name: Ekzorchik
  • Email: support@ekzorchik.ru
  • Password: <my_password>
  • Password Confirm: <my_password>

А после нажимаю Create Account и начинается установка пакета VtigerCRM

Идет процес скачивания/установки сервиса VTigerCRM в дистрибутив ElastixТеперь чтобы получить доступ к сервису vtigercrm нужно в браузере перейти на URL вида: https://IP&DNS/vtigercrm, где меня встречает довольно знакомое окно авторизации в системе, указываю:

  • User Name: admin
  • Password: 712mbddr@
  • Color Theme: softed
  • Language: US English

Ладно, интерфейс на английском и на первый взгляд идентичен устанавливаемому на Ubuntu Precise.

Но мне нужно накатить на текущий дистрибутив Elastix бекап сервиса vtigercrm чем и займусь ниже:

[root@srv-elastix ~]# mysql -u root -p712mbddr@ -e "show databases;"

+--------------------+

| Database |

+--------------------+

| information_schema |

| asterisk |

| asteriskcdrdb |

| endpointconfig |

| meetme |

| mya2billing |

| mysql |

| roundcubedb |

| test |

| vtigercrm521 |

+--------------------+

Как видно из вывода присутствует база vtigercrm521 точно также как и на сервере у меня, а потому мне понадобиться бекап с действующего сервера где сейчас имеет место быть работающий VtigerCRM установленный не мною. Мне же нужно проработать шаги по реанимированию сервиса.

Копирую с рабочей системы из подмонтированного файлового сервера бекап vtigercrm на новый сервер с установленным дистрибутивом Elastix 2.5:

aollo@system:~$ scp /media/soft/file/CRM/vtigercrm521.sql-2017-01-26.gzip root@10.7.8.78:/root/

Распаковываю архив:

[root@srv-elastix ~]# file vtigercrm521.sql-2017-01-26.gzip

vtigercrm521.sql-2017-01-26.gzip: bzip2 compressed data, block size = 900k

[root@srv-elastix ~]# tar xjf vtigercrm521.sql-2017-01-26.gzip

[root@srv-elastix ~]# ls sqlfiles/

vtigercrm521.sql

Восстанавливаю бекап базы в только что развернутую вместе с сервисом:

[root@srv-elastix ~]# mysql -u root -p712mbddr@ vtigercrm521 < sqlfiles/vtigercrm521.sql

После проверяю базу vtigercrm521 что в ней все таблицы не битые:

[root@srv-elastix ~]# mysqlcheck -u root -p712mbddr@ -c vtigercrm521

вывод во всем таблицам: OK

Копирую каталог /var/www/html/vtigercrm со старого сервера в новый:

[root@crm ~]# tar cPf vtigercrm.tar /var/www/html/vtigercrm

[root@crm ~]# scp vtigercrm.tar root@10.7.8.78:/root

Распаковываю заархивированный каталог и перемещаю его в путь где располагаются файлы сервиса vtigercrm на новом сервере:

[root@srv-elastix ~]# mkdir vtigercrm

[root@srv-elastix ~]# tar -xf vtigercrm.tar -C vtigercrm

[root@srv-elastix ~]# mv vtigercrm/var/www/html/vtigercrm/ /var/www/html/vtigercrm/

Теперь правлю конфигурационный файл где нужно проверить наличие правильных данных взаимодействия сервиса vtigercrm с базой данных:

[root@srv-elastix ~]# nano /var/www/html/vtigercrm/config.inc.php

$dbconfig['db_server'] = 'localhost';

$dbconfig['db_port'] = ':3306';

$dbconfig['db_username'] = 'root';

$dbconfig['db_password'] = '712mbddr@';

$dbconfig['db_name'] = 'vtigercrm521';

$dbconfig['db_type'] = 'mysql';

$dbconfig['db_status'] = 'true';

Поправляю права доступа на каталог vtigercrm:

[root@srv-elastix ~]# chown -R asterisk:asterisk /var/www/html/vtigercrm/

[root@srv-elastix ~]# nano /etc/httpd/conf/httpd.conf

ServerName srv-elastix

[root@srv-elastix ~]# /etc/init.d/httpd restart

Для справки: версии php и mysql на сервере:

[root@srv-elastix ~]# php --version

PHP 5.1.6 (cli) (built: Nov 6 2014 12:25:07)

Copyright (c) 1997-2006 The PHP Group

Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies

[root@srv-elastix ~]# mysql --version

mysql Ver 14.12 Distrib 5.0.95, for redhat-linux-gnu (x86_64) using readline 5.1

После чего возвращаюсь к открытой вкладке браузера (https://IP&DNS:80/vtigercrm ) и обновляю страницу (Клавиша F5), предо мной снова окно авторизации, но на этот раз в качестве аутентификационных данных нужно вводить данные от старого сервиса vtigercrm развернутого не мною на дистрибутиве Elastix 2.5:

  • User Name: admin
  • Password: <пароль_который_был>, хотя его можно сбросить по заметке.
  • Color Theme: softed
  • Language: теперь в выборе присутствует «RU Русский» который и выбираю.

После чего нажимаю Sign in и я проваливаюсь в русско-язычный интерфейс имеющего место быть сервиса vtigercrm но теперь уже в моем практическом исполнении. Проверив все с чем приходилось сталкиваться — вывод: все хорошо, можно от не моего избавляться и разворачивать свое, т. к. только в своем я уверен полностью.

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

Бекапить нужно: базу + каталог vtigercrm.

[root@srv-elastix ~]# mkdir /backup

[root@srv-elastix ~]# mysqldump -u root -p712mbddr@ vtigercrm521 | gzip -9 > /backup/vtigercrm521_$(date '+%d_%m_%Y').sql.gz

[root@srv-elastix ~]# ls -lh /backup/vtigercrm521_27_01_2017.sql.gz

-rw-r—r— 1 root root 15M Янв 27 09:32 vtigercrm521_27_01_2017.sql.gz

[root@srv-elastix ~]# tar czfP /backup/vtigercrm_$(date '+%d_%m_%Y').tgz /var/www/html/vtigercrm/

[root@srv-elastix ~]# ls -lh /backup/vtigercrm_27_01_2017.tgz

-rw-r—r— 1 root root 98M Янв 27 09:59 /backup/vtigercrm_27_01_2017.tgz

Теперь копирую данные бекапы на файловое хранилище Synology DS414:

[root@srv-elastix ~]# mkdir /media/backup

[root@srv-elastix ~]# nano /etc/fstab

//SynologyDS414/BACKUP /media/backup cifs iocharset=utf8,codepage=cp866,username=<domain_login>,domain=<domen>,password=<domain_password> 0 0

[root@srv-elastix ~]# mount -a && df -h | grep /media/crm

//SynologyDS414/BACKUP 11T 5,9T 5,0T 54% /media/backup

[root@srv-elastix ~]# rsync -a /backup/* /media/backup/crm/

Храним бекапы на сервере Elastix не более 30 дней:

[root@srv-elastix ~]# find /backup/ -maxdepth 1 -type f -mtime +30 -exec rm -f {} \;

Итого, я рассмотрел самостоятельно, что нужно чтобы правильно восстановить из резервной копии сервис vtigercrm версии 5.2.1, как оказалось уже в последствии установка с нуля которую я использовал заметками ранее отличается, некоторые меню перевода на русский язык не соответствуют старому и новому на серверах.
Раз все шаги успешно обкатаны по такому же принципу я смогу развернуть сервис не на физическом сервере, как он был, а на виртуальную инфраструктуру ESXi опираясь на все выше изложенное в этой заметке.

Что еще могу добавить, каждый на основе этого уже сам добавить в планировщик строки по резервному копированию или с учетом что бекапы маленькие просто будет раз в месяц заходить или регламенту и проверять, а затем удалять уже не актуальные. Если все автоматизировать, то может случиться, что присутствует чувство что все хорошо, а на самом деле будет больно осознать обратное. Ладно, до новых встреч, с уважением автор блога Олло Александр aka ekzorchik.