Stránka 1 z 1

freeradius a zvláštní chování acct

Napsal: 01 Nov 2019 09:55
od okoun
Ahoj, nevíte prosím někdo, nějak to nemohu najít co kde mám špatně v konfigu když v acct freeradiusu se mi pouze aktualizuje po interim updatu záznam v mysql radacct na místo toho aby se po tom čase udělal záznam nový (new line), takto se mi stalo to že mi u zákazníků déle připojených přetekl counter a přišel jsem o statistiku stahovaných dat. Pokud se zázkazník odpojí a znovu připojí tak to ale nový záznam udělá, pouze ho to nedělá při updatu.

Re: freeradius a zvláštní chování acct

Napsal: 01 Nov 2019 10:51
od Standula
Podivej se do konfigurace na sekci accounting update query, a za jakych podminek se aktualizuje zaznam. Tusim, ze je tou pouze podle session a NAS. Nastav si podminky podle toho jake potrebujes.

Re: freeradius a zvláštní chování acct

Napsal: 01 Nov 2019 11:42
od okoun
no a to právě taková query tam není, tak nevím co je špatně, mám verzi 2.2.5

Re: freeradius a zvláštní chování acct

Napsal: 01 Nov 2019 11:49
od Standula
zastav si freeradius a pusti si ho na popredi s parametry -X -xxxx a vypise to celou konfiguraci. Tam si to muzes zkusit dohledat

Re: freeradius a zvláštní chování acct

Napsal: 01 Nov 2019 22:16
od pixall
okoun píše:Ahoj, nevíte prosím někdo, nějak to nemohu najít co kde mám špatně v konfigu když v acct freeradiusu se mi pouze aktualizuje po interim updatu záznam v mysql radacct na místo toho aby se po tom čase udělal záznam nový (new line), takto se mi stalo to že mi u zákazníků déle připojených přetekl counter a přišel jsem o statistiku stahovaných dat. Pokud se zázkazník odpojí a znovu připojí tak to ale nový záznam udělá, pouze ho to nedělá při updatu.


Nepripada mi rozumne pri interim update chciet pridat novy zaznam do radacct, budete mat v tej tabulke dobry masaker. Na pretekanie pocitadiel pohladajte a implementujte GigaWords, tym sa zabezpeci aby boli pocitadla v poriadku aj po preteceni. Myslim ze to potrebovalo zapnut podporu GigaWords na strane NASka a aj na strane freeradiusu. Mame to nasadene, ale uz je to viac ako 10 rokov ked sme to robili, detaily si uz nepamatam...
https://wiki.freeradius.org/guide/FAQ#c ... ap-at-4-gb

Re: freeradius a zvláštní chování acct

Napsal: 01 Nov 2019 23:34
od okoun
skvělé a co když potřebuješ mít statistiku třeba za měsíc stažená data a zákazník je připojen 50 dnů tak to nespočítáš z té tabulky....

Re: freeradius a zvláštní chování acct

Napsal: 02 Nov 2019 01:38
od pixall
okoun píše:skvělé a co když potřebuješ mít statistiku třeba za měsíc stažená data a zákazník je připojen 50 dnů tak to nespočítáš z té tabulky....


To mas pravdu... Ale to nespocitas rozumne ani z radacct, ked do nej narves interim updaty ako samostatne zaznamy. V interim update ti (za normalnych okolnosti) nepride z NASka delta (rozdiel dat oproti poslednemu pocitadlu), ale aktualna hodnota pocitadla (od zaciatku session). Ked budes interim updaty insertovat, budes mat tie iste prenesene data ulozene v radacct viackrat. Okrem toho, ak si to nejak v tej tabulke neosetris (nad ramec vychodzieho nastavenia), budu mat vsetky zaznamy rovnaky AcctStartTime aj AcctStopTime, budes tam mat popretekane pocitadla, a bude z toho taky gulas, ze z toho velmi tazko spocitas spravny vysledok. A v neposlednom rade to bude nenormalny zahul na hardware - pre 1000 userov a 5-minutovy interim interval to vychadza na viac ako 105 milionov zaznamov za rok. Pre kontrolu viacnasobnych prihlaseni je potrebny select z tejto tabulky, pre spocitanie prenesenych dat tiez - obavam, sa, ze bezny hardware toto neunesie. Tudy cesta nevede. Ak by si si bol ochotny nechat poradit, ako to bude fungovat a bude to efektivne:

V prvom rade si vyries prenos celych pocitadiel (problem s pretekanim) cez GigaWords, bez toho to sa dalej neda pohnut. Pre dalsie vypocty potrebujes mat kompletne pocitadla, nie osekane. (Ak sa nemylim, 32-bitove pocitadlo pretecie pri plne vytazenej 100 Mbps linke za cca 5 minut.)

Na statistiku prenesenych dat si potom sprav dalsiu samostatnu tabulku, podla toho ako tie data chces mat evidovane pre dalsie pouzitie. My samostatne evidujeme prenesene data za kazdy den za kazdeho usera, a rozlisujeme silnu a slabu prevadzku (8-24h vs. 0-8h), takze mam v tejto tabulke stlpce s vyznamom - userid, datum, down_silna, up_silna, down_slaba, up_slaba. Mozno ti bude stacit aj jednoduchsia tabulka.

Potom si na tabulku radacct zaves v SQL trigger, napriklad takyto
CREATE TRIGGER radacct_update_acccounter_trig AFTER UPDATE ON public.radacct FOR EACH ROW EXECUTE PROCEDURE radacct_update_acccounter()
a vytvor si v databaze funkciu radacct_update_acccounter(). Tato funkcia bude zavolana databazou pri kazdom interim update, aj pri ukonceni session. V tejto funkcii bude mozne pristupovat k poslednej hodnote pocitadla (ulozenej v databaze) aj k novej hodnote (ktora prisla v interim update). Z tychto dvoch hodnot sa tu vypocita delta (rozdiel), a tato sa pomocou update pripocita k prislusnemu riadku v tvojej tabulke. Ak update nezmenil ziadny zaznam, pocitadlo pre tohto usera pre tento den neexistuje, a spravi sa insert - vytvori sa zaznam pre tento den.

Re: freeradius a zvláštní chování acct

Napsal: 11 Dec 2019 13:09
od okoun
tak jsem si stahnul nejnovější verzi freeradiusu 3.něco a tam to prý má automaticky tak být že co update to nový řádek, ale není, tak fakt nevim proč mě to nemá rádo :(