forum.bitel.ru
http://forum.bitel.ru/

Общие баги, проблемы (CRM)
http://forum.bitel.ru/viewtopic.php?f=44&t=7964
Страница 1 из 9

Автор:  Cromeshnic [ 16 апр 2013, 08:20 ]
Заголовок сообщения:  Общие баги, проблемы

Буду писать сюда всякие общие штуки

Список текущих багов/хотелок для Inet (в порядке приоритетности):

- GUI выбора интерфейса устройства в сервисе на договоре
- Закрытие датой дочерних сервисов
- Некорректное отображение Radius-логов
- Расформирование интерфейсов устройств
- Метод destroy() для ProtocolHandler по аналогии с ServiceActivator
- Проблемы при переоформлении (HD:#5121)
- Ограничение "тип сервиса" - "типы устройств"
- kill сессии через access.sh
- Ограничение по объёму отправляемой flow-детализации
- Мелкие замечания по графику превалирующих трафиков в Web-статистике
- Косметика графиков в Web
- Резервирование Access/Accounting - ?
- Отображение тарифного узла "Обработчик"
- Интерфейс с номером "-1" - ???


Исправлено:
- Открываем договор по клику из "IP-ресурсов"
- Расформирование устройства в Inet
- Ошибка со state.xml
- Мелкие баги во вкладке "Логи" модуля
- Поиск по сервисам
- Разделение логов на flow и radius в интерфейсе модуля
- Создание трафиковых сессий по flow при переобработке 6.1
- Не учитываются индексы порта при переобработке flow (HD #4887)
- Перенос сессий при переоформлении.
- Слишком короткое поле inet_serv_<mid>.login
- servSearchMode по имени интерфейса, а не только по номеру
- При перемещении сервиса с даты старый закрывается статусом
- "Оповестить об изменениях" и персональные тарифы
- Сортировка по всем полям в мониторе
- Возможность сортировки по полям в списке интерфейсов устройства
- "использование интерфейса" - открывать по двойному клику договор
- Подстановка мыла пользователя в клиенте, когда заказываешь детализацию по сессии
- Не создаются сессии из update-пакетов, если нет Framed-Ip-Address
- Детализация netflow по интерфейсу и сессиям без IP
- График по сессиям в отчётах договора
- Мониторинг статистики по BGInetAccounting/Access
- Последняя flow-запись трафиковой сессии не попадает в детализацию
- Переобсчёт Inet работает только за текущее число при переобсчёте за текущий месяц - отваливалось по памяти, исправили

Автор:  Dog [ 16 апр 2013, 17:33 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Cromeshnic писал(а):
2. В интерфейсе клиента на договое слишком короткое поле для title сервиса:
Вложение:
serv_title.png

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

Автор:  Amir [ 16 апр 2013, 18:08 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Можно также убрать галочку растягивать, настроить как надо и нажать Запомнить расположение.
Я у себя убрал столбцы Тип и Комментарий.

Автор:  Amir [ 16 апр 2013, 18:15 ]
Заголовок сообщения:  Re: Общие баги, проблемы

По размеру char(30) выложим скоро.

Автор:  nik247 [ 16 апр 2013, 19:25 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Amir писал(а):
Можно также убрать галочку растягивать, настроить как надо и нажать Запомнить расположение.
Я у себя убрал столбцы Тип и Комментарий.

Можно так сделать - только если бы оно запоминалось...
Запоминается только на текущую сессию. Скрытые столбцы потом снова появляются.

Автор:  Amir [ 16 апр 2013, 19:27 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Если выполнить Запомнить расположение - разве не запоминается?

Автор:  Phricker [ 16 апр 2013, 19:54 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Запоминается.
Может если клиент через web start запускать, то не запоминается?

Автор:  nik247 [ 16 апр 2013, 21:12 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Amir писал(а):
Если выполнить Запомнить расположение - разве не запоминается?

Наверное не везде сохраняет. Клиент обычный. На web start не проверял.
Отключал "стоимость" в Inet:
1) Договор-Отчет-Inet (текущие сессии)-отключаем растягивать-отключаем "стоимость"-сохранить. После перелогина снова есть.
2) Модули-Inet-Монитор(логи, текущие) отключение столбца "стоимость"-сохранить .После перелогина отсутствует.

Автор:  Cromeshnic [ 22 апр 2013, 11:48 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Про интерфейс спасибо.

Вот ещё один баг: во вкладке "Отчёты" история сессий за месяц содержит 3 страницы. Но когда мы открываем вкладку "График", то на графике рисуется трафик сессий только текущей страницы, а не всех.
Вложение:
page1.png
page1.png [ 26.61 КБ | Просмотров: 25004 ]

Вложение:
page2.png
page2.png [ 24.73 КБ | Просмотров: 25004 ]


Также, на графике трафик указан в МБ, а в фильтре - байты.

Автор:  Dog [ 22 апр 2013, 14:18 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Cromeshnic писал(а):
Также, на графике трафик указан в МБ, а в фильтре - байты.

причем график строится исключительно если размерность указана Байт. писал про это в HD, когда просил этот отчёт. в итоге реакции нет с 14.02.13 =)

Автор:  Cromeshnic [ 22 апр 2013, 14:22 ]
Заголовок сообщения:  Re: Общие баги, проблемы

+1
И правда

Автор:  Cromeshnic [ 23 апр 2013, 11:42 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Ещё одну серъёзную штуку обнаружил:

Если в одном тарифе задать выдачу опций Inet в разных типах трафика, то выдаётся только комплект опций для последнего из них.

Вложение:
inet_wtf.png
inet_wtf.png [ 12.15 КБ | Просмотров: 24979 ]


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

Такое редко нужно, но можно придумать контрпримеры.
Например, мы можем захотеть резать скорость после 1 GB трафика отдельно на закачку и отдельно на раздачу.

Автор:  Cromeshnic [ 26 апр 2013, 12:22 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Ещё одна просьба: сделать, чтобы в accounting_status.sh выдавалась статистика по количеству активных сессий клиентов, аналогично тому, как это выглядит в Dialup.

Dialup:
Код:
#./radius_status.sh
version 5.2 build 376 from 13.03.2013 15:12:10
26.04.2013 14:53:34     3238    3164    74      0
Request accounts per minute start: 14; stop: 16; update: 226
Request auths per minute accept: 14; reject: 14
Netfow packets per minute: 5937
Ignore per minute auth: 0; update: 0
Antispam ban count: 5; used per minute: 26
FlowListener: queue_size: 0; threads_active: 0; largest: 20; core: 20; pool_size: 20; ru.bitel.bgbilling.modules.dialup.radius.DialUpFlowListener$3@4c9e4e2a [recv_socket_buf_size: 131 071; recv_buf_size: 8 388 608]; packets: 10911383
Started: 08.04.2013 19:02:35    Uptime: 17 d 19:50:59
Memory total: 295 567 360; max: 954 466 304; free: 28 624 136
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 13 512 320; peek: 13 513 728
  Heap memory[PS Eden Space]: max: 355 074 048; used: 9 355 760; peek: 348 061 696
  Heap memory[PS Survivor Space]: max: 1 376 256; used: 1 097 824; peek: 31 046 104
  Heap memory[PS Old Gen]: max: 715 849 728; used: 256 492 912; peek: 310 900 760
  Non-heap memory[PS Perm Gen]: max: 88 080 384; used: 33 863 056; peek: 37 525 024
Thread count: 520
Trees in cache: 28
Connections pool to Master status Idle: 15; Active: 0; maxActive: 100; maxIdle: 15


Мне интересна строчка:
Код:
26.04.2013 14:53:34     3238    3164    74      0

где
3238 - всего сессий
3164 - active
74 - suspended
0 - wait

Хочу то же самое в BGInetAccounting, но не нахожу:
Код:
 # ./accounting_status.sh
Java Runtime: Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM [1.6.0_22] /opt/sun-jdk-1.6.0.22/jre
  Runtime name: 17653@bg.local
  Java endorsed dirs: /lib/endorsed:/etc/java-config-2/current-system-vm/lib/endorsed
  OS: Linux 2.6.33-gentoo [amd64], file.encoding: UTF-8, user.name: root
  Heap sizes: current=245248k  free=243967k  max=3639104k
Kernel version 5.2 build 1474 from 08.04.2013 14:44:23
Inet version 5.2 build 1141 from 08.04.2013 14:44:22
Radius:
  accounting-requests per minute start: 0; stop: 0; update: 0
  access-requests per minute accept: 0; reject: 0
  ignore per minute access-request: 0; accounting-update: 0

Started: 23.04.2013 11:40:45    Uptime: 3 d 03:32:55
Memory total: 138 346 496; max: 477 233 152; free: 33 717 840
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 4 945 984; peek: 4 963 008
  Heap memory[PS Eden Space]: max: 178 126 848; used: 2 729 248; peek: 130 547 712
  Heap memory[PS Survivor Space]: max: 393 216; used: 327 680; peek: 36 211 408
  Heap memory[PS Old Gen]: max: 357 957 632; used: 101 575 224; peek: 184 408 592
  Non-heap memory[PS Perm Gen]: max: 88 080 384; used: 36 542 104; peek: 42 649 416
Thread count: 46
Trees in cache: 0
Connections pool to Master status Idle: 4; Active: 0; maxActive: 300; maxIdle: 20
Connections pool to Slave "1" status Idle: 2; Active: 0; maxActive: 100; maxIdle: 10


Мне это нужно для построения графиков в cacti:
Вложение:
dialup-cacti.png
dialup-cacti.png [ 13.08 КБ | Просмотров: 24969 ]

Автор:  Cromeshnic [ 26 апр 2013, 13:11 ]
Заголовок сообщения:  Re: Общие баги, проблемы

А вообще, клёво было бы через JMX подобные штуки мониторить: коннекты к базам данных (master/slave/trash), активные сессии, radius-счётчики, размер очереди задач BGScheduler и т.п.

Автор:  snark [ 29 апр 2013, 01:55 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Cromeshnic писал(а):
клёво было бы через JMX подобные штуки мониторить

viewtopic.php?p=64092#p64092

Автор:  Cromeshnic [ 29 апр 2013, 06:29 ]
Заголовок сообщения:  Re: Общие баги, проблемы

2 snark
А чем мониторите?
viewtopic.php?f=1&t=7998

Автор:  snark [ 29 апр 2013, 17:31 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Пока что скриптом для net-snmp, который лазит в БД и вытаскивает инфу, по которой кактус рисует такое:

Изображение

Изображение

Тот мой пост был в надежде на то, что в БГБ таки запилят мониторинг, чтобы:
а) нам костыли не рисовать;
б) разработчикам можно показать данные, которые они нам и выдают.


P.S. Скрипт и настройка просты как мычание:
Код:
#!/bin/sh

# настройки MySQL сервера
db_host='81.30.195.156'
db_port='3306'
db_name='bgbilling'
db_user='dimOn'
db_pass='^_^'

# настройки MySQL клиента
mysql_bin='/usr/local/bin/mysql'
mysql_cmd="-h $db_host -P $db_port -u $db_user -p$db_pass -D $db_name -B -e"
mysql="$mysql_bin $mysql_cmd"

# корневой OID, который будем запрашивать
oid='.1.3.6.1.4.1.2021.255'

if [ "$1" = "-g" ]; then
    case "$2" in
        $oid.2.1)
            # приход за месяц
            res=`$mysql "SELECT ROUND(SUM(summa2)) AS cnt FROM contract_balance WHERE yy = YEAR(CURDATE()) AND mm = MONTH(CURDATE());" | sed s/cnt//g`
            echo $2
            echo 'integer'
            echo $res
            exit 0
            ;;
        $oid.2.2)
            # затраты (наработка + расходы) за месяц
            res=`$mysql "SELECT ROUND(SUM(summa3) + SUM(summa4)) AS cnt FROM contract_balance WHERE yy = YEAR(CURDATE()) AND mm = MONTH(CURDATE());" | sed s/cnt//g`
            echo $2
            echo 'integer'
            echo $res
            exit 0
            ;;
        $oid.3.1)
            # кол-во online логинов (не договоров!)
            tbl_date=`date +%Y%m`
            res=`$mysql "SELECT COUNT(DISTINCT(lid)) AS cnt FROM log_session_1_$tbl_date WHERE status = 0 AND fake != 1;" | sed s/cnt//g`
            echo $2
            echo 'integer'
            echo $res
            exit 0
            ;;
        $oid.10)
            # общее кол-во юзеров (логинов а не договоров!)
            res=`$mysql "SELECT COUNT(id) AS cnt FROM user_login_1;" | sed s/cnt//g`
            echo $2
            echo 'integer'
            echo $res
            exit 0
            ;;
        *)
            echo $2
            exit 0
            ;;
    esac
fi

Код:
# grep .1.3.6.1.4.1.2021.255 /usr/local/etc/snmp/snmpd.conf
pass .1.3.6.1.4.1.2021.255 /bin/sh /usr/local/etc/snmp/bgb_info.sh

Когда уже сюда запилят удобное цитирование выделенного текста и переделают тег CODE чтобы в нем был скролинг? :facepalm:

Автор:  Phricker [ 29 апр 2013, 17:50 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Снарк, а у тебя наработка/приход месячные данные?

snark писал(а):
Когда уже сюда запилят удобное цитирование выделенного текста и переделают тег CODE чтобы в нем был скролинг? :facepalm:

Никогда :D Есть желание - пили сам © Димон

Автор:  snark [ 29 апр 2013, 18:05 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Phricker писал(а):
Снарк, а у тебя наработка/приход месячные данные?

Данные снимаются "сейчас" (у меня кактус ежеминутно опрашивает) а потом графики кактусом рисуются за час/день/месяц/год. С MRTG и с остальными системами мониторинга то же самое будет.


Phricker писал(а):
snark писал(а):
Когда уже сюда запилят удобное цитирование выделенного текста и переделают тег CODE чтобы в нем был скролинг? :facepalm:

Никогда :D Есть желание - пили сам © Димон

Дайте мне админку (под подпись, разумеется) и я сделаю из этого форума конфетку.

Автор:  Amir [ 29 апр 2013, 18:54 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Цитата:
1) Договор-Отчет-Inet (текущие сессии)-отключаем растягивать-отключаем "стоимость"-сохранить. После перелогина снова есть.
2) Модули-Inet-Монитор(логи, текущие) отключение столбца "стоимость"-сохранить .После перелогина отсутствует.
Выкладывается.

Автор:  Cromeshnic [ 15 май 2013, 08:53 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Не работает ограничение "тип сервиса" - "типы устройств".
inet вер. 5.2 сборка 1141 от 08.04.2013 14:44:22

Пример:
У нас есть роутеры, поддерживающие ip subscriber interface + isg, и не поддерживающие.
Для первых мы управляем сервисами через радиус, собираем данные по трафикам через радиус-счетчики ISG.
Для вторых - управляем по Telnet/SSH, трафик считаем через netflow.
При этом netflow может быть включен и на первых роутерах - для детализации, но трафик там не должен считаться. Следовательно, нам нужно 2 разных привязки типов трафика: "Radius-ISG" и "Netflow". Следовательно, нужно 2 разных типа сервиса: IPoE и Flow, с ограничением по устройствам, на которых их разрешено заводить.
Только это ограничение не работает, и можно завести netflow-сервис на устройстве IPoE, что не есть гут.

мм?

Автор:  Cromeshnic [ 16 май 2013, 11:01 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Ещё одна хотелка-вопрос:
как можно назначать realm в зависимости от типа сервиса?
В предобработке сервис ещё не определён и нужный realm не приклеить.

Суть такая: есть два разных логически типа сервиса, но технически авторизуются они одинаково. При этом на одних и тех же тарифах им нужно выдавать разные атрибуты.

В нашем случае:
есть точки IP VPN двух типов: с NAT и без NAT. NAT реализован на нашем устройстве и тарификация интернета заведёна в биллинге на другом субдоговоре с другим тарифом. На точке IP VPN в обоих случаях настраиваем ip subscriber interface и интерфейс авторизуется через радиус. При этом по радиус-пакету не понятно, есть там NAT или нет.
Но это важно, т.к. в случае с NAT-ом нам нужно выдавать другие ISG-сервисы: вместо, скажем, VPN100M, выдаём 2 трубы: VPN100M_NAT и INET100M_NAT.
Идеально было бы использовать realm:

Код:
radius.realm.default.attributes=cisco-SSG-Account-Info=ADEFAULT;
radius.realm.nat.attributes=cisco-SSG-Account-Info=ADEFAULT;cisco-SSG-Account-Info=AINET100M_NAT;

radius.inetOption.1.template=cisco-SSG-Account-Info=A$optionTitle
radius.inetOption.1.nat.template=cisco-SSG-Account-Info=A$optionTitle_NAT


Только как его использовать, если радиус-пакеты в обоих случаях одинаковые?
В биллинге логичнее всего завести 2 разных типа сервиса (заодно с разными привязками). Но как выставить realm в зависимости от типа сервиса?
Или даже более общий вопрос: как выдать разные радиус-атрибуты на одном устройстве и тарифе для разных типов сервиса?

Можно конечно сделать через тарифную опцию "NAT", для которой в тарифе выдавать другой набор опций INET, но это очень некрасиво. Через realm - более естественно, не затрагивает логику тарифа и тарифных опций.

Автор:  Cromeshnic [ 16 май 2013, 11:47 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Вообще, имхо, realm - слишком узкая, техническая штука. Он работает только для radius-протокола, но при этом в Inet присутствует в таких абстрактных вещах как "тарифный план" (узел тарифа "фильтр по реалму"), сессия (таблица inet_session_log_<mid>_<yyyymm>).

Может быть стоит придать ему более общий смысл - "тип оказываемой услуги" и задавать более гибко, чем через username?

Автор:  Amir [ 16 май 2013, 15:40 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Цитата:
Суть такая: есть два разных логически типа сервиса, но технически авторизуются они одинаково. При этом на одних и тех же тарифах им нужно выдавать разные атрибуты.
Для вас вроде бы изначально делали (но потом сделали дополнительно другой вариант), что можно указать в конфиге типа сервиса
Код:
serv.radius.realm.default.attributes=
Может быть такой вариант подойдет?

Можем сделать фильтр в тарифе по типу сервиса, чтобы можно было в нем устанавливать опцию. Подменять же реалм по типу сервиса пока нет желания.

Автор:  Cromeshnic [ 17 май 2013, 10:20 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Спасибо, про serv.radius.realm.default.attributes забыл уже.
Но это решает только половину проблемы - опции всё равно будут одинаковые.

Amir писал(а):
Можем сделать фильтр в тарифе по типу сервиса, чтобы можно было в нем устанавливать опцию.

Это было текущей рабочей идеей :)
Лучше я сам сделаю такой фильтр через узел "Обработчик", чтобы не плодить костылей.

Автор:  Cromeshnic [ 17 май 2013, 14:38 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Cromeshnic писал(а):
Лучше я сам сделаю такой фильтр через узел "Обработчик", чтобы не плодить костылей.

Ага, счас.
Все стандартные узлы-фильтры хардкодятся в InetTariffRequest:
getContractGroupFilterAcceptedSet()
getRealmAcceptedSet()
и т.д.
Методы нужны для определения, заходил ли запрос на этом уровне в узел-фильтр такого типа, или ещё нет.
Очевидно, сам я такое не могу сделать.
Не логичнее ли сделать универсальный getAcceptedSet(String className) ?
Чтобы при добавлении новых узлов тарифа (стандартных или пользовательских) не плодить одинаковых методов.

Автор:  Cromeshnic [ 17 май 2013, 14:43 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Вообще, раньше были getResponseParam() и setResponseParam()

Автор:  Cromeshnic [ 20 май 2013, 08:12 ]
Заголовок сообщения:  Re: Общие баги, проблемы

up

- универсальный getAcceptedSet(String name)
- ограничение "тип сервиса" - "типы устройств"
- JMX
- Опции из всех типов трафика, а не только из последнего
- Баг в отчётах на договоре в клиенте

Автор:  Cromeshnic [ 21 май 2013, 10:59 ]
Заголовок сообщения:  Re: Общие баги, проблемы

Ещё нужен перенос сессий при переносе сервиса с даты задним числом, аналогично модулю dialup.
Например, часто приходится делать переоформление задним числом (с начала текущего месяца, etc).

Автор:  Cromeshnic [ 21 май 2013, 13:15 ]
Заголовок сообщения:  Re: Общие баги, проблемы

+ Простая косметическая хотелка: добавить поле "комментарий" в узел тарифа "Обработчик" для отображения в дереве тарифа в клиенте.

Сейчас:
Вложение:
dyn_class_tree_node.png
dyn_class_tree_node.png [ 10.81 КБ | Просмотров: 24730 ]

- непонятно

С комментарием было бы:
"Типы сервисов: VPN (1,2)"
...
"Типы сервисов: VPN + NAT (3,4)"
...

Страница 1 из 9 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/