# Copyright (c) 2010 Flowerfire, Inc. All Rights Reserved. novell_net_mail_35 = { # sessions, hits, bandwidth, pageviews, and visitors. # The name of the log format log.format.format_label = "Novell NetMail 3.5 Log Format" log.miscellaneous.log_data_type = "mail" log.miscellaneous.log_format_type = "mail_server" # The log is in this format if any of the first ten lines match this regular expression log.format.autodetect_regular_expression = "^\\[[0-9]+:[0-9]+:[0-9]+\\] NetMail\\\\" log.format.autodetect_lines = "2" # All log field parsing will be done using the parsing filters log.format.parse_only_with_filters = "true" # The format of dates and times in this log log.format.date_format = "yymmdd" log.format.time_format = "auto" # Log fields log.fields = { time = { label = "$lang_stats.field_labels.time" type = "time" index = 0 subindex = 0 hierarchy_dividers = "" left_to_right = false leading_divider = "false" } # time date = { label = "$lang_stats.field_labels.date" type = "date" index = 0 subindex = 0 hierarchy_dividers = "" left_to_right = false leading_divider = "false" } # date from = { label = "$lang_stats.field_labels.from" type = "hierarchical" index = 0 subindex = 0 hierarchy_dividers = "@" left_to_right = false leading_divider = "false" } # from to = { label = "$lang_stats.field_labels.to" type = "hierarchical" index = 0 subindex = 0 hierarchy_dividers = "@" left_to_right = false leading_divider = "false" } # to daemon = { label = "$lang_stats.field_labels.daemon" type = "flat" index = 0 subindex = 0 } # daemon type = { label = "$lang_stats.field_labels.type" type = "flat" index = 0 subindex = 0 } # type status = { label = "$lang_stats.field_labels.status" type = "flat" index = 0 subindex = 0 } # status source_ip = { label = "$lang_stats.field_labels.source_ip" type = "flat" index = 0 subindex = 0 } # source_ip size = { label = "$lang_stats.field_labels.size" type = "size" index = 0 subindex = 0 hierarchy_dividers = "" left_to_right = false leading_divider = "false" } # size } # log.fields # # Log Parsing Filters log.parsing_filters = { # Parse header fields header = { label = "header" comment = "" value = "collect_fields_using_regexp('^()\\[([0-9:]+)\\] [^\\\\\\\\]+\\\\\\\\([^\\\\\\\\]+)\\\\\\\\([^\\\\\\\\]+): ', '*KEY*,time,daemon,type')" } # header # Extract date from filename, or use 040101 if we can't global_date = { label = "global_date" comment = "" value = "if (matches_regular_expression(current_log_pathname(), 'l([0-9][0-9][0-9][0-9][0-9][0-9])')) then set_collected_field('', 'date', $1) else set_collected_field('', 'date', '040101')" } # Parse Delivered line delivered = { label = "delivered" comment = "" value = `collect_fields_using_regexp('()Delivered message for "([^" ]*) *[^"]*" to "([^" ]*)", size ([0-9]+); status ([0-9]+)', '*KEY*,from,to,size,status')` } # delivered # Parse Relayed line relayed = { label = "relayed" comment = "" value = `collect_fields_using_regexp('()Relayed message for "([^"]*)" to recipient "([^" ]*)" from address ([0-9.]+)', '*KEY*,from,to,source_ip')` } # relayed # Accept this log entry accept = { label = "accept" comment = "" value = "accept_collected_entry_using_regexp('()Delivered message for', false)" } # accept } # 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 type = { label = "$lang_stats.field_labels.type" log_field = "type" type = "string" suppress_top = 0 suppress_bottom = 3 } # type status = { label = "$lang_stats.field_labels.status" log_field = "status" type = "string" suppress_top = 0 suppress_bottom = 3 } # status source_ip = { label = "$lang_stats.field_labels.source_ip" log_field = "source_ip" type = "string" suppress_top = 0 suppress_bottom = 3 } # source_ip daemon = { label = "$lang_stats.field_labels.daemon" log_field = "daemon" type = "string" suppress_top = 0 suppress_bottom = 2 } # daemon from = { label = "$lang_stats.field_labels.from" log_field = "from" type = "string" suppress_top = 0 suppress_bottom = 3 } # from to = { label = "$lang_stats.field_labels.to" log_field = "to" type = "string" suppress_top = 0 suppress_bottom = 3 } # to } # 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 size = { label = "$lang_stats.field_labels.size" default = false requires_log_field = true log_field = "size" type = "float" display_format_type = "bandwidth" } # size } # 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 = { # How the reports should be grouped in the report menu report_groups = { date_time_group = "" type = true daemon = true from = true to = true status = true source_ip = true } # report_groups } # create_profile_wizard_options not_supported = { visitors = true sessions = true pageviews = true individualhosts = true } # not_supported } # novell_net_mail35