# Copyright (c) 2010 Flowerfire, Inc. All Rights Reserved. lsmtpaccess = { plugin_version = "1.0.1" # Initial creation - 1.0 # 2011-06-20 - 1.0.1 - MSG - Edited info lines. info.1.manufacturer = "L-Soft" info.1.device = "LSMTP Access" info.1.version.1 = "" # The name of the log format log.format.format_label = "LSMTP Access Log Format" log.miscellaneous.log_data_type = "mail_server" 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 = "^5 [0-9]* [0-9.A-F]* [A-Z]* <[0-9.]*> <[0-9.]*> <[^>]*> <[^>]*> [0-9]* [0-9]* <[^>]*> <[^>]*>" # 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 = "yyyymmdd" log.format.time_format = "hhmm" # Extract the date from the filename log.format.global_date_filename_regular_expression = "([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])" # An entry in this log is called a "message" in the statistics (not a "hit") statistics.miscellaneous.entry_name = "messages" # Log fields log.fields = { date = { label = "$lang_stats.field_labels.date" type = "date" index = 0 subindex = 0 hierarchy_dividers = "" left_to_right = false leading_divider = "false" } # date time = { label = "$lang_stats.field_labels.time" type = "time" index = 0 subindex = 0 hierarchy_dividers = "" left_to_right = false leading_divider = "false" } # time status = { label = "$lang_stats.field_labels.status" type = "flat" index = 0 subindex = 0 } # status protocol = { label = "$lang_stats.field_labels.protocol" type = "flat" index = 0 subindex = 0 } # protocol message_id = { label = "$lang_stats.field_labels.message_id" type = "flat" index = 0 subindex = 0 } # message_id source_ip = { label = "$lang_stats.field_labels.source_ip" type = "host" index = 0 subindex = 0 hierarchy_dividers = "" left_to_right = false leading_divider = "false" } # source_ip source_address = { label = "$lang_stats.field_labels.source_address" type = "flat" index = 0 subindex = 0 } # source_address destination_ip = { label = "$lang_stats.field_labels.destination_ip" type = "flat" index = 0 subindex = 0 } # destination_ip destination_address = { label = "$lang_stats.field_labels.destination_address" type = "flat" index = 0 subindex = 0 } # destination_address job_number = { label = "$lang_stats.field_labels.job_number" type = "flat" index = 0 subindex = 0 } # job_number event_id = { label = "$lang_stats.field_labels.event_id" type = "flat" index = 0 subindex = 0 } # event_id egroup = { label = "$lang_stats.field_labels.egroup" type = "flat" index = 0 subindex = 0 } # egroup } # log.fields # # Log Parsing Filters log.parsing_filters = { # Parse out the (5)successlines, timestamp, message ID, protocol source IP, destination IP, source address, destination address 1 = { label = "1" comment = "" value = "collect_fields_using_regexp('^()(5) ([0-9][0-9][0-9][0-9])[0-9][0-9] ([0-9.A-F]*) ([A-Z]*) <([0-9.]*)> <([0-9.]*)> <[^>]*> <([0-9]*):*([0-9]*):*([0-9]*)> [0-9]* [0-9]* <([^>]*)> <([^>]*)>', '*KEY*,status,time,message_id,protocol,source_ip,destination_ip,job_number,event_id,egroup,source_address,destination_address')" } # 1 # Parse out the (4)failure lines, timestamp, source address, destination address 2 = { label = "2" comment = "" value = "collect_fields_using_regexp('^()(4) ([0-9][0-9][0-9][0-9]) <([^>]*)> <([^>]*)>', '*KEY*,status,time,source_address,destination_address')" } # 2 # Accept this log entry 3 = { label = "3" comment = "" value = "accept_collected_entry_using_regexp('()', false)" } # 3 } # 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 status = { label = "$lang_stats.field_labels.status" log_field = "status" type = "string" suppress_top = 0 suppress_bottom = 2 } # status protocol = { label = "$lang_stats.field_labels.protocol" log_field = "protocol" type = "string" suppress_top = 0 suppress_bottom = 2 } # protocol source_ip = { label = "$lang_stats.field_labels.source_ip" log_field = "source_ip" type = "string" suppress_top = 0 suppress_bottom = 2 } # source_ip source_address = { label = "$lang_stats.field_labels.source_address" log_field = "source_address" type = "string" suppress_top = 0 suppress_bottom = 2 } # source_address destination_ip = { label = "$lang_stats.field_labels.destination_ip" log_field = "destination_ip" type = "string" suppress_top = 0 suppress_bottom = 2 } # destination_ip destination_address = { label = "$lang_stats.field_labels.destination_address" log_field = "destination_address" type = "string" suppress_top = 0 suppress_bottom = 2 } # destination_address job_number = { label = "$lang_stats.field_labels.job_number" log_field = "job_number" type = "string" suppress_top = 0 suppress_bottom = 2 } # job_number event_id = { label = "$lang_stats.field_labels.event_id" log_field = "event_id" type = "string" suppress_top = 0 suppress_bottom = 2 } # event_id egroup = { label = "$lang_stats.field_labels.egroup" log_field = "egroup" type = "string" suppress_top = 0 suppress_bottom = 2 } # egroup } # database.fields database.numerical_fields = { messages = { label = "$lang_stats.field_labels.messages" default = true requires_log_field = false type = "int" display_format_type = "integer" entries_field = true } # messages } # database.numerical_fields log.filters = { mark_entry = { label = '$lang_admin.log_filters.mark_entry_label' comment = '$lang_admin.log_filters.mark_entry_comment' value = 'messages = 1;' } # mark_entry } # log.filters create_profile_wizard_options = { date_time_tracking = true host_tracking = true # How the reports should be grouped in the report menu report_groups = { date_time_group = "" status = true protocol = true source_ip = true source_address = true destination_ip = true destination_address = true job_number = true event_id = true egroup = true } # report_groups } # create_profile_wizard_options not_supported = { visitors = true sessions = true pageviews = true bandwidth = true } # not_supported } # lsmtpaccess