11 Вопросы по dpiui

1. Диагностика работы маркетинговых кампаний

Действия на DPIUI
а) проверьте что в форме ввода маркетинговых кампаний правильно заданы даты действия кампании "с .. по", дни недели и время действия маркетинговой кампании с 00:00 пo 23:59

б) лог синхронизации > 0?

ls -la /var/log/advsync.log

если лог синхронизации пуст проверьте, что есть задание:

grep advsync /var/spool/cron/root

должно быть:

*/1 * * * * /var/www/html/dpiui/yii process/advsync >> /var/log/advsync.log

проверьте, что процесс работает, запустите:

/var/www/html/dpiui/yii process/advsync

если есть ошибки необходимо проверить инсталляцию

в) если лог не 0, проверьте в логе синхронизации формирование кампаний:

grep adv_id= -A1 /var/log/advsync.log
должен быть вывод типа:
adv_id=3, 2017-01-12, 2017-02-12, 2017-Feb-07 10:33,
phttp= url: someinfo.mynet.ru/?
adv_id=5, 2017-01-29, 2017-02-12, 2017-Feb-07 10:33,
phttp= url: www.mynet.ru/?

г) Проверяем счетчик загруженного на DPI:

grep 'read t=' /var/log/advsync.log | tail -1
DPISubs должен быть > 0 значит есть кампании на DPI
read t=2017-Feb-07 10:38 DPISubs=6 LastRecs=6 DiffSubs=0 LastSubs=6

В данном случае на DPI загружено 6 абонентов по всем кампаниям.

Действия на DPI
0!) проверьте, что установлен параметр

/etc/dpi/fastdpi.conf
ntf_server=<any_server.ru>
если параметра нет, то установите и сделайте рестарт сервиса fastdpi:
service fastdpi restart

Данный параметр инициализирует опцию уведомлений, он обязателен.
а) проверяем во временной директории файл subsurlsntf.lst:

cat /tmp/dpi/subsurlsntf.lst
0 1198406
1 11984920
2 11983297
3 11.0.6.64
...
1-е значение идентификатор по порядку в списке URL /var/lib/dpi/ntfurl.lst
2-е значение логин или IP абонента

б) проверяем наличие файлов в директории DPI:

ls -la /var/lib/dpi/ntf*
-rw-r--r--. 1 root root 50264 Feb 7 19:25 /var/lib/dpi/ntfurl.bin
-rw-r--r--. 1 root root 57732 Feb 7 19:25 /var/lib/dpi/ntfurl.idx
-rw-rw-r--. 1 dpisu dpisu 1130487 Feb 7 19:25 /var/lib/dpi/ntfurl.lst

файлы /var/lib/dpi/ntfurl.bin и /var/lib/dpi/ntfurl.idx получаются следующим образом:

cat /tmp/dpi/subsurlsntf.lst | cat2dic ntfurl.bin ntfurl.idx

проверьте что данные файлы совпадают с помощью diff

файл /var/lib/dpi/ntfurl.lst текстовый, содержит список урлов, например:

promo.mynet.ru/?reg=23&req=53BEEAD0-2ADC-4A2A-A247-E4BA76C90E07&
promo.mynet.ru/?reg=66&req=543C1F6B-88B7-4895-9DA2-777E64A1CCFF&
...
номер по порядку из данного файла используется в /tmp/dpi/subsurlsntf.lst
нумерация начинается с 0

Если перечисленные в пункте файлы есть, и совпадают по diff, значит файлы для загрузки правильно подготовлены

в) проверяем наличие услуг:

fdpi_ctrl list all --service 50

Результат:

Autodetected fastdpi params : dev='lo', port=29000
connecting 127.0.0.1:29000 ...
================================
TestUser 50 (0x2000000000000)
192.168.2.1 50 (0x2000000000000)
192.168.2.2 50 (0x2000000000000)
192.168.2.3 50 (0x2000000000000)
192.168.3.4 50 (0x2000000000000)
------------------
total: 5

Если получили подобный вывод и логины / IP совпадают с файлом /tmp/dpi/subsurlsntf.lst
то услуги загружены верно.

2. Не работает нотификация, файлы в директории есть ls /var/lib/dpi/ntf*, услуги есть fdp_ctrl list all --service 50. что может быть еще ?
а) проверьте, что DPI загружает данные:

touch /var/lib/dpi/ntfurl*

в fastdpi_alert.log должно появиться сообщение:

bl_updater_thread : Notifications(updatenotifications) list loaded with result, rc=0 : Success: loaded.

если его нет то в версии DPI ошибка, обновитесь на версию 5.5 или выше
б) проверьте, что ориентация устройства верная (in_dev - в сторону абонентов / out_dev в сторону и-нет)
в) проверьте, что опция нотификации работает

3. Что делать если забыт пароль от DPI-UI? как сбросить пароль admin'а? При условии локального доступа к серверу и наличии доступа к таблицам БД ?
Есть 2 варианта действий:
1) можно удалить пользователя с id=100001 запустить:

/var/www/html/dpiui/yii install/createdb

создаст дефолтного пользователя admin.
2) поменять пароль на дефолтный у пользователя 100001:

"$2y$13$VQHo/VYEgYietJ5AdQ.ute/5RKJlAyC3zbtif5EMfY3DVVVkN9qiG"

4. на сервере с DPIUI быстро расходуется место в /var/www/html/dpiui/runtime/1/clickstream, можно как-то задать лимиты, сколько дней хранить данные / какой объём занимать ? Эти файлы можно удалить, например так:

15 4 * * * /bin/find /var/www/html/dpiui/runtime/*/clickstream -name url_\*.dump.gz -cmin +1440 -delete > /dev/null 2>&1

если команда не была прописана при инсталляции внесите в ручную в файл /var/spool/cron/root

5. не попадают данные по кликстриму в соответствующие таблицы, кликстрим принимается есть информация в буферном файле port.dump (например 1500.dump)
a) возьмите файл из директории кликстрима (параметр dumpfiledir=/var/www/html/dpiui/runtime/1/clickstream/)
например - url_29072016_091016.dump.gz, сделайте gzip -d url_29072016_091016.dump.gz. Возьмите ссылку из конфигурации на исполняемый файл(processcmd=/var/www/html/dpiui/commands/processfile.sh), запустите с параметром распакованного ранее файла - /var/www/html/dpiui/commands/processfile.sh url_29072016_091016.dump
Обычная проблема не сконфигурирован hostname об том будет соответствующий exception:
- ERROR org.apache.spark.SparkContext - Error initializing SparkContext.
java.net.UnknownHostException: fdpi.interface: fdpi.interface: Имя или служба не известны проверьте:

ping `hostname`

настройте правильно hostname и/или пропишите его в /etc/hosts
- ERROR Exception in thread "main" java.lang.IllegalArgumentException: System memory 452132864 must be at least 4.718592E8. Please use a larger heap size. - при инициализации Spark, добавьте памяти требуется не менее 4Гб RAM
Если есть другие исключения/ошибки сообщите в ТП.
b) Если п. а) без ошибок прошел, то проверьте шаблоны поиска введите www.domen, domen в путь введите /
Если не помогло a), b) то обратитесь в ТП 6. Не изменяются настройки в DPI конфигурации через dpiui, при их сохранении ошибок нет.
Вероятно поменяли пользователя для работы с устройством, например, root → dpisu
после такой замены на DPI требуется сделать:

chown -R dpisu:dpisu /tmp/dpi
chmod a+w -R /tmp/dpi