communigate_pro = { # The name of the log format log.format.format_label = "Communigate Pro Log Format" log.miscellaneous.log_data_type = "firewall" 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][0-9]:[0-9][0-9]\\.[0-9][0-9] [0-9]* [A-Z0-9]*-[0-9]" # The format of dates and times in this log log.format.time_format = "hh:mm:ss" log.format.date_format = "yyyy-mm-dd" # 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])" # All log field parsing will be done using the parsing filters 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 = 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 source_host = { label = "$lang_stats.field_labels.source_host" type = "flat" index = 0 subindex = 0 } # source_host pop_account = { label = "$lang_stats.field_labels.pop_account" type = "flat" index = 0 subindex = 0 } # pop_account source_address = { label = "$lang_stats.field_labels.source_address" type = "flat" index = 0 subindex = 0 } # source_address local_account = { label = "$lang_stats.field_labels.local_account" type = "flat" index = 0 subindex = 0 } # local_account operation = { label = "$lang_stats.field_labels.operation" type = "flat" index = 0 subindex = 0 } # operation protocol = { label = "$lang_stats.field_labels.protocol" type = "flat" index = 0 subindex = 0 } # protocol from = { label = "$lang_stats.field_labels.from" type = "flat" index = 0 subindex = 0 } # from to = { label = "$lang_stats.field_labels.to" type = "flat" index = 0 subindex = 0 } # to subject = { label = "$lang_stats.field_labels.subject" type = "flat" index = 0 subindex = 0 } # subject 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 a RPOP line 1 = { label = "1" comment = "" value = "collect_fields_using_regexp('^([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\\\\.[0-9][0-9] [0-9]* (RPOP)-([0-9]*)\\\\((.*)\\\\) polling account (.*) for ', 'time,protocol,*KEY*,source_host,pop_account')" } # 1 # Parse a POP disconnected line 2 = { label = "2" comment = "" value = "collect_fields_using_regexp('^([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\\\\.[0-9][0-9] [0-9]* (POP)-([0-9]*)[^ ]* \\'(.*)\\' disconnected \\\\(\\\\[([^:]*):', 'time,protocol,*KEY*,pop_account,source_host')" } # 2 # Parse a POP line retrieved 3 = { label = "3" comment = "" value = "collect_fields_using_regexp('^([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\\\\.[0-9][0-9] [0-9]* (POP)-([0-9]*).* retrieved, ([0-9]*) bytes', 'time,protocol,*KEY*,size')" } # 3 # Parse a ENQUEUER/QUEUE line 4 = { label = "4" comment = "" value = "collect_fields_using_regexp('^([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\\\\.[0-9][0-9] [0-9]* (ENQUEUER|QUEUE)-[0-9]*\\\\(\\\\[([0-9]*)\\\\]\\\\) from <([^>]*)>, ([0-9]*) bytes ', 'time,operation,*KEY*,source_address,size')" } # 4 # Parse a ENQUEUER/QUEUE line 5 = { label = "5" comment = "" value = "collect_fields_using_regexp('^([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\\\\.[0-9][0-9] [0-9]* (ENQUEUER|QUEUE)\\\\(\\\\[([0-9]*)\\\\]\\\\) from <([^>]*)>, ([0-9]*) bytes ', 'time,operation,*KEY*,source_address,size')" } # 5 # Parse a QUEUE From: line 6 = { label = "6" comment = "" value = "collect_fields_using_regexp('^([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\\\\.[0-9][0-9] [0-9]* (QUEUE)\\\\(\\\\[([0-9]*)\\\\]\\\\) header: From: <([^>]*)>$', 'time,operation,*KEY*,from')" } # 6 # Parse a QUEUE To: line 7 = { label = "7" comment = "" value = "collect_fields_using_regexp('^([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\\\\.[0-9][0-9] [0-9]* (QUEUE)\\\\(\\\\[([0-9]*)\\\\]\\\\) header: To: (.*)$', 'time,operation,*KEY*,to')" } # 7 # Parse a QUEUE Subject: line 8 = { label = "8" comment = "" value = "collect_fields_using_regexp('^([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\\\\.[0-9][0-9] [0-9]* (QUEUE)\\\\(\\\\[([0-9]*)\\\\]\\\\) header: Subject: (.*)$', 'time,operation,*KEY*,subject')" } # 8 # Parse a QUEUE line 9 = { label = "9" comment = "" value = "collect_fields_using_regexp('^([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\\\\.[0-9][0-9] [0-9]* (QUEUE)\\\\(\\\\[([0-9]*)\\\\]\\\\) LOCAL\\\\((.*)\\\\) delivered$', 'time,operation,*KEY*,local_account')" } # 9 # Parse a DEQUEUER LOCAL line 10 = { label = "10" comment = "" value = "collect_fields_using_regexp('^([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\\\\.[0-9][0-9] [0-9]* (DEQUEUER) *\\\\(*\\\\[*([0-9]*)\\\\]*\\\\)* LOCAL\\\\((.*)\\\\) delivered$', 'time,operation,*KEY*,local_account')" } # 10 # Parse a DEQUEUER relayed line 11 = { label = "11" comment = "" value = "collect_fields_using_regexp('^([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\\\\.[0-9][0-9] [0-9]* (DEQUEUER)\\\\(\\\\[([0-9]*)\\\\]\\\\) SMTP\\\\(.*\\\\)(.*) relayed$', 'time,operation,*KEY*,local_account')" } # 11 # Accept at end of POP session 12 = { label = "12" comment = "" value = "accept_collected_entry_using_regexp('POP-([0-9]*).*(proxy connection closed|disconnected|polling account|retrieved)', false)" } # 12 # collect up MAIL FROM for incoming SMTP 13 = { value = "collect_fields_using_regexp('SMTPI-([0-9]*)\\\\([^)]*\\\\) cmd: MAIL FROM:<([^>]*)> SIZE=([0-9]*)', '*KEY*,from,size')" label = "13" comment = "" } # 13 # collect up RCPT TO for incoming SMTP 14 = { value = "collect_fields_using_regexp('SMTPI-([0-9]*)\\\\([^)]*\\\\) cmd: RCPT TO:<([^>]*)>', '*KEY*,to')" label = "14" comment = "" } # 14 # rekey collected enteries for RCPT TO, MAIL FROM for incoming SMTP 15 = { value = "if (matches_regular_expression(current_log_line(),'SMTPI-([0-9]*)\\\\([^)]*\\\\) \\\\[([^]]*)\\\\] received, [0-9]* bytes' )) then rekey_collected_entry($1, $2);" label = "15" comment = "" } # 15 # Accept on QUEUE or DEQUEUER delivered or relayed lines 16 = { label = "16" comment = "" value = "accept_collected_entry_using_regexp('QUEUE.*\\\\[([0-9]*)\\\\].*(delivered|relayed)', false)" } # 16 } # 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 source_host = { label = "$lang_stats.field_labels.source_host" log_field = "source_host" type = "string" suppress_top = 0 suppress_bottom = 2 } # source_host source_address = { label = "$lang_stats.field_labels.source_address" log_field = "source_address" type = "string" suppress_top = 0 suppress_bottom = 3 } # source_address protocol = { label = "$lang_stats.field_labels.protocol" log_field = "protocol" type = "string" suppress_top = 0 suppress_bottom = 2 } # protocol operation = { label = "$lang_stats.field_labels.operation" log_field = "operation" type = "string" suppress_top = 0 suppress_bottom = 2 } # operation local_account = { label = "$lang_stats.field_labels.local_account" log_field = "local_account" type = "string" suppress_top = 0 suppress_bottom = 2 } # local_account from = { label = "$lang_stats.field_labels.from" log_field = "from" type = "string" suppress_top = 0 suppress_bottom = 2 } # from to = { label = "$lang_stats.field_labels.to" log_field = "to" type = "string" suppress_top = 0 suppress_bottom = 2 } # to subject = { label = "$lang_stats.field_labels.subject" log_field = "subject" type = "string" suppress_top = 0 suppress_bottom = 2 } # subject pop_account = { label = "$lang_stats.field_labels.pop_account" log_field = "pop_account" type = "string" suppress_top = 0 suppress_bottom = 2 } # pop_account } # database.fields # Log Filters log.filters = { # This filter sets size = msgsize if size is zero 1 = { label = "1" comment = "" value = "if (protocol eq 'POP') then '' else protocol = 'SMTP';" } # 1 mark_entry = { label = '$lang_admin.log_filters.mark_entry_label' comment = '$lang_admin.log_filters.mark_entry_comment' value = 'hits = 1;' } # mark_entry } # log.filters database.numerical_fields = { hits = { label = "$lang_stats.field_labels.hits" default = true requires_log_field = false type = "int" display_format_type = "integer" entries_field = true } # hits 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 create_profile_wizard_options = { date_time_tracking = true # How the reports should be grouped in the report menu report_groups = { date_time_group = "" day_of_week = true hour_of_day = true source_host = true source_address = true protocol = true operation = true local_account = true from = true to = true subject = true pop_account = true } # report_groups } # create_profile_wizard_options not_supported = { sessions = true pageviews = true visitors = true } # not_supported } # communigate_pro