# Copyright (c) 2010 Flowerfire, Inc. All Rights Reserved. webtrends_extended_syslog_required = { plugin_version = "1.1" # The name of the log format log.format.format_label = "Webtrends Extended Log Format" log.miscellaneous.log_data_type = "syslog_optional" log.miscellaneous.log_format_type = "firewall" # 2009-02-19 - MSG - Added 'accesses' to log field to avoid error when this numerical # field is not chosen during profile creation. # 2011-07-25 - 1.0.1 - MSG - Edited info lines. # 2012-02-28 - 1.1 - MSG - Changed syslog_required to syslog_optional info.1.manufacturer = "Webtrends" info.1.device = "Extended" info.1.version.1 = "" # The log is in this format if any of the first ten lines match this regular expression log.format.autodetect_regular_expression = "id=[^ ]* time=\"[0-9-]* [0-9:]*\" fw=[^ ]* " # All log field parsing will be done using the parsing filters log.format.parse_only_with_filters = "true" # Entries are called accesses statistics.miscellaneous.entry_name = "accesses" # Log fields log.fields = { accesses = "" id = { label = "$lang_stats.field_labels.id" type = "flat" index = 0 subindex = 0 } # id fw = { label = "$lang_stats.field_labels.fw" type = "flat" index = 0 subindex = 0 } # fw pri = { label = "$lang_stats.field_labels.pri" type = "flat" index = 0 subindex = 0 } # pri rule = { label = "$lang_stats.field_labels.rule" type = "flat" index = 0 subindex = 0 } # rule proto = { label = "$lang_stats.field_labels.proto" type = "flat" index = 0 subindex = 0 } # proto src = { label = "$lang_stats.field_labels.src" type = "host" index = 0 subindex = 0 hierarchy_dividers = "." left_to_right = false leading_divider = "false" } # src dst = { label = "$lang_stats.field_labels.dst" type = "flat" index = 0 subindex = 0 } # dst dstname = { label = "$lang_stats.field_labels.dstname" type = "flat" index = 0 subindex = 0 } # dstname cat_page = { label = "$lang_stats.field_labels.cat_page" type = "flat" index = 0 subindex = 0 } # cat_page cat_action = { label = "$lang_stats.field_labels.cat_action" type = "flat" index = 0 subindex = 0 } # cat_action user = { label = "$lang_stats.field_labels.user" type = "flat" index = 0 subindex = 0 } # user op = { label = "$lang_stats.field_labels.op" type = "flat" index = 0 subindex = 0 } # op arg = { label = "$lang_stats.field_labels.arg" type = "flat" index = 0 subindex = 0 } # arg result = { label = "$lang_stats.field_labels.result" type = "flat" index = 0 subindex = 0 } # result sent = { label = "$lang_stats.field_labels.sent" type = "flat" index = 0 subindex = 0 } # sent rcvd = { label = "$lang_stats.field_labels.rcvd" type = "size" index = 0 subindex = 0 hierarchy_dividers = "" left_to_right = false leading_divider = "false" } # rcvd duration = { label = "$lang_stats.field_labels.duration" type = "flat" index = 0 subindex = 0 } # duration msg = { label = "$lang_stats.field_labels.msg" type = "flat" index = 0 subindex = 0 } # msg url = { label = "$lang_stats.field_labels.url" type = "page" index = 0 subindex = 0 hierarchy_dividers = "" left_to_right = false leading_divider = "false" } # url vpn = "" type = "" wttime = "" } # log.fields # # Log Parsing Filters log.parsing_filters = { parse = " if (matches_regular_expression(v.syslog_message, '(id=.*)$')) then ( collect_listed_fields('', $1, ' ', '=', 'time=wttime'); if (matches_regular_expression(get_collected_field('', 'wttime'), '^([0-9-]+) ([0-9:]+)$')) then ( set_collected_field('', 'date', $1); set_collected_field('', 'time', $2); ); if (matches_regular_expression(get_collected_field('', 'msg'), '^Bytes transferred for connection: ([0-9]+) Src [0-9]+ Dst')) then ( set_collected_field('', 'rcvd', $1); set_collected_field('', 'sent', $2); ); accept_collected_entry('', false); ) " } # log.parsing_filters # Database fields database.fields = { id = { label = "$lang_stats.field_labels.id" log_field = "id" type = "string" suppress_top = 0 suppress_bottom = 2 } # id fw = { label = "$lang_stats.field_labels.fw" log_field = "fw" type = "string" suppress_top = 0 suppress_bottom = 2 } # fw rule = { label = "$lang_stats.field_labels.rule" log_field = "rule" type = "string" suppress_top = 0 suppress_bottom = 2 } # rule proto = { label = "$lang_stats.field_labels.proto" log_field = "proto" type = "string" suppress_top = 0 suppress_bottom = 2 } # proto src = { label = "$lang_stats.field_labels.src" log_field = "src" type = "string" suppress_top = 0 suppress_bottom = 2 } # src dst = { label = "$lang_stats.field_labels.dst" log_field = "dst" type = "string" suppress_top = 0 suppress_bottom = 2 } # dst dstname = { label = "$lang_stats.field_labels.dstname" log_field = "dstname" type = "string" suppress_top = 0 suppress_bottom = 2 } # dstname cat_page = { label = "$lang_stats.field_labels.cat_page" log_field = "cat_page" type = "string" suppress_top = 0 suppress_bottom = 2 } # cat_page cat_action = { label = "$lang_stats.field_labels.cat_action" log_field = "cat_action" type = "string" suppress_top = 0 suppress_bottom = 2 } # cat_action user = { label = "$lang_stats.field_labels.user" log_field = "user" type = "string" suppress_top = 0 suppress_bottom = 2 } # user op = { label = "$lang_stats.field_labels.op" log_field = "op" type = "string" suppress_top = 0 suppress_bottom = 2 } # op arg = { label = "$lang_stats.field_labels.arg" log_field = "arg" type = "string" suppress_top = 0 suppress_bottom = 2 } # arg url = { label = "$lang_stats.field_labels.url" log_field = "url" type = "string" suppress_top = 1 suppress_bottom = 3 } # url file_type = { label = "$lang_stats.field_labels.file_type" log_field = "file_type" type = "string" suppress_top = 0 suppress_bottom = 2 } # file_type result = { label = "$lang_stats.field_labels.result" log_field = "result" type = "string" suppress_top = 0 suppress_bottom = 2 } # result vpn = "" type = "" msg = { label = "$lang_stats.field_labels.msg" log_field = "msg" type = "string" suppress_top = 0 suppress_bottom = 2 } # msg } # database.fields # Log Filters log.filters = { # This filter builds the URL field from the protocol, dstname, and arg 1 = { label = "1" comment = "" value = "url = proto;" } # 1 2 = { label = "2" comment = "" value = "url = '' . url . '://' . dstname;" } # 2 3 = { label = "3" comment = "" value = "url = '' . url . '' . arg;" } # 3 4 = { label = "4" comment = "" value = "if (url eq '-://-/') then (accesses = 1; page_views = 0; 'done';)" } # 4 remove_query = { label = "$lang_admin.log_filters.remove_query_label" comment = "$lang_admin.log_filters.remove_query_comment" value = "if (contains(url, '?')) then url = substr(url, 0, index(url, '?') + 1) . '(parameters)';" } # remove_query detect_page_views = { label = '$lang_admin.log_filters.detect_page_views_label' comment = '$lang_admin.log_filters.detect_page_views_comment' value = "if ((file_type eq 'JPEG') or (file_type eq 'JPG') or (file_type eq 'GIF') or (file_type eq 'ICO') or (file_type eq 'PNG') or (file_type eq 'CSS') or (file_type eq 'SWF') or (file_type eq 'JS')) then page_views = 0; else page_views = 1;" } # detect_page_views simplify_url = { label = "$lang_admin.log_filters.simplify_url_label" comment = "$lang_admin.log_filters.simplify_url_comment" value = "if (matches_regular_expression(url, '^([^:]+://[^/]+/)')) then url = $1 . '(omitted)'" } # simplify_url strip_non_page_views = { label = '$lang_admin.log_filters.strip_non_page_views_label' comment = '$lang_admin.log_filters.strip_non_page_views_comment' value = "if (page_views == 0) then url = substr(url, 0, last_index(url, '/') + 1) . '(nonpage)';" } # strip_non_page_views mark_entry = { label = '$lang_admin.log_filters.mark_entry_label' comment = '$lang_admin.log_filters.mark_entry_comment' value = 'accesses = 1;' } # mark_entry } # log.filters log.field_options = { sessions_page_field = "url" sessions_visitor_id_field = "src" sessions_event_field = "page_views" } # log.field_options database.numerical_fields = { accesses = { label = "$lang_stats.field_labels.accesses" default = false requires_log_field = false type = "int" display_format_type = "integer" entries_field = true } # accesses page_views = { label = "$lang_stats.field_labels.page_views" default = true requires_log_field = false type = "int" display_format_type = "integer" } # page_views visitors = { label = "$lang_stats.field_labels.visitors" default = false requires_log_field = true log_field = "src" type = "unique" display_format_type = "integer" } # visitors rcvd = { label = "$lang_stats.field_labels.rcvd" default = false requires_log_field = true log_field = "rcvd" type = "int" integer_bits = 64 display_format_type = "bandwidth" } # rcvd sent = { label = "$lang_stats.field_labels.sent" default = false requires_log_field = true log_field = "sent" type = "int" integer_bits = 64 display_format_type = "bandwidth" } # sent duration = { label = $lang_stats.field_labels.duration default = false requires_log_field = true type = float display_format_type = duration_milliseconds } # duration } # database.numerical_fields create_profile_wizard_options = { host_tracking = true # How the reports should be grouped in the report menu report_groups = { date_time_group = "" id = true fw = true rule = true proto = true src = true dst = true dstname = true cat_page = true cat_action = true user = true op = true arg = true url = true file_type = true result = true vpn = true type = true msg = true } # report_groups } # create_profile_wizard_options } # webtrends_extended_syslog_required