# Copyright (c) 2010 Flowerfire, Inc. All Rights Reserved. free_radius_detail = { # Plugin Version plugin_version = "1.0.6" info.1.manufacturer = "GNU" info.1.device = "FreeRADIUS" info.1.version.1 = "" # 2006 09 21 - 1.0.1 - GAS - change regex match for date to "[A-Za-z]+ [A-Za-z]+" to support Nortel Contivity VPN device # 2007 01 12 - 1.0.2 - GAS - added support for acct_input_gigawords (http-//www.freeradius.org/rfc/rfc2869.html#Acct-Input-Gigawords) and acct_output_gigawords # 2007 01 31 - 1.0.3 - GAS - added support for outer-ip-address # 2007 02 27 - 1.0.4 - GAS - added support for all-caps month names "FEB" by converting them to "Feb" format # 2007-12-31 - 1.0.5 - MSG - changed label of outer_ip_address to: label = "outer_ip_address" - added outer_ip_address to langstats. # 2010-11-19 - 1.0.6 - MSG - Edited info lines. # Free Radius Detail Log # The name of the log format log.format.format_label = "Free Radius Log Format" log.miscellaneous.log_data_type = "generic" log.miscellaneous.log_format_type = "network_device" # The log is in this format if any of the first ten lines match this regular expression log.format.autodetect_regular_expression = "^[A-Za-z]+ [A-Za-z]+ *[0-9]+ [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9][0-9][0-9][0-9]$" # The format of dates and times in this log log.format.date_format = "mmm dd hh:mm:ss yyyy" log.format.time_format = "mmm dd hh:mm:ss yyyy" # All log field parsing will be done using the parsing filters log.format.parse_only_with_filters = "true" # Don't track these fields auto_setup.omit_database_fields = "timestamp" # Log fields log.fields = { date_time = { label = "$lang_stats.field_labels.date_time" type = "date_time" index = 0 subindex = 0 hierarchy_dividers = "" left_to_right = false leading_divider = "false" } # date_time client_ip_address = { label = "$lang_stats.field_labels.client_ip_address" type = "flat" index = 0 subindex = 0 } # client_ip_address framed_ip_address = { label = "$lang_stats.field_labels.framed_ip_address" type = "flat" index = 0 subindex = 0 } # framed_ip_address framed_protocol = { label = "$lang_stats.field_labels.framed_protocol" type = "flat" index = 0 subindex = 0 } # framed_protocol acct_delay_time = { label = "$lang_stats.field_labels.acct_delay_time" type = "flat" index = 0 subindex = 0 } # acct_delay_time acct_session_id = { label = "$lang_stats.field_labels.acct_session_id" type = "flat" index = 0 subindex = 0 } # acct_session_id acct_session_time = { label = "$lang_stats.field_labels.acct_session_time" type = "flat" index = 0 subindex = 0 } # acct_session_time acct_status_type = { label = "$lang_stats.field_labels.acct_status_type" type = "flat" index = 0 subindex = 0 } # acct_status_type acct_input_gigawords = { label = "$lang_stats.field_labels.acct_input_gigawords" type = "flat" index = 0 subindex = 0 } # acct_input_gigawords acct_output_gigawords = { label = "$lang_stats.field_labels.acct_output_gigawords" type = "flat" index = 0 subindex = 0 } # acct_output_gigawords called_station_id = { label = "$lang_stats.field_labels.called_station_id" type = "flat" index = 0 subindex = 0 } # called_station_id calling_station_id = { label = "$lang_stats.field_labels.calling_station_id" type = "flat" index = 0 subindex = 0 } # calling_station_id nas_ip_address = { label = "$lang_stats.field_labels.nas_ip_address" type = "flat" index = 0 subindex = 0 } # nas_ip_address nas_identifier = { label = "$lang_stats.field_labels.nas_identifier" type = "flat" index = 0 subindex = 0 } # nas_identifier nas_port = { label = "$lang_stats.field_labels.nas_port" type = "flat" index = 0 subindex = 0 } # nas_port nas_port_type = { label = "$lang_stats.field_labels.nas_port_type" type = "flat" index = 0 subindex = 0 } # nas_port_type service_type = { label = "$lang_stats.field_labels.service_type" type = "flat" index = 0 subindex = 0 } # service_type timestamp = { label = "$lang_stats.field_labels.timestamp" type = "flat" index = 0 subindex = 0 } # timestamp user_name = { label = "$lang_stats.field_labels.user_name" type = "flat" index = 0 subindex = 0 } # user_name usr_acct_reason_code = { label = "$lang_stats.field_labels.usr_acct_reason_code" type = "flat" index = 0 subindex = 0 } # usr_acct_reason_code usr_call_arrival_time = { label = "$lang_stats.field_labels.usr_call_arrival_time" type = "flat" index = 0 subindex = 0 } # usr_call_arrival_time usr_call_end_time = { label = "$lang_stats.field_labels.usr_call_end_time" type = "flat" index = 0 subindex = 0 } # usr_call_end_time usr_chassis_call_channel = { label = "$lang_stats.field_labels.usr_chassis_call_channel" type = "flat" index = 0 subindex = 0 } # usr_chassis_call_channel usr_chassis_call_slot = { label = "$lang_stats.field_labels.usr_chassis_call_slot" type = "flat" index = 0 subindex = 0 } # usr_chassis_call_slot acct_authentic = { label = "$lang_stats.field_labels.acct_authentic" type = "flat" index = 0 subindex = 0 } # acct_authentic acct_input_octets = { label = "$lang_stats.field_labels.acct_input_octets" type = "flat" index = 0 subindex = 0 } # acct_input_octets acct_input_packets = { label = "$lang_stats.field_labels.acct_input_packets" type = "flat" index = 0 subindex = 0 } # acct_input_packets acct_link_count = { label = "$lang_stats.field_labels.acct_link_count" type = "flat" index = 0 subindex = 0 } # acct_link_count acct_multi_session_id = { label = "$lang_stats.field_labels.acct_multi_session_id" type = "flat" index = 0 subindex = 0 } # acct_multi_session_id acct_unique_session_id = { label = "$lang_stats.field_labels.acct_unique_session_id" type = "flat" index = 0 subindex = 0 } # acct_unique_session_id acct_output_octets = { label = "$lang_stats.field_labels.acct_output_octets" type = "flat" index = 0 subindex = 0 } # acct_output_octets acct_output_packets = { label = "$lang_stats.field_labels.acct_output_packets" type = "flat" index = 0 subindex = 0 } # acct_output_packets acct_terminate_cause = { label = "$lang_stats.field_labels.acct_terminate_cause" type = "flat" index = 0 subindex = 0 } # acct_terminate_cause login_ip_host = { label = "$lang_stats.field_labels.login_ip_host" type = "flat" index = 0 subindex = 0 } # login_ip_host login_service = { label = "$lang_stats.field_labels.login_service" type = "flat" index = 0 subindex = 0 } # login_service login_tcp_port = { label = "$lang_stats.field_labels.login_tcp_port" type = "flat" index = 0 subindex = 0 } # login_tcp_port outer_ip_address = { label = "outer_ip_address" type = "flat" index = 0 subindex = 0 } # outer_ip_address } # log.fields # Log Parsing Filters log.parsing_filters = { # Accept on date 1 = { label = "1" comment = "" value = "accept_collected_entry_using_regexp('^()[A-Za-z]+ [A-Za-z]+ *[0-9]+ [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9][0-9][0-9][0-9]$', false)" } # 1 # Parse out date/time line 2 = { label = "2" comment = "" value = ` # collect_fields_using_regexp('^()[A-Za-z]+ ([A-Za-z]+ *[0-9]+ [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9][0-9][0-9][0-9])$', '*KEY*,date_time') if (matches_regular_expression(current_log_line(), '^()[A-Za-z]+ ([A-Za-z])([A-Za-z][A-Za-z])( *[0-9]+ [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9][0-9][0-9][0-9])$')) then ( set_collected_field('', 'date_time', $2 . lowercase($3) . $4); ); ` } # 2 # Parse out the =separated linevariables 3 = { label = "3" comment = "" value = "collect_listed_fields_using_regexp(' ()(.*)$', 'xxxx', ' = ', '')" } # 3 # Parse out the =separated linevariables 4 = { label = "4" comment = "" value = "collect_listed_fields_using_regexp(' ()(.*)$', 'xxxx', ' = ', '')" } # 4 } # log.parsing_filters # Database fields database.fields = { date_time = { label = "$lang_stats.field_labels.date_time" log_field = "date_time" type = "string" suppress_top = 0 suppress_bottom = 3 display_format_type = "date_time" } # date_time day_of_week = { label = "$lang_stats.field_labels.day_of_week" log_field = "day_of_week" type = "string" suppress_top = 0 suppress_bottom = 2 display_format_type = "day_of_week" } # day_of_week hour_of_day = { label = "$lang_stats.field_labels.hour_of_day" log_field = "hour_of_day" type = "string" suppress_top = 0 suppress_bottom = 2 display_format_type = "hour_of_day" } # hour_of_day client_ip_address = { label = "$lang_stats.field_labels.client_ip_address" log_field = "client_ip_address" type = "string" suppress_top = 0 suppress_bottom = 2 } # client_ip_address framed_ip_address = { label = "$lang_stats.field_labels.framed_ip_address" log_field = "framed_ip_address" type = "string" suppress_top = 0 suppress_bottom = 2 } # framed_ip_address framed_protocol = { label = "$lang_stats.field_labels.framed_protocol" log_field = "framed_protocol" type = "string" suppress_top = 0 suppress_bottom = 2 } # framed_protocol acct_session_id = { label = "$lang_stats.field_labels.acct_session_id" log_field = "acct_session_id" type = "string" suppress_top = 0 suppress_bottom = 2 } # acct_session_id acct_status_type = { label = "$lang_stats.field_labels.acct_status_type" log_field = "acct_status_type" type = "string" suppress_top = 0 suppress_bottom = 2 } # acct_status_type acct_input_gigawords = { label = "$lang_stats.field_labels.acct_input_gigawords" log_field = "acct_status_type" type = "string" suppress_top = 0 suppress_bottom = 2 } # acct_input_gigawords acct_output_gigawords = { label = "$lang_stats.field_labels.acct_output_gigawords" log_field = "acct_status_type" type = "string" suppress_top = 0 suppress_bottom = 2 } # acct_output_gigawords called_station_id = { label = "$lang_stats.field_labels.called_station_id" log_field = "called_station_id" type = "string" suppress_top = 0 suppress_bottom = 2 } # called_station_id calling_station_id = { label = "$lang_stats.field_labels.calling_station_id" log_field = "calling_station_id" type = "string" suppress_top = 0 suppress_bottom = 2 } # calling_station_id nas_ip_address = { label = "$lang_stats.field_labels.nas_ip_address" log_field = "nas_ip_address" type = "string" suppress_top = 0 suppress_bottom = 2 } # nas_ip_address nas_identifier = { label = "$lang_stats.field_labels.nas_identifier" log_field = "nas_identifier" type = "string" suppress_top = 0 suppress_bottom = 2 } # nas_identifier nas_port = { label = "$lang_stats.field_labels.nas_port" log_field = "nas_port" type = "string" suppress_top = 0 suppress_bottom = 2 } # nas_port nas_port_type = { label = "$lang_stats.field_labels.nas_port_type" log_field = "nas_port_type" type = "string" suppress_top = 0 suppress_bottom = 2 } # nas_port_type service_type = { label = "$lang_stats.field_labels.service_type" log_field = "service_type" type = "string" suppress_top = 0 suppress_bottom = 2 } # service_type # timestamp = { # label = "$lang_stats.field_labels.timestamp" # log_field = "timestamp" # type = "string" # suppress_top = 0 # suppress_bottom = 2 # } # timestamp user_name = { label = "$lang_stats.field_labels.user_name" log_field = "user_name" type = "string" suppress_top = 0 suppress_bottom = 2 } # user_name usr_acct_reason_code = { label = "$lang_stats.field_labels.usr_acct_reason_code" log_field = "usr_acct_reason_code" type = "string" suppress_top = 0 suppress_bottom = 2 } # usr_acct_reason_code usr_call_arrival_time = { label = "$lang_stats.field_labels.usr_call_arrival_time" log_field = "usr_call_arrival_time" type = "string" suppress_top = 0 suppress_bottom = 2 } # usr_call_arrival_time usr_call_end_time = { label = "$lang_stats.field_labels.usr_call_end_time" log_field = "usr_call_end_time" type = "string" suppress_top = 0 suppress_bottom = 2 } # usr_call_end_time usr_chassis_call_channel = { label = "$lang_stats.field_labels.usr_chassis_call_channel" log_field = "usr_chassis_call_channel" type = "string" suppress_top = 0 suppress_bottom = 2 } # usr_chassis_call_channel usr_chassis_call_slot = { label = "$lang_stats.field_labels.usr_chassis_call_slot" log_field = "usr_chassis_call_slot" type = "string" suppress_top = 0 suppress_bottom = 2 } # usr_chassis_call_slot acct_authentic = { label = "$lang_stats.field_labels.acct_authentic" log_field = "acct_authentic" type = "string" suppress_top = 0 suppress_bottom = 2 } # acct_authentic acct_link_count = { label = "$lang_stats.field_labels.acct_link_count" log_field = "acct_link_count" type = "string" suppress_top = 0 suppress_bottom = 2 } # acct_link_count acct_multi_session_id = { label = "$lang_stats.field_labels.acct_multi_session_id" log_field = "acct_multi_session_id" type = "string" suppress_top = 0 suppress_bottom = 2 } # acct_multi_session_id acct_unique_session_id = { label = "$lang_stats.field_labels.acct_unique_session_id" log_field = "acct_unique_session_id" type = "string" suppress_top = 0 suppress_bottom = 2 } # acct_unique_session_id acct_terminate_cause = { label = "$lang_stats.field_labels.acct_terminate_cause" log_field = "acct_terminate_cause" type = "string" suppress_top = 0 suppress_bottom = 2 } # acct_terminate_cause login_ip_host = { label = "$lang_stats.field_labels.login_ip_host" log_field = "login_ip_host" type = "string" suppress_top = 0 suppress_bottom = 2 } # login_ip_host login_service = { label = "$lang_stats.field_labels.login_service" log_field = "login_service" type = "string" suppress_top = 0 suppress_bottom = 2 } # login_service login_tcp_port = { label = "$lang_stats.field_labels.login_tcp_port" log_field = "login_tcp_port" type = "string" suppress_top = 0 suppress_bottom = 2 } # login_tcp_port outer_ip_address = { label = "$lang_stats.field_labels.outer_ip_address" log_field = "outer_ip_address" type = "string" suppress_top = 0 suppress_bottom = 2 } # outer_ip_address } # database.fields database.numerical_fields = { events = { label = "$lang_stats.field_labels.events" default = true requires_log_field = false type = "int" display_format_type = "integer" entries_field = true } # events acct_output_octets = { label = "$lang_stats.field_labels.acct_output_octets" default = false requires_log_field = true type = "float" display_format_type = "bandwidth" } acct_input_octets = { label = "$lang_stats.field_labels.acct_input_octets" default = false requires_log_field = true type = "float" display_format_type = "bandwidth" } acct_output_packets = { label = "$lang_stats.field_labels.acct_output_packets" default = false requires_log_field = true type = "float" display_format_type = "bandwidth" } acct_input_packets = { label = "$lang_stats.field_labels.acct_input_packets" default = false requires_log_field = true type = "float" display_format_type = "bandwidth" } acct_session_time = { label = "$lang_stats.field_labels.acct_session_time" default = false requires_log_field = true type = int display_format_type = duration_compact } # acct_session_time acct_delay_time = { label = "$lang_stats.field_labels.acct_delay_time" default = false requires_log_field = true type = int display_format_type = duration_compact } # acct_delay_time } # database.numerical_fields log.filters = { mark_entry = { label = '$lang_admin.log_filters.mark_entry_label' comment = '$lang_admin.log_filters.mark_entry_comment' value = 'events = 1;' } # mark_entry } # log.filters create_profile_wizard_options = { date_time_tracking = true # How the reports should be grouped in the report menu report_groups = { date_time_group = "" users_group = { client_ip_address = true user_name = true usr_acct_reason_code = true usr_call_arrival_time = true usr_call_end_time = true usr_chassis_call_channel = true usr_chassis_call_slot = true } account_group = { acct_session_id = true acct_status_type = true acct_authentic = true acct_link_count = true acct_multi_session_id = true acct_unique_session_id = true acct_terminate_cause = true acct_input_gigawords = true acct_ouput_gigawords = true } authentication_group = { login_ip_host = true login_service = true login_tcp_port = true } other_group = { framed_ip_address = true framed_protocol = true called_station_id = true calling_station_id = true nas_ip_address = true nas_identifier = true nas_port = true nas_port_type = true service_type = true } } # report_groups } # create_profile_wizard_options not_supported = { individualhosts = true sessions = true visitors = true pageviews = true bandwidth = true } # not_supported } # free_radius_detail