# Copyright (c) 2010 Flowerfire, Inc. All Rights Reserved. squid_common_syslog_required = { plugin_version = "1.0" # 2006/07/26: 1.0.0beta: KBB - initial creation - adapted from squid_common.cfg # 2007-09-14 - 1.0 - KBB - renumbered per new beta policy # The name of the log format log.format.format_label = "Squid Common Log Format - Syslog Required" log.miscellaneous.log_data_type = "syslog_required" log.miscellaneous.log_format_type = "proxy_server" # The log is in this format if any of the first ten lines match this regular expression log.format.autodetect_regular_expression = "squid\\[[0-9]+\\]: [^ ]* [^ ]* .* \\[../.../....:..:..:...*\\] \"[A-Z]* [a-zA-Z0-9]*://[^ ]* HTTP.*\" [-0-9]* [-0-9]* [A-Z_]*:[A-Z_]*$" #log.format.autodetect_regular_expression = "[^ ]* [^ ]* .* \\[../.../....:..:..:...*\\] \"[A-Z]* [a-zA-Z0-9]*://[^ ]* HTTP.*\" [-0-9]* [-0-9]* [A-Z_]*:[A-Z_]*$" # The format of dates and times in this log log.format.date_format = "dd/mmm/yyyy:hh:mm:ss" log.format.time_format = "dd/mmm/yyyy:hh:mm:ss" # All log field parsing will be done using the parsing filters log.format.parse_only_with_filters = "true" # Log fields log.fields = { browsing_host = "" authenticated_user = "" date_time = "" operation = "" url.type = "page" protocol = "" server_response.type = "response" size.type = "size" cache_response = "" } # log.fields # Database fields database.fields = { date_time = "" day_of_week = "" hour_of_day = "" browsing_host = "" operation = "" size = "" url = "" file_type = "" worm = "" authenticated_user = "" protocol = "" server_response = "" cache_response = "" } # database.fields log.parsing_filters.parse = ` #Jul 20 15:53:52 squid[94414]: 199.198.199.96 - - [20/Jul/2006:15:53:52 -0600] "GET http://www.britneyspears.com/flash/images/undefined/undefined.xml? HTTP/1.0" 404 548 TCP_MISS:DIRECT #Jul 20 15:53:52 squid[94414]: 199.198.199.39 - - [20/Jul/2006:15:53:52 -0600] "GET http://by2m7-wm2.webmessenger.msn.com/session/driver.ashx? HTTP/1.0" 200 830 TCP_MISS:DIRECT if (matches_regular_expression(v.syslog_message, '^squid\\\\[[0-9]+\\\\]: ([^ ]*) [^ ]* (.*) \\\\[(../.../....:..:..:..).*\\\\] "([A-Z]*) ([a-zA-Z0-9]*://[^ ]*) (HTTP.*)" ([-0-9]*) ([-0-9]*) ([A-Z_]*:[A-Z_]*)$')) then ( set_collected_field('', 'browsing_host', $1); set_collected_field('', 'authenticated_user', $2); set_collected_field('', 'date_time', $3); set_collected_field('', 'operation', $4); set_collected_field('', 'url', $5); set_collected_field('', 'protocol', $6); set_collected_field('', 'server_response', $7); set_collected_field('', 'size', $8); set_collected_field('', 'cache_response', $9); accept_collected_entry('', false); ); ` # Log Filters log.filters = { 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 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 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 not_authenticated = { label = "$lang_admin.log_filters.not_authenticated_label" comment = "$lang_admin.log_filters.not_authenticated_comment" value = "if (authenticated_user eq '-') then authenticated_user = '(not authenticated)';" } # not_authenticated 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 log.field_options = { sessions_page_field = "url" sessions_visitor_id_field = "browsing_host" sessions_event_field = "page_views" } # log.field_options database.numerical_fields = { hits = { label = "$lang_stats.field_labels.hits" default = false requires_log_field = false type = "int" display_format_type = "integer" entries_field = true } # hits 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 = "browsing_host" type = "unique" display_format_type = "integer" } # visitors 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 = { # How the reports should be grouped in the report menu report_groups = { date_time_group = "" } # report_groups } # create_profile_wizard_options } # squid_common_syslog_required