BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 16 июн 2025, 03:38

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 262 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9  След.
Автор Сообщение
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 30 июл 2013, 10:27 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
К другой теме:

Баг при переносе сервиса на другой договор (целиком или с даты):

Код:
server 07-30/13:20:18 ERROR ["http-bio-/0.0.0.0-8080"-exec-4] AbstractJaxWsHandler - java.sql.SQLException: No value specified for parameter 2
ru.bitel.bgbilling.common.BGException: java.sql.SQLException: No value specified for parameter 2
        at ru.bitel.bgbilling.modules.inet.api.server.bean.InetServMoveManager.moveSessionData(InetServMoveManager.java:179)
        at ru.bitel.bgbilling.modules.inet.api.server.service.InetServServiceImpl.inetServMove(InetServServiceImpl.java:939)
        at ru.bitel.bgbilling.modules.inet.api.server.service.InetServServiceImpl.inetServWrap(InetServServiceImpl.java:998)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at ru.bitel.bgbilling.kernel.container.service.server.ServiceInfo.invoke(ServiceInfo.java:102)
        at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.invoke(AbstractJaxWsHandler.java:192)
        at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler.access$1(JaxWsHandler.java:1)
        at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler$2.run(JaxWsHandler.java:309)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler.invoke(JaxWsHandler.java:303)
        at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler$ServiceInstanceResolver$1.invoke(AbstractJaxWsHandler.java:304)
        at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:150)
        at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:261)
        at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100)
        at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641)
        at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600)
        at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585)
        at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482)
        at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:314)
        at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:608)
        at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:259)
        at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:162)
        at ru.bitel.common.server.JaxWSAdapter.handle(JaxWSAdapter.java:374)
        at bitel.billing.server.Executer.doPost(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at ru.dsi.bgbilling.web.filter.XDFilter.doFilter(XDFilter.java:56)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:140)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.sql.SQLException: No value specified for parameter 2
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
        at com.mysql.jdbc.PreparedStatement.checkAllParametersSet(PreparedStatement.java:2578)
        at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2554)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2401)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
        at ru.bitel.bgbilling.modules.inet.api.server.bean.InetServMoveManager.moveSessionData(InetServMoveManager.java:160)
        ... 52 more


Сервер: вер. 5.2 сборка 1526 от 23.07.2013 15:29:29
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_22
inet вер. 5.2 сборка 1213 от 24.07.2013 15:33:55


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 30 июл 2013, 10:48 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Насчёт флоу, в итоге:
Для нашего кейса нужно, чтобы интерфейс, указанный в сервисе, участвовал в фильтрации flow при получении детализации, как это было в модуле IPN.
Как вариант - сделать галку в типе сервиса "интерфейс для flow".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 30 июл 2013, 12:16 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Cromeshnic писал(а):
Мне кажется, логичнее всего было бы добавить 2 поля в inet_session_log_<mid>_<yyyymm>:
* flowDeviceId - устройство, на котором собирался flow для этой сессии
* flowDevicePorts - порты на этом устройстве.


Это было бы логичнее в inet_session_log_detail_<mid>_<yyyymm>. Там уже есть deviceId , это и есть устройство с которого идет netflow. Но там итак сейчас уже много данных.Теоретически трафик одной сессии может идти с разных источников . Если разбить еще и по интерфейсам , то боюсь , что объем базы вырастет. Там итак уже бывают проблемы с переобсчетом из-за этого .

У вас кстати сейчас сколько сессий в inet_session_log_<mid>_<yyyymm>? сколько в inet_session_log_detail_<mid>_<yyyymm>? Сравните с dilaup-ом. Недавно выяснилась проблема у одного из клиентов, что если поставить маленький conection.close.timeout , то 400 безобидных сервисов для выделенных каналов(старт сессий по трафику) , которые считают трафик по netflow (перенесены из IPN) за месяц могут породить около 900 000 сессий, что потом переобсчет вешает . Мы выложили обновление недавно, теперь нельзя поставить там меньше 3 часов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 30 июл 2013, 12:40 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Cromeshnic писал(а):
К другой теме:

