# Copyright (c) 2010 Flowerfire, Inc. All Rights Reserved. gmspop = { plugin_version = "1.0.1" # Initial creation - 1.0 # 2010-11-19 - 1.0.1 - MSG - Edited info lines. info.1.manufacturer = "Gordano" info.1.device = "Messaging Suite POP" info.1.version.1 = "" # An "S3" log format recognises logs that require "parsing filters" # # # If parse_only_with_filters is true, Sawmill uses the log_parsing_filters to parse the log; # and other parsing options are ignored. # ======================================================================== # # ####################### # # # LOG FORMAT OPTIONS # # # ####################### # http://www.sawmill.net/cgi-bin/sawmilldocs?ho+lff # The name of this format # Format log_file_format value log.format.format_label = "GMS POP Log Format" # http://www.sawmill.net/cgi-bin/sawmilldocs?ho+ldt # This log is the following type #Format: log_data_type value log.miscellaneous.log_data_type = "mail_pop" log.miscellaneous.log_format_type = "mail_server" # Determine what types of data this log file will support. # Un-comment the type below to disable this in the database # # Format: $notsupported value # $notsupported daybyday # $notsupported individualhosts # $notsupported sessionpages # $notsupported hits # $notsupported bandwidth # http://www.sawmill.net/cgi-bin/sawmilldocs?ho+tbaq # if there are square brackets around some fields (date/time) # you can specify to have this treated as one field # Format: treat_brackets_as_quotes true|false log.format.treat_brackets_as_quotes = "false" # http://www.sawmill.net/cgi-bin/sawmilldocs?ho+ldf # The format of dates in this log # Format: log_date_format value log.format.date_format = "dd/mmm/yyyy" # http://www.sawmill.net/cgi-bin/sawmilldocs?ho+ltf # The format of times in this log # Format: log_time_format value log.format.time_format = "hh:mm:ss" # http://www.sawmill.net/cgi-bin/sawmilldocs?ho+en # The name of an entry in this log # Format: entry_name value statistics.miscellaneous.entry_name = "logon" # http://www.sawmill.net/cgi-bin/sawmilldocs?ho+lfare # We use this to recognise the format and "auto-detect". # Format: log_format_autodetect_regular_expression value log.format.autodetect_regular_expression = "^POP [0-9]+ [A-Z][a-z][a-z] [0-9]+ [0-9:]+\\.[0-9]+ [A-Z] [0-9]+ [0-9]+ .*$" # http://www.sawmill.net/cgi-bin/sawmilldocs?ho+powf # This template is for those formats that require parsing filters # so is set to "true" as default # Format: parse_only_with_filters ( true | false ) log.format.parse_only_with_filters = "true" ########################### # # # # ########################### # Log fields log.fields = { date = { label = "$lang_stats.field_labels.date" type = "date" index = 0 subindex = 0 hierarchy_dividers = "" left_to_right = true leading_divider = "false" } # date time = { label = "$lang_stats.field_labels.time" type = "time" index = 0 subindex = 0 hierarchy_dividers = "" left_to_right = true leading_divider = "false" } # time client_ip = { label = "$lang_stats.field_labels.client_ip" type = "flat" index = 0 subindex = 0 } # client_ip bytes = { label = "$lang_stats.field_labels.bytes" type = "size" index = 0 subindex = 0 hierarchy_dividers = "" left_to_right = false leading_divider = "false" } # bytes username = { label = "$lang_stats.field_labels.username" type = "flat" index = 0 subindex = 0 } # username user_address = { label = "$lang_stats.field_labels.user_address" type = "flat" index = 0 subindex = 0 } # user_address failed_logons = { label = "$lang_stats.field_labels.failed_logons" type = "flat" index = 0 subindex = 0 } # failed_logons fail_reason = { label = "$lang_stats.field_labels.fail_reason" type = "flat" index = 0 subindex = 0 } # fail_reason service = { label = "$lang_stats.field_labels.service" type = "flat" index = 0 subindex = 0 } # service } # log.fields ####################### # # # # ####################### # # Log Parsing Filters log.parsing_filters = { # 1 Parse out the logons - service date time 1 = { label = "1" comment = "" value = "collect_fields_using_regexp('^(POP) ([0-9]+ [A-Z][a-z][a-z] [0-9]+) ([0-9:]+)\\\\.[0-9]+ [A-Z] [0-9]+ ([0-9]+) ([0-9.]*) [^ ]* Logged on$', 'service,date,time,*KEY*,client_ip')" } # 1 # 2 Parse out the USER 2 = { label = "2" comment = "" value = "collect_fields_using_regexp('^POP [0-9]+ [A-Z][a-z][a-z] [0-9]+ [0-9:]+\\\\.[0-9]+ [A-Z] [0-9]+ ([0-9]+) USER ([^$]*)$', '*KEY*,username')" } # 2 # 3 Parse out the bytes and user address from log off lines 3 = { label = "3" comment = "" value = "collect_fields_using_regexp('^POP [0-9]+ [A-Z][a-z][a-z] [0-9]+ [0-9:]+\\\\.[0-9]+ [A-Z] [0-9]+ ([0-9]+) [0-9.]* ([^ ]*) Logged off \\\\([0-9]*,[0-9]*,([0-9]*)\\\\)$', '*KEY*,user_address,bytes')" } # 3 # 4 Parse out the failed logon lines + reason 4 = { label = "4" comment = "" value = "collect_fields_using_regexp('^(POP) ([0-9]+ [A-Z][a-z][a-z] [0-9]+) ([0-9:]+)\\\\.[0-9]+ [A-Z] [0-9]+ ([0-9]+) ([0-9.]*) Failed logon ([^ ]*) - ([^$]*)$', 'service,date,time,*KEY*,client_ip,failed_logons,fail_reason')" } # 4 # 4 Accept a collected POP entry 5 = { label = "5" comment = "" value = "accept_collected_entry_using_regexp('QUIT', false)" } # 5 } # log.parsing_filters ############################### # # # # ############################### # See http://www.sawmill.net/cgi-bin/sawmilldocs?ho+docs-hierarchies # for information about hierarchies. # 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 service = { label = "$lang_stats.field_labels.service" log_field = "service" type = "string" suppress_top = 0 suppress_bottom = 2 } # service client_ip = { label = "$lang_stats.field_labels.client_ip" log_field = "client_ip" type = "string" suppress_top = 0 suppress_bottom = 2 } # client_ip username = { label = "$lang_stats.field_labels.username" log_field = "username" type = "string" suppress_top = 0 suppress_bottom = 2 } # username user_address = { label = "$lang_stats.field_labels.user_address" log_field = "user_address" type = "string" suppress_top = 0 suppress_bottom = 2 } # user_address failed_logons = { label = "$lang_stats.field_labels.failed_logons" log_field = "failed_logons" type = "string" suppress_top = 0 suppress_bottom = 2 } # failed_logons fail_reason = { label = "$lang_stats.field_labels.fail_reason" log_field = "fail_reason" type = "string" suppress_top = 0 suppress_bottom = 2 } # fail_reason } # database.fields ############### # # # # ############### # Log Filters log.filters = { 1 = { label = "1" comment = "" value = "convert_field_map('event_type', 'S->statistics|F->failure|I->information|A->action|P->protocol|Z->parser (all details)')" } # 1 2 = { label = "2" comment = "" value = "(logon = 1; 'done';)" } # 2 mark_entry = { label = '$lang_admin.log_filters.mark_entry_label' comment = '$lang_admin.log_filters.mark_entry_comment' value = 'logon = 1;' } # mark_entry } # log.filters database.numerical_fields = { logon = { label = "$lang_stats.field_labels.logon" default = true requires_log_field = false type = "int" display_format_type = "integer" entries_field = true } # logon bytes = { label = "$lang_stats.field_labels.bytes" default = false requires_log_field = true log_field = "bytes" type = "float" display_format_type = "bandwidth" } # bytes } # database.numerical_fields create_profile_wizard_options = { date_time_tracking = true # How the reports should be grouped in the report menu report_groups = { date_time_group = "" service = true client_ip = true username = true user_address = true failed_logons = true fail_reason = true } # report_groups } # create_profile_wizard_options not_supported = { sessions = true pageviews = true visitors = true } # not_supported } # gmspop