14 |
sequence: |
sequence: |
15 |
|
|
16 |
@enumerate 1 |
@enumerate 1 |
17 |
@item UNIX Accounting |
@item UNIX accounting |
18 |
@item Detailed Request Accounting |
@item Detailed request accounting |
19 |
@item SQL Accounting |
@item @acronym{sql} accounting |
20 |
@item Custom Accounting |
@item Custom accounting |
21 |
@end enumerate |
@end enumerate |
22 |
|
|
23 |
In this sequence, only @dfn{UNIX Accounting} is obligatory, all |
In this sequence, only UNIX accounting is obligatory; all |
24 |
other methods are applied only when enabled. |
other methods are applied only when enabled. |
25 |
|
|
26 |
If any accounting type in this sequence fails, the accounting |
If any accounting type in this sequence fails, the accounting |
51 |
@cindex Detailed Request Accounting |
@cindex Detailed Request Accounting |
52 |
|
|
53 |
Radius stores the detailed information about accounting packets it receives |
Radius stores the detailed information about accounting packets it receives |
54 |
in files @* @file{radacct/@var{nasname}/detail} (@pxref{Naming Conventions}), |
in files @file{radacct/@var{nasname}/detail} (@pxref{Naming Conventions}), |
55 |
where @var{nasname} is replaced with the short name of the @NAS{} from |
where @var{nasname} is replaced with the short name of the @NAS{} from |
56 |
the @file{raddb/naslist} file (@pxref{naslist file}). |
the @file{raddb/naslist} file (@pxref{naslist file}). |
57 |
|
|
58 |
By default, this accounting type is always enabled, provided that |
By default, this accounting type is always enabled, provided that |
59 |
@file{radacct} directory exists and is writable |
@file{radacct} directory exists and is writable |
60 |
(@pxref{Naming Conventions}). To turn the detailed accounting off, |
(@pxref{Naming Conventions}). To turn the detailed accounting off, |
61 |
use @code{detail} statement in @file{config} file. For more information |
use the @code{detail} statement in the @file{config} file. For more information |
62 |
about it, @xref{acct}. |
about it, @xref{acct}. |
63 |
|
|
64 |
The accounting detail files consist of a record per each accounting |
The accounting detail files consist of a record for each accounting |
65 |
request. A record includes the timestamp and detailed |
request. A record includes the timestamp and detailed |
66 |
dump of attributes from the packet, e.g.: |
dump of attributes from the packet, e.g.: |
67 |
|
|
101 |
|
|
102 |
@comment *L2**************************************************************** |
@comment *L2**************************************************************** |
103 |
@node SQL Accounting |
@node SQL Accounting |
104 |
@section SQL Accounting |
@section @acronym{sql} Accounting |
105 |
@cindex SQL Accounting |
@cindex SQL Accounting |
106 |
|
|
107 |
The @acronym{SQL} accounting method is enabled when Radius is configured with |
The @acronym{sql} accounting method is enabled when Radius is configured with |
108 |
@option{--enable-sql} option and @file{sqlserver} file in its |
@option{--enable-sql} option and the @file{sqlserver} file in its |
109 |
configuration directory is properly set up (@pxref{sqlserver file}). |
configuration directory is properly set up (@pxref{sqlserver file}). |
110 |
|
|
111 |
This version of GNU Radius (@value{VERSION}) supports MySQL and |
This version of GNU Radius (@value{VERSION}) supports MySQL and |
112 |
PostgreSQL servers. Support for Oracle servers will be added in the |
PostgreSQL servers. It also supports @acronym{odbc}, which can be |
113 |
nearest future. |
used to build interfaces to another database management systems. |
114 |
|
|
115 |
With this accounting method enabled, @command{radiusd} will store the |
With this accounting method enabled, @command{radiusd} will store the |
116 |
information about accounting requests in the configured @acronym{SQL} database. |
information about accounting requests in the configured @acronym{sql} database. |
117 |
The accounting method is fully configurable: the Radius administrator |
The accounting method is fully configurable: the Radius administrator |
118 |
defines both the types of requests to be accounted and the information |
defines both the types of requests to be accounted and the information |
119 |
to be stored into the database. (@pxref{sqlserver file}). |
to be stored into the database (@pxref{sqlserver file}). |
120 |
|
|
121 |
@comment *L2**************************************************************** |
@comment *L2**************************************************************** |
122 |
@node Custom Acct |
@node Custom Acct |
123 |
@section Defining Custom Accounting Types. |
@section Defining Custom Accounting Types |
124 |
@cindex Custom Accounting Types |
@cindex Custom Accounting Types |
125 |
|
|
126 |
If the built-in accounting methods do not meet your requirements, |
If the built-in accounting methods do not meet your requirements, |
127 |
you can implement your own accounting methods. There are two ways |
you can implement your own. There are two ways |
128 |
for doing so: |
of doing so: |
129 |
|
|
130 |
@enumerate 1 |
@enumerate 1 |
131 |
@item Using a Guile procedure. |
@item Using a Guile procedure. |
133 |
@end enumerate |
@end enumerate |
134 |
|
|
135 |
To use a Guile procedure for accounting, the name of the procedure |
To use a Guile procedure for accounting, the name of the procedure |
136 |
must be specified as a value to @attr{Scheme-Acct-Procedure} attribute |
must be specified as a value to the @attr{Scheme-Acct-Procedure} attribute |
137 |
in @RHS{} list of a @file{hints} entry, e.g.: |
in the @RHS{} list of a @file{hints} entry, e.g.: |
138 |
|
|
139 |
@example |
@example |
140 |
DEFAULT NULL Scheme-Acct-Procedure = "my-acct" |
DEFAULT NULL Scheme-Acct-Procedure = "my-acct" |
142 |
@noindent |
@noindent |
143 |
|
|
144 |
For a detailed description of Scheme accounting procedures, |
For a detailed description of Scheme accounting procedures, |
145 |
@xref{Accounting with Scheme}. |
@pxref{Accounting with Scheme}. |
146 |
|
|
147 |
Another way of implementing your own accounting method is using |
Another way of implementing your own accounting method is using |
148 |
an external program. This is less effective than the methods described |
an external program. This is less effective than the methods described |
149 |
above, but may be necessary sometimes. To invoke the program, use |
above, but may be necessary sometimes. To invoke the program, use |
150 |
the following statement in the @LHS{} of @file{hints} entry: |
the following statement in the @LHS{} of the @file{hints} entry: |
151 |
|
|
152 |
@example |
@example |
153 |
Acct-Ext-Program = "@var{progname} @var{args}" |
Acct-Ext-Program = "@var{progname} @var{args}" |
154 |
@end example |
@end example |
155 |
|
|
156 |
The @var{progname} must be the full path to the program, @var{args} --- |
The @var{progname} must be the full path to the program, and @var{args} |
157 |
any arguments it needs. The usual substitutions may be used in |
any arguments it needs. The usual substitutions may be used in |
158 |
@var{args} to pass any request attributes to the program |
@var{args} to pass any request attributes to the program |
159 |
(@pxref{Macro Substitution}). |
(@pxref{Macro Substitution}). |
160 |
|
|
161 |
For a detailed description of @attr{Acct-Ext-Program}, |
For a detailed description of @attr{Acct-Ext-Program}, |
162 |
@xref{Acct-Ext-Program}. |
@pxref{Acct-Ext-Program}. |