Баг при переносе сервиса на другой договор (целиком или с даты):

Код:
server 07-30/13:20:18 ERROR ["http-bio-/0.0.0.0-8080"-exec-4] AbstractJaxWsHandler - java.sql.SQLException: No value specified for parameter 2
ru.bitel.bgbilling.common.BGException: java.sql.SQLException: No value specified for parameter 2
        at ru.bitel.bgbilling.modules.inet.api.server.bean.InetServMoveManager.moveSessionData(InetServMoveManager.java:179)
        at ru.bitel.bgbilling.modules.inet.api.server.service.InetServServiceImpl.inetServMove(InetServServiceImpl.java:939)
        at ru.bitel.bgbilling.modules.inet.api.server.service.InetServServiceImpl.inetServWrap(InetServServiceImpl.java:998)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at ru.bitel.bgbilling.kernel.container.service.server.ServiceInfo.invoke(ServiceInfo.java:102)
        at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.invoke(AbstractJaxWsHandler.java:192)
        at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler.access$1(JaxWsHandler.java:1)
        at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler$2.run(JaxWsHandler.java:309)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler.invoke(JaxWsHandler.java:303)
        at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler$ServiceInstanceResolver$1.invoke(AbstractJaxWsHandler.java:304)
        at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:150)
        at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:261)
        at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100)
        at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641)
        at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600)
        at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585)
        at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482)
        at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:314)
        at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:608)
        at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:259)
        at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:162)
        at ru.bitel.common.server.JaxWSAdapter.handle(JaxWSAdapter.java:374)
        at bitel.billing.server.Executer.doPost(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at ru.dsi.bgbilling.web.filter.XDFilter.doFilter(XDFilter.java:56)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:140)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.sql.SQLException: No value specified for parameter 2
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
        at com.mysql.jdbc.PreparedStatement.checkAllParametersSet(PreparedStatement.java:2578)
        at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2554)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2401)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
        at ru.bitel.bgbilling.modules.inet.api.server.bean.InetServMoveManager.moveSessionData(InetServMoveManager.java:160)
        ... 52 more


Сервер: вер. 5.2 сборка 1526 от 23.07.2013 15:29:29
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_22
inet вер. 5.2 сборка 1213 от 24.07.2013 15:33:55


Исправлено. В следующем обновлении будет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 31 июл 2013, 06:38 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
У нас большая часть сессий - радиус: ~2290 активных родительских и ~2360 - сервисных (ISG)
conection.close.timeout=1260

Есть несколько устройств с трафиковыми сессиями:
conection.close.timeout - не указан (default 2 минуты, вроде)
Активных трафиковых сессий на данный момент = 54 (на 9:30 утра)

Код:
mysql> select count(*) from inet_connection_30 where deviceId in (20,21,23,26,28,30,31);
+----------+
| count(*) |
+----------+
|       54 |
+----------+


Всего записей в таблицах:
Код:
mysql> select count(*) from inet_session_log_30_201307;
+----------+
| count(*) |
+----------+
|   205936 |
+----------+


Код:
mysql> select count(*) from inet_session_log_detail_30_201307;
+----------+
| count(*) |
+----------+
|  6187967 |
+----------+


Записей по трафиковым сессиям:

Код:
mysql> select count(*) from inet_session_log_30_201307 where deviceId in (20,21,23,26,28,30,31);
+----------+
| count(*) |
+----------+
|    62083 |
+----------+
1 row in set (3.07 sec)

mysql> select count(*) from inet_session_log_detail_30_201307 where deviceId in (20,21,23,26,28,30,31);
+----------+
| count(*) |
+----------+
|   145581 |
+----------+


Средняя продолжительность трафиковых сессий:
Код:
mysql> select avg(sessionTime) from inet_session_log_30_201307 where deviceId in (20,21,23,26,28,30,31);
+------------------+
| avg(sessionTime) |
+------------------+
|        1003.0590 |
+------------------+


