REDISWho Module
The rediswho
module tracks the last set of login sessions for a user.
Configuration Settings
- server
-
If using Redis cluster, multiple 'bootstrap' servers may be listed here (as separate config items). These will be contacted in turn until one provides us with a valid map for the cluster. Server strings may contain unique ports e.g.:
server = '127.0.0.1:30001' server = '[::1]:30002'
Instantiation failure behaviour is controlled by
pool.start as with other modules. With clustering
however, the pool { … } section determines limits for
each node we access in the cluster, and not the cluster as
a whole.
|
- database
-
Select the Redis logical database having the specified zero-based numeric index.
- port
-
Port to connect to The default port is 6379.
- password
-
The password used to authenticate to the server.
We recommend using a strong password.
- trim_count
-
How many sessions to keep track of per user.
If there are more than this number, older sessions are deleted.
- expire_time
-
Expiry time in seconds.
Any sessions which have not received an update in this time will be automatically expired.
Queries by Acct-Status-Type
Each subsection contains insert / trim / expire queries.
The subsections are named after the contents of the Acct-Status-Type
attribute.
See dictionary.rfc2866
for the names of the various Acct-Status-Type values,
or look at the output of debug mode.
This module supports any Acct-Status-Type
. Just add a subsection
of the appropriate name, along with insert / trim / expire queries.
Default Configuration
rediswho {
server = 127.0.0.1
# database = 0
port = 6379
# password = thisisreallysecretandhardtoguess
trim_count = 15
expire_time = 86400
Start {
insert = "LPUSH %{User-Name} %l,%{Acct-Session-Id},%{&NAS-IP-Address || &NAS-IPv6-Address},%{Acct-Session-Time},%{Framed-IP-Address},%{&Acct-Input-Gigawords || 0},%{&Acct-Output-Gigawords || 0},%{&Acct-Input-Octets || 0},%{&Acct-Output-Octets || 0}"
trim = "LTRIM %{User-Name} 0 ${..trim_count}"
expire = "EXPIRE %{User-Name} ${..expire_time}"
}
Interim-Update {
insert = "LPUSH %{User-Name} %l,%{Acct-Session-Id},%{&NAS-IP-Address || &NAS-IPv6-Address},%{Acct-Session-Time},%{Framed-IP-Address},%{&Acct-Input-Gigawords || 0},%{&Acct-Output-Gigawords || 0},%{&Acct-Input-Octets || 0},%{&Acct-Output-Octets || 0}"
trim = "LTRIM %{User-Name} 0 ${..trim_count}"
expire = "EXPIRE %{User-Name} ${..expire_time}"
}
Stop {
insert = "LPUSH %{User-Name} %l,%{Acct-Session-Id},%{&NAS-IP-Address || &NAS-IPv6-Address},%{Acct-Session-Time},%{Framed-IP-Address},%{&Acct-Input-Gigawords || 0},%{&Acct-Output-Gigawords || 0},%{&Acct-Input-Octets || 0},%{&Acct-Output-Octets || 0}"
trim = "LTRIM %{User-Name} 0 ${..trim_count}"
expire = "EXPIRE %{User-Name} ${..expire_time}"
}
# Accounting-On {
# insert = ""
# trim = ""
# expire = ""
# }
# Accounting-Off {
# insert = ""
# trim = ""
# expire = ""
# }
# Failed {
# insert = ""
# trim = ""
# expire = ""
# }
}