Hello Joe -

I would be inclined to use method d) so you get a copy of the accounting 
requests in a separate process where you can do whatever you need to without 
impacting your main process.

You would do something like this (assuming you are using Handlers):


…..

<Handler Request-Type = Accounting-Request>

        AuthByPolicy ContinueAlways

        <AuthBy RADIUS>

                # forward a copy to a separate process

                ……

                IgnoreAccountingResponse

        </AuthBy>

        <AuthBy SQL>

                # do normal accounting

                …..

        </AuthBy>

</Handler>


Its also a good idea to have separate Radiator processes for authentication and 
accounting in any case.

regards

Hugh



On 28 Jul 2013, at 18:21, Joe Hughes <joeyconcr...@gmail.com> wrote:

> Hi
> 
> Simple question really.
> 
> I want to introduce MongoDB as a "test" server for storing accounting and 
> session data.
> 
> We currently use MSSQL, it works well, but the large amount of data (and 
> related joins into other data islands) can become unwieldy over time - 
> especially for historic reporting. I have done some work with MongoDB and 
> other systems (with relatively straight forward schemas), and storing 
> accounting\session seems well suited for this.  Don't get me wrong, its not 
> that MSSQL\MySQL aren't up to the task, I just think this is well suited for 
> NoSQL and I am keen to satisfy my technical curiosity..
> 
> I am considering the best ways of getting the accounting data from our RADIUS 
> servers \ SQL databases into MongoDB.
> 
> Looking for some feedback\comments.
> 
> Some options;
> 
> a) Write a accounting hook to break apart the accounting message, construct a 
> JSON request and send it off to a remote application server. * Downside is 
> the risk of blocking\disrupting the main process.
> 
> b) Spool the messages to disk, have an out-of-process script parse the files, 
> construct a JSON (or MongoDB request) , send it to a remote server and delete 
> the file. Downside is some disk\write IO, nothing too taxing. * Out of 
> process = good.
> 
> c) At the DB level, clone the accounting messages into another table. Script 
> reads the rows, processes as above, then deletes the rows. * Some extra DB 
> load.
> 
> d) Possibly silently forwarding (or replicating) the accounting message to 
> another server and doing one of the above
> 
> Anything I have missed. I am leaning towards b) or c)
> 
> Is anybody else using NoSQL for this type of application? Any feedback?
> 
> Regards
> 
> Joe
> 
> 
> 
> 
> 
> 
> _______________________________________________
> radiator mailing list
> radiator@open.com.au
> http://www.open.com.au/mailman/listinfo/radiator


--

Hugh Irvine
h...@open.com.au

Radiator: the most portable, flexible and configurable RADIUS server 
anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald, 
Platypus, Freeside, TACACS+, PAM, external, Active Directory, EAP, TLS, 
TTLS, PEAP, TNC, WiMAX, RSA, Vasco, Yubikey, MOTP, HOTP, TOTP,
DIAMETER etc. 
Full source on Unix, Windows, MacOSX, Solaris, VMS, NetWare etc.

_______________________________________________
radiator mailing list
radiator@open.com.au
http://www.open.com.au/mailman/listinfo/radiator

Reply via email to