Средняя продолжительность radius-сессий:
Код:
mysql> select avg(sessionTime) from inet_session_log_30_201307 where not deviceId in (20,21,23,26,28,30,31);
+------------------+
| avg(sessionTime) |
+------------------+
|       81980.5107 |
+------------------+


Картинки:
Вложение:
chart-access.png
chart-access.png [ 20.58 КБ | Просмотров: 18549 ]

Вложение:
chart-acct.png
chart-acct.png [ 21.5 КБ | Просмотров: 18549 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 31 июл 2013, 07:28 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Кстати, вопрос: будет ли подниматься сессия по трафику, если статус сервиса или договора - закрыт? Будет ли подниматься из radius update пакета?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 31 июл 2013, 11:16 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Cromeshnic писал(а):
Кстати, вопрос: будет ли подниматься сессия по трафику, если статус сервиса или договора - закрыт? Будет ли подниматься из radius update пакета?

будет вроде , но не будет отсчитываться .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 31 июл 2013, 12:24 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
stark писал(а):
Cromeshnic писал(а):
Кстати, вопрос: будет ли подниматься сессия по трафику, если статус сервиса или договора - закрыт? Будет ли подниматься из radius update пакета?

будет вроде , но не будет отсчитываться .

А переоформить тоже не даст из-за наличия активных сессий?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 31 июл 2013, 12:48 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Cromeshnic писал(а):
stark писал(а):
Cromeshnic писал(а):
Кстати, вопрос: будет ли подниматься сессия по трафику, если статус сервиса или договора - закрыт? Будет ли подниматься из radius update пакета?

будет вроде , но не будет отсчитываться .

А переоформить тоже не даст из-за наличия активных сессий?


Скорее всего да


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 31 июл 2013, 13:07 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Беда.
Гасить все активные сессии - нужно время: во-первых, сам биллинг не сразу отрабатывает при закрытии сервиса статусом. Во-вторых, активатор может сфейлиться и не погасить (CoA, PoD, SNMP, Telnet не дошло). В-третьих, они ещё некоторое время висят в активных.
Нужно ждать, только потом переоформлять :(
Дропать все сессии ('Завершить (зависшее) соединение') тоже тогда не поможет, т.к. оно может по трафику подняться раньше, чем я нажму кнопку "Переоформить".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 31 июл 2013, 13:34 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Поставил статус сервиса = "закрыт" - radius-сессия погасилась только через 3 минуты.
Я так понимаю, за этим следит SessionTrackingWorker ?
Я ещё не настраивал эти воркеры - работает с дефолтными настройками.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 31 июл 2013, 14:15 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Лучше настроить, и delay поменьше, а batchSize побольше, но чтобы не возникало большой нагрузки на процессор (или, хотя бы, только на небольшую часть ядер).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 31 июл 2013, 14:17 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
В общем, у нас такая схема: http://wiki.bgbilling.ru/index.php/Vlan ... ce_%2B_ISG
Как нам получать netflow-детализацию по таким интерфейсам?
Попробуйте указать в типе сервиса "Весь интерфейс" и запросить детализацию.
Цитата:
Но! Детализация по этим сессиям приходит вообще по всему роутеру. Т.е., поскольку IP-адреса на сервисе (и на трафиковой сессии) не заданы, то он берёт весь flow по всем интерфейсам. А должен бы брать только по тому интерфейсу, который указан в сервисе.
Сервис точно привязан к устройству - источнику netflow? В конфиге этого устройства не указано flow.agent.link?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 31 июл 2013, 14:50 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Amir писал(а):
Попробуйте указать в типе сервиса "Весь интерфейс" и запросить детализацию.

Уже указано для всех используемых типов сервисов.
Amir писал(а):
Сервис точно привязан к устройству - источнику netflow?

Да.
Amir писал(а):
В конфиге этого устройства не указано flow.agent.link?

Да, не указано.


Последний раз редактировалось Cromeshnic 01 авг 2013, 06:30, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 31 июл 2013, 15:01 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Насчёт SessionTrackingWorker и других воркеров - было бы полезно иметь возможность мониторить их производительность через JMX: время выполнения, текущие настройки (batchSize, delay) и т.п.
Сейчас, чтобы посмотреть, как они работают, нужно ставить уровень логирования в log4j = debug или даже trace и искать, когда он запускается и сколько работает по времени.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 01 авг 2013, 07:01 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Итого, у меня 3 главные проблемы сейчас:
- Переоформление и активные сессии
- Поднятие сессии из update-пакета без Framed-Ip-Address
- Детализация по интерфейсу


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 01 авг 2013, 10:11 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
А как Inet меняет скорость при смене тарифа?
Поменяли тариф, есть radius-сессия, но активность совпадает со стартом сессии - 0:00 сегодняшнего дня.
Прошло 10 минут со смены тарифа - скорость не поменялась.
Оно по ненулевому update-у что ли происходит?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 11 авг 2013, 12:35 
Не в сети
Клиент

Зарегистрирован: 27 окт 2009, 16:17
Сообщения: 319
Откуда: Иркутск
Карма: 18
Что насчет вопроса про смену тарифа?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 13 авг 2013, 11:50 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Amir писал(а):
Попробуйте указать в типе сервиса "Весь интерфейс" и запросить детализацию.

Видимо вы путаете детализацию и тарификацию. При тарификации для привязки трафика к сервису по интерфейсу это работает.
А детализация формируется по сырым логам независимо от тарификации трафика.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 13 авг 2013, 13:08 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Про детализацию - нашёл, где собака зарылась.

В классе InetSessionServiceImpl в методе inetSessionDetail(...) генерируется задание на отправку детализации.
В задание передаётся список сессий sessionInfoList, по которым нужно выполнить детализацию.
У каждой сессии в списке есть диапазон её адресов и список интерфейсов, по которым будет фильтроваться детализация.
sessionInfoList генерируется методом InetSessionServiceImpl.sessionInfoList(InetServ inetServ, List<InetSessionLog> sessionLogList)
Смотрим кусок кода этого метода, где сессии назначаются интерфейсы для детализации:

Код:

      if ((addressFrom == null) || (addressFrom.length == 0))
      {
        InetServType servType = this.servService.inetServTypeGet(inetServ.getTypeId());
        if (servType.isAddressAllInterface())
        {
          addressFrom = (byte[])null;
          addressTo = (byte[])null;
        }
        else
        {
          logger.warn("Address range not found for detail (inetServ:" + inetServ.getId() + ", session:" + sessionLog.getId() + "). Skipping");
          continue;
        }
      }

      InetDeviceMap.InetDeviceMapItem device = inetDeviceMap.get(sessionLog.getDeviceId());

      for (Map.Entry e : device.getFlowAgentIfaceMap().entrySet())
      {
        Integer agentDeviceId = (Integer)e.getKey();
        Set ifaces = new HashSet((Collection)e.getValue());

        Date timeFrom = sessionLog.getSessionStart();
        Date timeTo = sessionLog.getSessionStop();
        if (timeTo == null)
        {
          timeTo = new Date();
        }

        sessionInfoList.add(new InetDetailCreateEvent.SessionInfo(timeFrom, timeTo, agentDeviceId.intValue(), ifaces, new IpAddress(addressFrom),
          new IpAddress(addressTo), null));
      }

Т.е. интерфейсы для детализации для сессии берутся только из 'flow.agent.link' устройства (если 'flow.agent.link' на устройстве не указан, берутся все интерфейсы устройства - см. InetDeviceMap.parseFlowAgentMap(...) ), при этом интерфейс конкретного сервиса никак не учитывается. Это на тему "указать в типе сервиса 'Весь интерфейс'".
Вернее, есть проверка isAddressAllInterface(), но там просто зануляются адреса. А поскольку используются все интерфейсы, то в детализации у меня приходит вообще весь трафик по устройству.

Имхо, нужно в случае isAddressAllInterface() в качестве списка интерфейсов для SessionInfo брать единственный - интерфейс сервиса, игнорируя 'flow.agent.link'.

Если подумать, то установка галки "Весь интерфейс" явно противоречит установке 'flow.agent.link' на устройстве и сбору flow с вышестоящих девайсов. Хотя, галка "Весь интерфейс" в доках до сих пор не описана - хз, что разработики имеют в виду.

Кстати, последний цикл вообще выглядит странно - половину вроде нужно вынести за скобки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 13 авг 2013, 13:55 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Посмотрел Веб-статистику модуля Inet - вообще не увидел формы запроса детализации по flow на email, как это было в dialup.
Кстати, в dialup тоже было не идеально - можно было выбрать всего одну сессию и запросить детализацию только по ней. А клиенты часто хотят получить детализацию за период.
В инет неплохо бы сделать оба варианта - ведь через клиент можно получить как за период, так и по сессии.
Скажем, в истории сессий в Web сделать детализацию по списку сессий, а в просмотре трафика - по периоду.

В моём случае сессии клиенту не нужны, поэтому "История сессий" показываться не будет. Но трафики и детализация за период должны быть доступны.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 13 авг 2013, 18:46 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Cromeshnic писал(а):
Кстати, в dialup тоже было не идеально - можно было выбрать всего одну сессию и запросить детализацию только по ней. А клиенты часто хотят получить детализацию за период.
В инет неплохо бы сделать оба варианта - ведь через клиент можно получить как за период, так и по сессии.

+1
Очень необходима возможность получения детализации за период в виде N сессий (N >= 1).
Чекбокс вместо радио + обработчик это вполне решил бы, IMHO.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 14 авг 2013, 10:43 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Ппц, сейчас останавливал BGInetAccounting - остановка заняла 7 минут!
Я так понимаю, это он делал flush данных всех активных сессий в базу и на диск.

Только вот спорный вопрос - где больше данных потеряется: из-за простоя в 7 минут или не сделанного flush-а?

Код:
accounting 08-14/13:24:57 ERROR [pool-9-thread-2] SessionFlushingManager - Cannot find session with id=301126in DB!
accounting 08-14/13:24:58 ERROR [pool-9-thread-2] SessionFlushingManager - Cannot find session with id=265583in DB!
accounting 08-14/13:25:06  INFO [pool-9-thread-2] SessionFlushingManager - Flushed 4565 sessions for 178413(178370) ms.
collector 08-14/13:26:54  INFO [hrlydtlggr-p-9-t-1] HourlyDataLoggerTracker - Checking data log files to close [hours=2]...
radius 08-14/13:27:05  INFO [hrlydtlggr-p-7-t-1] HourlyDataLoggerTracker - Checking data log files to close [hours=2]...
 08-14/13:29:06  INFO [Thread-12] EventProcessor - Shutdown EventProcessor...


Кстати, у меня 26 таких ошибок: "Cannot find session with id=265583in DB!" - это нормально?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 15 авг 2013, 07:54 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Насчёт воркеров. Прописал в конфиге устройства:
Код:
#трекер (обработка сессий без наработки):
#пауза между заданиями трекинга
accounting.worker.1.tracking.1.delay=5
#максимальное количество проверенных соединений за задание
accounting.worker.1.tracking.1.batchSize=500

Остальные воркеры не указал. Думал, что будут работать с дефолтовыми настройками. На самом деле нет. Судя по коду, если указывается хоть одна строчка accounting.worker.***, то создаются только те воркеры, которые указаны. Такая неочевидная штука. Я думаю, неплохо бы упомянуть это в документации.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 21 авг 2013, 09:21 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Cromeshnic писал(а):
Ппц, сейчас останавливал BGInetAccounting - остановка заняла 7 минут!
Я так понимаю, это он делал flush данных всех активных сессий в базу и на диск.

Только вот спорный вопрос - где больше данных потеряется: из-за простоя в 7 минут или не сделанного flush-а?


В чеинджлоге 6.0:
Цитата:
ДОБАВЛЕНО Inet: Возможность отключить сброс в БД при останове InetAccounting (connection.flush.onApplicationStop=0).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 26 авг 2013, 07:47 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
UP, например

Cromeshnic писал(а):
Итого, у меня 3 главные проблемы сейчас:
- Переоформление и активные сессии
- Поднятие сессии из update-пакета без Framed-Ip-Address
- Детализация по интерфейсу


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 27 авг 2013, 14:51 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Вопрос: как учитываются трафики при создании сессии из update-пакета?

В доках:

Цитата:
Бывают ситуации, когда start-пакет не дошел до Accounting-сервера. В этом случае, при connection.start.fromUpdate=1 (значение по умолчанию) сессия создастся от текущего момента. При connection.start.fromUpdate=2 Accounting проверит, что время сессии из update/stop пакета не больше, чем значение connection.close.timeout и создаст сессию от ее начала, иначе, если время сессии больше чем connection.close.timeout, сессия создастся от текущего момента. При connection.start.fromUpdate=0 сессия без старт-пакета создана не будет.


Скажем, сессии нет в биллинге. Пришёл апдейт со счётчиками трафика X и Y, из него создаётся сессия. Эти трафики пишутся куда-нибудь? И что будет, когда придёт второй апдейт с трафиками X+x1, Y+y1 ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 28 авг 2013, 13:06 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Cromeshnic писал(а):
Вопрос: как учитываются трафики при создании сессии из update-пакета?

В доках:

Цитата:
Бывают ситуации, когда start-пакет не дошел до Accounting-сервера. В этом случае, при connection.start.fromUpdate=1 (значение по умолчанию) сессия создастся от текущего момента. При connection.start.fromUpdate=2 Accounting проверит, что время сессии из update/stop пакета не больше, чем значение connection.close.timeout и создаст сессию от ее начала, иначе, если время сессии больше чем connection.close.timeout, сессия создастся от текущего момента. При connection.start.fromUpdate=0 сессия без старт-пакета создана не будет.


Скажем, сессии нет в биллинге. Пришёл апдейт со счётчиками трафика X и Y, из него создаётся сессия. Эти трафики пишутся куда-нибудь? И что будет, когда придёт второй апдейт с трафиками X+x1, Y+y1 ?


скорее всего x1, y1 только в базу попадет . Амир, если что, поправит меня .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 28 авг 2013, 14:39 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
stark писал(а):
Cromeshnic писал(а):
Вопрос: как учитываются трафики при создании сессии из update-пакета?

В доках:

Цитата:
Бывают ситуации, когда start-пакет не дошел до Accounting-сервера. В этом случае, при connection.start.fromUpdate=1 (значение по умолчанию) сессия создастся от текущего момента. При connection.start.fromUpdate=2 Accounting проверит, что время сессии из update/stop пакета не больше, чем значение connection.close.timeout и создаст сессию от ее начала, иначе, если время сессии больше чем connection.close.timeout, сессия создастся от текущего момента. При connection.start.fromUpdate=0 сессия без старт-пакета создана не будет.


Скажем, сессии нет в биллинге. Пришёл апдейт со счётчиками трафика X и Y, из него создаётся сессия. Эти трафики пишутся куда-нибудь? И что будет, когда придёт второй апдейт с трафиками X+x1, Y+y1 ?


скорее всего x1, y1 только в базу попадет . Амир, если что, поправит меня .


Там чуть сложнее, если время сессия меньше чем connection.close.timeout, т.е мы стартуем новую сессию как бы задним чсилом и сохраняем ее трафик из update как дельту , обсчитываем.
Если больше , тогда мой описанный вариант: только x1 и y1 из второго update-а сохраняется и обсчитается. В этом случае X и Y тоже сохраняются как счетчики для того, чтобы потом вычислить x1, y1.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Общие баги, проблемы
СообщениеДобавлено: 28 авг 2013, 14:50 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Логично. Спасибо.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 262 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.087s | 78 Queries | GZIP : On ]