BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 29 мар 2024, 03:58

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Странные записи в базе
СообщениеДобавлено: 07 дек 2012, 12:34 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
Сегодня полез в таблицу bgbilling.log_session_1_201212 и обнаружил записи следующего характера (надеюсь будет понятно, что к чему относиться):
Код:
id lid nas_id nas_port session_id session_start session_stop session_time session_cost from_number to_number input_octets output_octets status lr ipaddr login_name sid_time fake
5435 0 24 226227579 0/1/0/2210.1319_0D7BF57E "2012-12-01 01:17:21" "2012-12-01 01:17:21" 0 0.00000 e811.32a0.a079 2210.1319 0 0 1 -1 0 IFK-040/12 0 1

Проблема в том, что в поле lid стоит 0, соответственно, в отчёте в договоре эти записи не отображаются. Также длительность этих сессий равна 0. Записей таких очень много для каждого логина и каждого договора.
Откуда они взялись?

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странные записи в базе
СообщениеДобавлено: 26 дек 2012, 13:29 
Не в сети

Зарегистрирован: 22 дек 2008, 13:02
Сообщения: 270
Откуда: Москва
Карма: 27
это fake сессии они могут генерироваться если у вас настроен reject-to-accept. ключевой показатель lid=0 и fake=1


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странные записи в базе
СообщениеДобавлено: 03 окт 2015, 09:04 
Не в сети

Зарегистрирован: 05 мар 2015, 17:17
Сообщения: 56
Карма: 0
Я напортачил c Reject-to-Accept на радиусе 5.0 и теперь у меня в log_session куча FAKE сессий, после каждого рестарта радиуса в статусе соединений больше 13тыс., потом они переходят в sleep и постепенно уходят, из-за этого есть проблемы с авторизацией у абонентов. Подскажите, как эту прорву FAKE-сессий убить, чтобы радиус и абоненты спокойно работали?

