Екатерина
14.06.2019
746

Asternic перенос статистики на другой сервер с сохранением всей информации.

Asternic – это система статистики ip АТС на базе Asterisk. Она работает с очередями и информацию получает из лог файлов. При необходимости перенести систему статистики Asternic Pro на новый сервер встает задача сохранить всю ранее накопленную информацию. В этом случае есть 2 варианта: Сделать бэкап старой базы данных и развернуть его на новой. Сгенерировать из […]

Asternic – это система статистики ip АТС на базе Asterisk. Она работает с очередями и информацию получает из лог файлов.

При необходимости перенести систему статистики Asternic Pro на новый сервер встает задача сохранить всю ранее накопленную информацию.

В этом случае есть 2 варианта:

  1. Сделать бэкап старой базы данных и развернуть его на новой.
  2. Сгенерировать из базы данных лог файл очередей asterisk, после чего этот лог файл отдать парсеру логов Asternic для заполнения базы данных.

Первый вариант подойдет в том случае, если у вас одинаковые версии Asternic и таблицы в базе данных совпадают.  В том случае, если версии разные необходимо действовать по второму варианту.

Рассмотрим на примере перенос статистики со старой версии на новую. (Перенос лицензии рассматриваться не будет.)

Посмотрим базу данных на старой системе статистики

База данных Asternic

Как видно из скриншота база данных называется qstatspro.

Посмотрим таблицы в базе данных:

Use qstatspro;

Show tables;

Таблицы старой базы данных.

А теперь посмотрим таблицы в новой верссии Asternic 2.2.6.

Asternic-tables-new.png Таблицы базы данных новой версии Asternic.

Как видно структура базы данных отличается. Для переноса данных сгенерируем лог файл очередей из старой базы данных.

Перед тем, как начать генерацию логов необходимо остановить парсер логов.<br> # asterniclog status – проверка запущен ли парсер. Если запущен останавливаем:<br> # service asterniclog stop

Подключаемся к базе данных MySQLна старом сервере и выполняем запрос:

select unix_timestamp(datetime),uniqueid,queue,agent,event,info1,info2,info3,info4 from queue_stats q INNER JOIN qname ON qname = qname.qname_id INNER JOIN qagent ON q.qagent = agent_id INNER JOIN qevent ON q.qevent = qevent.event_id ORDER BY datetime INTO OUTFILE '/tmp/queue_log_generado' FIELDS TERMINATED BY '|';

Если информации много, то придется подождать некоторое время когда операция завершиться.

Исходные данные будут содержаться  в файле /tmp/queue_log_generado

Далее для более быстрого копирования файла на новый сервер выполним архивировани сжатием:

# tar- zcvf queue_log_generado.tar.gz

Производим копирование архива

# scp queue_log_generado.tar.gz root@ip:/usr/src/

После чего система попросит вас ввести пароль от удаленного сервера. После ввода произойдет копирование.

Далее все работы будут производиться на новом сервере.

Посмотрим структуру таблиц:

Таблицы базы данных в новой версии.

Как видно из скриншота, базы данных двух версий отличаются. Для переноса данных как раз подходит второй вариант.

Выполняем проверку не запущен ли парсер asterniclog. Если запущен останавливаем. Далее разархивируем лог файл командой:

# tar –zxvf /usr/src/ queue_log_generado.tar.gz

После чего направляем лог файл в парсер:

# ./asterniclog -u qstatsUser -p qstatsPassw0rd -d qstats -r -l /usr/src/ queue_log_generado

Вы увидите на экране как начнется сбор информации


Восстановление данных из лога

Если у вас база данных слишком большая эта процедура займет очень продолжительное время.

В новых версиях системы статистики Asternic есть серьезная проблема с поиском. При наличии очень большой информации к MySQL отправляется запрос в котором содержится ошибка. Если нажать поиск в веб интерфейсе и при этом в MySQL воспользоваться командой «show full processlist» мы увидим следующую команду зависшую в процессах:<br> «SELECT MAX( CAST(info3 AS UNSIGNED)) from queue_stats LEFT JOIN qevent ON qevent=event_id where event in (‘ABANDON’,’EXITWITHKEY’,’EXITEMPTY’,’EXITWITHTIMEOUT’) AND info3 is not null AND (datetime BETWEEN ‘2019-04-04 00:00:00 00:00:00’ AND ‘2019-04-04 23:59:59 23:59:59’)»<br> Обратите внимание, что время дублируется. Из-за этого результатов поиска можно ждать несколько минут

Также этим способом можно перенести информацию из Asternic Lite версии в Asternic Pro.

Если у вас при маленьком объеме данных вообще не работает поиск и при этом вы используете интерфейс на русском языке – это также баг системы. У разработчиков в их коде есть ошибка.

После восстановления информации следует запустить парсер командой:

# service asterniclog start
Если при первой установки Asternic у вас не открывается страничка авторизации, в таком случае необходимо установить «Ioncube».

На данный момент Asternic имеет много проблем, но пока остается одна из самых популярных систем статистики колл-центра. Я бы советовал использовать бесплатную Lite версию до тех пор, пока не выйдет более-менее стабильная версия Pro.

Также после переноса данных у вас не будет возможности прослушивать записи разговора. Для реализации этой возможности необходимо перенести данные таблицы

Логинимся в MySQL и переходим в базу данных qstatspro (в моем случае). Далее сохраняем все данные таблицы «recordings» в файл выполнив команду:

Mysql> SELECT * INTO OUTFILE 'recordings.txt' FIELDS TERMINATED BY ',' FROM recordings;

Все данные будут сохранены в файл.

Дамп базы записей разговоров

Заархивируем файл для более выстрого копирования:

# bzip2 /var/lib/mysql/qstatspro/recordings.txt

Далее переносим сгенерированный файл на новый сервер.

# scp /var/lib/mysql/qstatspro/recordings.txt.bz2 root@ip:/usr/src/

Далее на новом сервере разархивируем файл:

#unzip2 /usr/src/recordings.txt.bz2

После чего зайдем в MySQL и восстановим файл в базу данных:

<mysql> use qstats;
MySQL> LOAD DATA INFILE '/root/recordings.txt' INTO TABLE recordings FIELDS TERMINATED BY ',';

Эта операция займет несколько минут.


Теперь записи разговоров можно прослушивать в веб интерфейсе статистики.

Теперь вернемся к багу поиска статистики. У нас имеется исправленная версия скрипта поиска. Скачать можно по ссылке (ссылка на файл)

Переименовываем старый скрипт:

# mv /var/ww/html/stats/ajax-serch.php  /var/ww/html/stats/ajax-serch.php.old

Копируем новый файл и присваиваем ему пользователя и группу «asterisk»

# chown asterisk.asterisk /var/www/html/stats/ajax-search.php
 
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices