Hi, When i use radmin ... -e 'hup main.log', linelog (log_request, log_control & log_reply) will not write information into main.log. Why ? Before calling radmin (main.log): Mon Oct 17 10:13:15 2016 : Info: REQUEST(stefan.kudacek@orangenet.sk): User-Name = "stefan.kudacek@orangenet.sk", User-Password = "???", Service-Type = Framed-User, Framed-Protocol = PPP, NAS-Identifier = "N-101-BA-BAS-10", NAS-Port = 83951616, NAS-Real-Port = 1358957324, NAS-Port-Type = Virtual, NAS-Port-Id = "5/1 vlan-id 2828 pppoe 13058", Medium-Type = DSL, Mac-Addr = "e8-94-f6-c3-ea-70", Platform-Type = 6, OS-Version = "12.1.1.10p1", Agent-Circuit-Id = 0x4d4154555f433532382d323223313132353539303236232061746d20322f35343a312e3332, ADSL-Agent-Circuit-Id = 0x4d4154555f433532382d323223313132353539303236232061746d20322f35343a312e3332, Event-Timestamp = "Oct 17 2016 10:13:15 CEST", NAS-IP-Address = 213.151.237.216, Huntgroup-Name = "BRAS" Mon Oct 17 10:13:15 2016 : Info REPLY(stefan.kudacek@orangenet.sk): Framed-Protocol = PPP, Context-Name = "INET", Qos-Policing-Profile-Name = "in1024K", Qos-Policy-Queuing = "pwfq8192K", Subscriber-Profile-Name = "IPv6_SUBS", Service-Type = Framed-User, Class = 0x30333133393232333937, Bind-Int-Interface-Name = "Virtual-Template6", Qos-Metering-Profile-Name = "down8192K" Mon Oct 17 10:13:15 2016 : Auth: (0) Login OK: [ stefan.kudacek@orangenet.sk/???] (from client BRAS1(Massmarket) port 83951616) After calling radmin (main.log): Mon Oct 17 10:17:35 2016 : Auth: (10) Login OK: [ stefan.kudacek@orangenet.sk/???] (from client BRAS1(Massmarket) port 83941716) Debug output: Server was built with: accounting : yes authentication : yes ascend-binary-attributes : yes coa : yes control-socket : yes detail : yes dhcp : yes dynamic-clients : yes osfc2 : no proxy : yes regex-pcre : no regex-posix : yes regex-posix-extended : yes session-management : yes stats : yes tcp : yes threads : yes tls : yes unlang : yes vmps : yes developer : yes Server core libs: freeradius-server : 3.0.11 talloc : 2.0.* ssl : 0.9.8b release Endianness: little Compilation flags: cppflags : cflags : -I/home/radiusd/freeradius-server-3.0.11 -I/home/radiusd/freeradius-server-3.0.11/src -include /home/radiusd/freeradius-server-3.0.11/src/freeradius-devel/autoconf.h -include /home/radiusd/freeradius-server-3.0.11/src/freeradius-devel/build.h -include /home/radiusd/freeradius-server-3.0.11/src/freeradius-devel/features.h -include /home/radiusd/freeradius-server-3.0.11/src/freeradius-devel/radpaths.h -fno-strict-aliasing -g3 -Wall -std=c99 -D_GNU_SOURCE -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DOPENSSL_NO_KRB5 -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef -Wformat-y2k -Wno-format-extra-args -Wno-format-zero-length -Wno-cast-align -Wformat-nonliteral -Wformat-security -Wformat=2 -DWITH_VERIFY_PTR=1 -DIS_MODULE=1 ldflags : libs : -lcrypto -lssl -ltalloc -lnsl -lresolv -ldl -lpthread Copyright (C) 1999-2016 The FreeRADIUS server project and contributors There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE You may redistribute copies of FreeRADIUS under the terms of the GNU General Public License For more information about these matters, see the file named COPYRIGHT Starting - reading configuration files ... including dictionary file /app/radius/freeradius-3.0.11/share/freeradius/dictionary including dictionary file /app/radius/freeradius-3.0.11/share/freeradius/dictionary.dhcp including dictionary file /app/radius/freeradius-3.0.11/share/freeradius/dictionary.vqp including dictionary file /app/radius/conf/dsl-massmarket/dictionary including configuration file /app/radius/conf/dsl-massmarket/radiusd.conf including configuration file /app/radius/conf/dsl-massmarket/templates.conf including configuration file /app/radius/conf/dsl-massmarket/clients.conf including files in directory /app/radius/conf/dsl-massmarket/mods-enabled/ including configuration file /app/radius/conf/dsl-massmarket/mods-enabled/unpack including configuration file /app/radius/conf/dsl-massmarket/mods-enabled/files including configuration file /app/radius/conf/dsl-massmarket/mods-enabled/expr including configuration file /app/radius/conf/dsl-massmarket/mods-enabled/preprocess including configuration file /app/radius/conf/dsl-massmarket/mods-enabled/chap including configuration file /app/radius/conf/dsl-massmarket/mods-enabled/attr_filter including configuration file /app/radius/conf/dsl-massmarket/mods-enabled/always including configuration file /app/radius/conf/dsl-massmarket/mods-enabled/linelog including configuration file /app/radius/conf/dsl-massmarket/mods-enabled/perl including configuration file /app/radius/conf/dsl-massmarket/mods-enabled/realm including configuration file /app/radius/conf/dsl-massmarket/mods-enabled/pap including files in directory /app/radius/conf/dsl-massmarket/policy-enabled/ including configuration file /app/radius/conf/dsl-massmarket/policy-enabled/bras including configuration file /app/radius/conf/dsl-massmarket/policy-enabled/accounting including configuration file /app/radius/conf/dsl-massmarket/policy-enabled/huntgroup including configuration file /app/radius/conf/dsl-massmarket/policy-enabled/lns including configuration file /app/radius/conf/dsl-massmarket/policy-enabled/username including configuration file /app/radius/conf/dsl-massmarket/policy-enabled/nas including files in directory /app/radius/conf/dsl-massmarket/sites-enabled/ including configuration file /app/radius/conf/dsl-massmarket/sites-enabled/control-socket including configuration file /app/radius/conf/dsl-massmarket/sites-enabled/default main { name = "dsl-massmarket" prefix = "/app/radius/freeradius-v3" localstatedir = "/app_log/radius/dsl-massmarket/" sbindir = "/app/radius/freeradius-v3/sbin" logdir = "/app_log/radius/dsl-massmarket/" run_dir = "/app_log/radius/dsl-massmarket/" libdir = "/app/radius/freeradius-v3/lib" radacctdir = "/app_log/radius/dsl-massmarket//radacct" panic_action = "gdb -silent -x /app/radius/conf/dsl-massmarket/panic.gdb %e %p 2>&1 | tee /app_log/radius/dsl-massmarket//gdb-dsl-massmarket-%p.log" hostname_lookups = no max_request_time = 5 cleanup_delay = 2 max_requests = 25600 pidfile = "/app_log/radius/dsl-massmarket//radius.pid" checkrad = "/app/radius/freeradius-v3/sbin/checkrad" debug_level = 0 proxy_requests = no log { stripped_names = no auth = yes auth_badpass = yes auth_goodpass = yes colourise = yes msg_denied = "You are already logged in - access denied" } resources { } security { max_attributes = 200 reject_delay = 0.000000 status_server = yes allow_vulnerable_openssl = "yes" } } radiusd: #### Loading Realms and Home Servers #### radiusd: #### Loading Clients #### client localhost { ipaddr = 127.0.0.1 require_message_authenticator = no secret = <<< secret >>> nas_type = "other" proto = "*" limit { max_connections = 16 lifetime = 0 idle_timeout = 30 } } client BRAS1(Massmarket) { ipv4addr = require_message_authenticator = no secret = <<< secret >>> limit { max_connections = 16 lifetime = 0 idle_timeout = 30 } } client BRAS2(Massmarket) { ipv4addr = require_message_authenticator = no secret = <<< secret >>> limit { max_connections = 16 lifetime = 0 idle_timeout = 30 } } client BRAS3(Massmarket) { ipv4addr = require_message_authenticator = no secret = <<< secret >>> limit { max_connections = 16 lifetime = 0 idle_timeout = 30 } } client BRAS1(B2B) { ipv4addr = require_message_authenticator = no secret = <<< secret >>> limit { max_connections = 16 lifetime = 0 idle_timeout = 30 } } client BRAS2(B2B) { ipv4addr = require_message_authenticator = no secret = <<< secret >>> limit { max_connections = 16 lifetime = 0 idle_timeout = 30 } } Debugger not attached # Creating Auth-Type = PAP # Creating Auth-Type = CHAP radiusd: #### Instantiating modules #### modules { # Loaded module rlm_unpack # Loading module "unpack" from file /app/radius/conf/dsl-massmarket/mods-enabled/unpack # Loaded module rlm_files # Loading module "files" from file /app/radius/conf/dsl-massmarket/mods-enabled/files files { filename = "/app/radius/conf/dsl-massmarket/mods-config/files/authorize" usersfile = "/app/radius/conf/dsl-massmarket/mods-config/files/authorize" acctusersfile = "/app/radius/conf/dsl-massmarket/mods-config/files/accounting" preproxy_usersfile = "/app/radius/conf/dsl-massmarket/mods-config/files/pre-proxy" } # Loaded module rlm_expr # Loading module "expr" from file /app/radius/conf/dsl-massmarket/mods-enabled/expr expr { safe_characters = "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /äéöüàâæçèéêëîïôœùûüaÿÄÉÖÜßÀÂÆÇÈÉÊËÎÏÔŒÙÛÜŸ" } # Loaded module rlm_preprocess # Loading module "preprocess" from file /app/radius/conf/dsl-massmarket/mods-enabled/preprocess preprocess { with_ascend_hack = no ascend_channels_per_line = 23 with_ntdomain_hack = no with_specialix_jetstream_hack = no with_cisco_vsa_hack = no with_alvarion_vsa_hack = no } # Loaded module rlm_chap # Loading module "chap" from file /app/radius/conf/dsl-massmarket/mods-enabled/chap # Loaded module rlm_attr_filter # Loading module "attr_filter.post-proxy" from file /app/radius/conf/dsl-massmarket/mods-enabled/attr_filter attr_filter attr_filter.post-proxy { filename = "/app/radius/conf/dsl-massmarket/mods-config/attr_filter/post-proxy" key = "%{Realm}" relaxed = no } # Loading module "attr_filter.pre-proxy" from file /app/radius/conf/dsl-massmarket/mods-enabled/attr_filter attr_filter attr_filter.pre-proxy { filename = "/app/radius/conf/dsl-massmarket/mods-config/attr_filter/pre-proxy" key = "%{Realm}" relaxed = no } # Loading module "attr_filter.access_reject" from file /app/radius/conf/dsl-massmarket/mods-enabled/attr_filter attr_filter attr_filter.access_reject { filename = "/app/radius/conf/dsl-massmarket/mods-config/attr_filter/access_reject" key = "%{User-Name}" relaxed = no } # Loading module "attr_filter.access_challenge" from file /app/radius/conf/dsl-massmarket/mods-enabled/attr_filter attr_filter attr_filter.access_challenge { filename = "/app/radius/conf/dsl-massmarket/mods-config/attr_filter/access_challenge" key = "%{User-Name}" relaxed = no } # Loading module "attr_filter.accounting_response" from file /app/radius/conf/dsl-massmarket/mods-enabled/attr_filter attr_filter attr_filter.accounting_response { filename = "/app/radius/conf/dsl-massmarket/mods-config/attr_filter/accounting_response" key = "%{User-Name}" relaxed = no } # Loaded module rlm_always # Loading module "reject" from file /app/radius/conf/dsl-massmarket/mods-enabled/always always reject { rcode = "reject" simulcount = 0 mpp = no } # Loading module "fail" from file /app/radius/conf/dsl-massmarket/mods-enabled/always always fail { rcode = "fail" simulcount = 0 mpp = no } # Loading module "ok" from file /app/radius/conf/dsl-massmarket/mods-enabled/always always ok { rcode = "ok" simulcount = 0 mpp = no } # Loading module "handled" from file /app/radius/conf/dsl-massmarket/mods-enabled/always always handled { rcode = "handled" simulcount = 0 mpp = no } # Loading module "invalid" from file /app/radius/conf/dsl-massmarket/mods-enabled/always always invalid { rcode = "invalid" simulcount = 0 mpp = no } # Loading module "userlock" from file /app/radius/conf/dsl-massmarket/mods-enabled/always always userlock { rcode = "userlock" simulcount = 0 mpp = no } # Loading module "notfound" from file /app/radius/conf/dsl-massmarket/mods-enabled/always always notfound { rcode = "notfound" simulcount = 0 mpp = no } # Loading module "noop" from file /app/radius/conf/dsl-massmarket/mods-enabled/always always noop { rcode = "noop" simulcount = 0 mpp = no } # Loading module "updated" from file /app/radius/conf/dsl-massmarket/mods-enabled/always always updated { rcode = "updated" simulcount = 0 mpp = no } # Loaded module rlm_linelog # Loading module "log_request" from file /app/radius/conf/dsl-massmarket/mods-enabled/linelog linelog log_request { filename = "/app_log/radius/dsl-massmarket/log.gen" escape_filenames = no syslog_severity = "info" permissions = 384 format = "%t : Info: REQUEST(%{User-Name}): %{pairs:request:}" } # Loading module "log_control" from file /app/radius/conf/dsl-massmarket/mods-enabled/linelog linelog log_control { filename = "/app_log/radius/dsl-massmarket/log.gen" escape_filenames = no syslog_severity = "info" permissions = 384 format = "%t : Info: CONTROL(%{User-Name}): %{pairs:control:}" } # Loading module "log_proxy_request" from file /app/radius/conf/dsl-massmarket/mods-enabled/linelog linelog log_proxy_request { filename = "/app_log/radius/dsl-massmarket/log.gen" escape_filenames = no syslog_severity = "info" permissions = 384 format = "%t : Info: PROXY-REQUEST(%{User-Name}): %{pairs:proxy-request:}" } # Loading module "log_reply" from file /app/radius/conf/dsl-massmarket/mods-enabled/linelog linelog log_reply { filename = "/app_log/radius/dsl-massmarket/log.gen" escape_filenames = no syslog_severity = "info" permissions = 384 format = "%t : Info REPLY(%{User-Name}): %{pairs:reply:}" } # Loading module "log_proxy_reply" from file /app/radius/conf/dsl-massmarket/mods-enabled/linelog linelog log_proxy_reply { filename = "/app_log/radius/dsl-massmarket/log.gen" escape_filenames = no syslog_severity = "info" permissions = 384 format = "%t : Info PROXY-REPLY(%{User-Name}): Packet-Type=%{proxy-reply:Packet-Type} %{pairs:proxy-reply:}" } # Loaded module rlm_perl # Loading module "perl" from file /app/radius/conf/dsl-massmarket/mods-enabled/perl perl { filename = "/app/radius/conf/dsl-massmarket/mods-config/perl/radius.pm " func_authorize = "authorize" func_authenticate = "authenticate" func_post_auth = "post_auth" func_accounting = "accounting" func_preacct = "preacct" func_checksimul = "checksimul" func_detach = "detach" func_xlat = "xlat" func_pre_proxy = "pre_proxy" func_post_proxy = "post_proxy" func_recv_coa = "recv_coa" func_send_coa = "send_coa" } # Loaded module rlm_realm # Loading module "suffix" from file /app/radius/conf/dsl-massmarket/mods-enabled/realm realm suffix { format = "suffix" delimiter = "@" ignore_default = no ignore_null = no } # Loaded module rlm_pap # Loading module "pap" from file /app/radius/conf/dsl-massmarket/mods-enabled/pap pap { normalise = yes } instantiate { # Instantiating module "perl" from file /app/radius/conf/dsl-massmarket/mods-enabled/perl config { logdir = /app_log/radius/dsl-massmarket/ confdir = /app/radius/conf/dsl-massmarket/ name = dsl-massmarket } rlm_perl: Special Loading groups ... rlm_perl: Special Info: Cannot stat cache file: No such file or directory } # Instantiating module "files" from file /app/radius/conf/dsl-massmarket/mods-enabled/files reading pairlist file /app/radius/conf/dsl-massmarket/mods-config/files/authorize reading pairlist file /app/radius/conf/dsl-massmarket/mods-config/files/authorize reading pairlist file /app/radius/conf/dsl-massmarket/mods-config/files/accounting reading pairlist file /app/radius/conf/dsl-massmarket/mods-config/files/pre-proxy # Instantiating module "preprocess" from file /app/radius/conf/dsl-massmarket/mods-enabled/preprocess # Instantiating module "attr_filter.post-proxy" from file /app/radius/conf/dsl-massmarket/mods-enabled/attr_filter reading pairlist file /app/radius/conf/dsl-massmarket/mods-config/attr_filter/post-proxy # Instantiating module "attr_filter.pre-proxy" from file /app/radius/conf/dsl-massmarket/mods-enabled/attr_filter reading pairlist file /app/radius/conf/dsl-massmarket/mods-config/attr_filter/pre-proxy # Instantiating module "attr_filter.access_reject" from file /app/radius/conf/dsl-massmarket/mods-enabled/attr_filter reading pairlist file /app/radius/conf/dsl-massmarket/mods-config/attr_filter/access_reject # Instantiating module "attr_filter.access_challenge" from file /app/radius/conf/dsl-massmarket/mods-enabled/attr_filter reading pairlist file /app/radius/conf/dsl-massmarket/mods-config/attr_filter/access_challenge # Instantiating module "attr_filter.accounting_response" from file /app/radius/conf/dsl-massmarket/mods-enabled/attr_filter reading pairlist file /app/radius/conf/dsl-massmarket/mods-config/attr_filter/accounting_response # Instantiating module "reject" from file /app/radius/conf/dsl-massmarket/mods-enabled/always # Instantiating module "fail" from file /app/radius/conf/dsl-massmarket/mods-enabled/always # Instantiating module "ok" from file /app/radius/conf/dsl-massmarket/mods-enabled/always # Instantiating module "handled" from file /app/radius/conf/dsl-massmarket/mods-enabled/always # Instantiating module "invalid" from file /app/radius/conf/dsl-massmarket/mods-enabled/always # Instantiating module "userlock" from file /app/radius/conf/dsl-massmarket/mods-enabled/always # Instantiating module "notfound" from file /app/radius/conf/dsl-massmarket/mods-enabled/always # Instantiating module "noop" from file /app/radius/conf/dsl-massmarket/mods-enabled/always # Instantiating module "updated" from file /app/radius/conf/dsl-massmarket/mods-enabled/always # Instantiating module "log_request" from file /app/radius/conf/dsl-massmarket/mods-enabled/linelog # Instantiating module "log_control" from file /app/radius/conf/dsl-massmarket/mods-enabled/linelog # Instantiating module "log_proxy_request" from file /app/radius/conf/dsl-massmarket/mods-enabled/linelog # Instantiating module "log_reply" from file /app/radius/conf/dsl-massmarket/mods-enabled/linelog # Instantiating module "log_proxy_reply" from file /app/radius/conf/dsl-massmarket/mods-enabled/linelog # Instantiating module "suffix" from file /app/radius/conf/dsl-massmarket/mods-enabled/realm # Instantiating module "pap" from file /app/radius/conf/dsl-massmarket/mods-enabled/pap } # modules radiusd: #### Loading Virtual Servers #### server { # from file /app/radius/conf/dsl-massmarket/radiusd.conf } # server server default { # from file /app/radius/conf/dsl-massmarket/sites-enabled/default # Loading authenticate {...} # Loading authorize {...} # Loading post-auth {...} } # server default radiusd: #### Opening IP addresses and Ports #### listen { type = "control" listen { socket = "/app/radius/conf/dsl-massmarket/control.socket" mode = "rw" peercred = yes } } listen { type = "auth" ipv4addr = * port = 10812 limit { max_pps = 0 max_connections = 16 lifetime = 0 idle_timeout = 30 } } Listening on command file /app/radius/conf/dsl-massmarket/control.socket Listening on auth address * port 1812 bound to server default Ready to process requests
On Oct 17, 2016, at 4:29 AM, Peter Balsianok <balsianok.peter@gmail.com> wrote:
Hi,
When i use radmin ... -e 'hup main.log', linelog (log_request, log_control & log_reply) will not write information into main.log. Why ?
linelog doesn't write messages to the main log. You can configure it to write to the same *filename*. But that's different. And if you HUP the main log, you didn't HUP linelog, and so it doesn't change. Perhaps you could explain how you've configured linelog, and why you expect that HUPing the main log will also cause linelog to get HUP'd, too. Alan DeKok.
Well, i need to have the content of REQUEST,CONTROL & REPLY for solving customer trouble tickets. I want to have it on the same place as main log. I see benefit to have HUPing in the rad_linelog (e.g. log rotation). At this moment i have only one options, after log rotation i have to restart whole server. Linelog configuration: linelog log_request { filename = ${log.file} format = "%t : Info: REQUEST(%{User-Name}): %{pairs:request:}" } linelog log_control { filename = ${log.file} format = "%t : Info: CONTROL(%{User-Name}): %{pairs:control:}" } linelog log_proxy_request { filename = ${log.file} format = "%t : Info: PROXY-REQUEST(%{User-Name}): %{pairs:proxy-request:}" } linelog log_reply { filename = ${log.file} format = "%t : Info REPLY(%{User-Name}): %{pairs:reply:}" } linelog log_proxy_reply { filename = ${log.file} format = "%t : Info PROXY-REPLY(%{User-Name}): Packet-Type=%{proxy-reply:Packet-Type} %{pairs:proxy-reply:}" } On Mon, Oct 17, 2016 at 5:36 PM, Alan DeKok <aland@deployingradius.com> wrote:
On Oct 17, 2016, at 4:29 AM, Peter Balsianok <balsianok.peter@gmail.com> wrote:
Hi,
When i use radmin ... -e 'hup main.log', linelog (log_request,
log_control
& log_reply) will not write information into main.log. Why ?
linelog doesn't write messages to the main log. You can configure it to write to the same *filename*. But that's different.
And if you HUP the main log, you didn't HUP linelog, and so it doesn't change.
Perhaps you could explain how you've configured linelog, and why you expect that HUPing the main log will also cause linelog to get HUP'd, too.
Alan DeKok. - List info/subscribe/unsubscribe? See http://www.freeradius.org/ list/users.html
On Oct 17, 2016, at 1:33 PM, Peter Balsianok <balsianok.peter@gmail.com> wrote:
Well, i need to have the content of REQUEST,CONTROL & REPLY for solving customer trouble tickets. I want to have it on the same place as main log.
Why does it need to be the same place as the main log? It shouldn't matter that much.
I see benefit to have HUPing in the rad_linelog (e.g. log rotation). At this moment i have only one options, after log rotation i have to restart whole server.
You can HUP main.log, and then HUP each linelog module individually. Some messages may go to the old file, but it should generally work. Or, send a patch which has the linelog module do logging via the main log API. The problem will then go away. Alan DeKok.
participants (2)
-
Alan DeKok -
Peter Balsianok