drop -nas не помогло :( после рестарта опять 13тыс. лишних соединений

в connection.log много ошибок типа
ERROR [Thread-15] connections - [ 2001; 3569; 87358 ] Removed incorrect link on this session from TrafficInspector, address x.y.z.a
ERROR [pool-4-thread-1] connections - [ FAKE; 6276; 71990 ] Stop with incorrect Acct-Session-Id!

в processor.log много ошибок
ERROR [Thread-31] processor - IP address marked as used incorrect: x.y.z.z, removing..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странные записи в базе
СообщениеДобавлено: 04 окт 2015, 00:17 
Не в сети

Зарегистрирован: 05 мар 2015, 17:17
Сообщения: 56
Карма: 0
Сессий в мониторе модуля Диалап больше, чем на BRASe и в radius_status, раза в два больше, лишние сессии висят и не сбрасываются, не закрываются.
Прихожу к выводу, что радиус авторизовал абонента с недостаточным балансом с фэйк-сессией, а bras из-за неправильно настроенного Forward-Policy эту сессию не поднял, но радиус уже имеет у себя сессию, выдал идентификатор, ип-адрес и т.д. Абонент пытается опять подключиться, и все по-новой, так все адреса раздались, т.к. я в reject-to-accept настроил общий пул, теперь в radius.log проблема с адресами:

10-03/20:56:44 ERROR [pool-4-thread-3] LoggingPrintStream - Stop without start!
10-03/20:56:44 ERROR [pool-4-thread-3] LoggingPrintStream -
Type=ACCOUNTING_REQUEST
Attributes:
User-Name=6491
NAS-Identifier=192.168.5.6
NAS-IP-Address=192.168.5.6
NAS-Port=587218619
Service-Type=2
Framed-Protocol=1
Acct-Input-Octets=0
Framed-IP-Address=x.y.z.a
Acct-Output-Octets=0
Framed-IP-Netmask=255.255.255.255
Acct-Status-Type=2
Acct-Session-Time=0
Acct-Input-Packets=0
Acct-Session-Id=0102FFFF68007F15-560F6331
Acct-Authentic=1
Acct-Terminate-Cause=17
NAS-Port-Id=2/3 vlan-id 52 pppoe 16059
Acct-Output-Packets=0
Event-Timestamp=1443849010
Acct-Output-Gigawords=0
Acct-Input-Gigawords=0
Calling-Station-Id=204e.7fce.1171
NAS-Port-Type=5
Acct-Input-Packets-64=
NAS-Real-Port=587202612
Platform-Type=4
OS-Version=12.1.1.6p1
Acct-Mcast-Out-Packets=0
Acct-Output-Packets-64=
Session-Error-Msg=Duplicate ip address detected
Session-Error-Code=236
Acct-Input-Octets-64=
Acct-Mcast-In-Octets=0
Acct-Output-Octets-64=
Mac-Addr=20-4e-7f-ce-4d-7c
Acct-Mcast-In-Octets-64=
Acct-Mcast-Out-Octets-64=
Acct-Mcast-In-Packets-64=
Acct-Mcast-Out-Octets=0
Acct-Mcast-Out-Packets-64=
Medium-Type=11
Acct-Mcast-In-Packets=0


Последний раз редактировалось abvgd 04 окт 2015, 02:31, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странные записи в базе
СообщениеДобавлено: 04 окт 2015, 00:27 
Не в сети

Зарегистрирован: 05 мар 2015, 17:17
Сообщения: 56
Карма: 0
Reject-to-accept выключен давно, а абоненты с нормальным балансом страдают при попытке подключиться, то адреса по второму кругу раздаются, то сессии не поднимаются из-за того, что сессия зависла и новое подключение радиус отбрасывает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странные записи в базе
СообщениеДобавлено: 04 окт 2015, 00:45 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Если вы выключили Reject-To-Accept в настройках DialUp, то можете просто попробовать грохнуть эти сессии.
Либо простым
Код:
delete from log_session where blabla bla
в базе и рестартом BGRadiusDialup (хотя может и он не обязателен), либо динкодом
Код:
package ru.ellcom.bgbilling.scripts.dialup;

import java.sql.*;
import java.util.*;

import bitel.billing.server.dialup.bean.busevent.DialupSessionBreakEvent;


import ru.bitel.bgbilling.kernel.event.EventProcessor;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.ServerUtils;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;

public class breakSessions
   extends GlobalScriptBase
   {
      static int DIALUP_MID = 1; //ID модуля DialUp
      
      @Override
      public void execute( Setup setup, ConnectionSet connectionSet )
         throws Exception
      {
         Connection con  = connectionSet.getConnection();
         
         String table = ServerUtils.getModuleMonthTableName( "log_session", new java.util.Date(), DIALUP_MID );
         int count = 0;
         
         print("Start");
         long timeStart = System.currentTimeMillis();
         String query =    " SELECT id FROM " + table + " WHERE lid = 0 AND status = 1 ";
         java.sql.PreparedStatement ps = con.prepareStatement( query );
         ResultSet rs = ps.executeQuery();
         while ( rs.next() )
         {
            count++;
            int sessionId = rs.getInt( 1 );
            EventProcessor.getInstance().publish( new DialupSessionBreakEvent( DIALUP_MID, sessionId ) );
         }
         rs.close();
         ps.close();
         print("Сброшено " + count + " соединений");
         long timeEnd = System.currentTimeMillis();
         print( "Process time: " + (timeEnd - timeStart)/1000 + " s." );
      }
   }

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странные записи в базе
СообщениеДобавлено: 04 окт 2015, 02:09 
Не в сети

Зарегистрирован: 05 мар 2015, 17:17
Сообщения: 56
Карма: 0
Phricker писал(а):
Код:
delete from log_session where blabla bla

Спасибо за отклик!
удалил фэйки - delete from log_session_1_201510 where fake=1
после рестарта слипов стало гораздо меньше:

version 5.0 build 300 from 12.10.2011 17:42:01
03.10.2015 22:25:30 5370 2653 2717 0
Request accounts per minute start: 0; stop: 8; update: 4
Request auths per minute accept: 0; reject: 7

Откуда эти слипы берутся? Делаю ./radius.sh ps - в списке слипов заметно больше, чем активных. Они (слипы) тоже в log_session хранятся?
А все прежние ошибки остались. Ошибки Stop with incorrect Acct-Session-Id! и Session-Error-Msg=Duplicate ip address detected ушли, после того, идентификатор НАСа привел в соответствие :facepalm:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странные записи в базе
СообщениеДобавлено: 04 окт 2015, 12:17 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Что-то я выпимши ерунду посоветовал :D
На будущее не делайте delete from (в данном случае они то вам не нужны были так что ничего страшного)
можно было
Код:
update log_session_{mid}_{yyyymm} set status = 0 where fake = 1

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странные записи в базе
СообщениеДобавлено: 05 окт 2015, 00:41 
Не в сети

Зарегистрирован: 05 мар 2015, 17:17
Сообщения: 56
Карма: 0
Phricker писал(а):
Что-то я выпимши ерунду посоветовал :D
На будущее не делайте delete from (в данном случае они то вам не нужны были так что ничего страшного)
можно было
Код:
update log_session_{mid}_{yyyymm} set status = 0 where fake = 1

спасибо, буду иметь в виду... :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странные записи в базе
СообщениеДобавлено: 05 окт 2015, 13:07 
Не в сети

Зарегистрирован: 05 мар 2015, 17:17
Сообщения: 56
Карма: 0
В общем проблема была не с reject-to-accept, настроил аларм и получаю письма:

ID события: radius.dialup.error.session.drop Время регистрации события: 05.10.2015 09:50:47

Не удалось разорвать сессию: NASID=4; LOGIN: 7566; START: 05.10.2015 08:36:09 после 5 попыток сброса. Количество попыток сброса настраивается переменной 'nas.inspector.kill.max_messages' конфигурации NASа, интервал между попытками в секундах - 'nas.inspector.sleep_time'.

Сделал начисления и начались отключения,абонентов с отрицательным балансом радиус потушил, но у абонента 7566 (и многих других) все в порядке с балансом, но радиус его за что-то попытался сбросить, теперь абонент заново пересоединился, а старая сессия висит в мониторе и в ошибках монитора - Превышен лимит сессий, на БРАСе одна сессия последняя, зависшей нет. За что он гасит нормальных абонентов?
Опять много висящих сессий и много слипов.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

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