forum.bitel.ru http://forum.bitel.ru/ |
|
Странные записи в базе http://forum.bitel.ru/viewtopic.php?f=5&t=7508 |
Страница 1 из 1 |
Автор: | vkulakov [ 07 дек 2012, 12:34 ] |
Заголовок сообщения: | Странные записи в базе |
Сегодня полез в таблицу 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. Записей таких очень много для каждого логина и каждого договора. Откуда они взялись? |
Автор: | aardvark [ 26 дек 2012, 13:29 ] |
Заголовок сообщения: | Re: Странные записи в базе |
это fake сессии они могут генерироваться если у вас настроен reject-to-accept. ключевой показатель lid=0 и fake=1 |
Автор: | abvgd [ 03 окт 2015, 09:04 ] |
Заголовок сообщения: | Re: Странные записи в базе |
Я напортачил 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.. |
Автор: | abvgd [ 04 окт 2015, 00:17 ] |
Заголовок сообщения: | Re: Странные записи в базе |
Сессий в мониторе модуля Диалап больше, чем на 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, 00:27 ] |
Заголовок сообщения: | Re: Странные записи в базе |
Reject-to-accept выключен давно, а абоненты с нормальным балансом страдают при попытке подключиться, то адреса по второму кругу раздаются, то сессии не поднимаются из-за того, что сессия зависла и новое подключение радиус отбрасывает. |
Автор: | Phricker [ 04 окт 2015, 00:45 ] |
Заголовок сообщения: | Re: Странные записи в базе |
Если вы выключили 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." ); } } |
Автор: | abvgd [ 04 окт 2015, 02:09 ] |
Заголовок сообщения: | Re: Странные записи в базе |
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 хранятся? |
Автор: | Phricker [ 04 окт 2015, 12:17 ] |
Заголовок сообщения: | Re: Странные записи в базе |
Что-то я выпимши ерунду посоветовал На будущее не делайте delete from (в данном случае они то вам не нужны были так что ничего страшного) можно было Код: update log_session_{mid}_{yyyymm} set status = 0 where fake = 1
|
Автор: | abvgd [ 05 окт 2015, 00:41 ] |
Заголовок сообщения: | Re: Странные записи в базе |
Phricker писал(а): Что-то я выпимши ерунду посоветовал На будущее не делайте delete from (в данном случае они то вам не нужны были так что ничего страшного) можно было Код: update log_session_{mid}_{yyyymm} set status = 0 where fake = 1 спасибо, буду иметь в виду... |
Автор: | abvgd [ 05 окт 2015, 13:07 ] |
Заголовок сообщения: | Re: Странные записи в базе |
В общем проблема была не с 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 (и многих других) все в порядке с балансом, но радиус его за что-то попытался сбросить, теперь абонент заново пересоединился, а старая сессия висит в мониторе и в ошибках монитора - Превышен лимит сессий, на БРАСе одна сессия последняя, зависшей нет. За что он гасит нормальных абонентов? Опять много висящих сессий и много слипов. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |