Sarg is a Squid Analysis Report Generator that allow you to view "where" your users
are going to on the Internet.
Sarg generate reports in html, with many fields, like: users, IP Addresses, bytes, sites and times.

Support to SmartFilter added - 09/02/2000

Special thanks to:
Matteo Colombo <matteo@calcol.it> 			- Italian language
Palamarchuk Eugen <eugen@cit.od.ukrtel.net> 		- Russian language
Csaba Kabai <ckabai@icnpharm.com>			- Hungarian language
Evren Yurtesen <yurtesen@ispro.net.tr>          	- Turkish language
Andreas Piek <a.piesk@gmx.net>				- German language
Fred Pacquier <fredp@dial.oleane.com>			- French language
Leonardo A. D'Angelo <ldangelo@san-cayetano.com>	- Spanish language
Seth Mos <stimpy@stimpy.multiweb.nl>			- Dutch language
Milos Prudek <prudek@nembv.cz>                          - Czech language
Dima I. Allaverdov <allav@ur.rags.ru>                   - Russian_windows1251 language
V Gatut Harijiso <gatut@student.unpar.ac.id>		- Indonesian language
Ivan Minchev <vanko@uni-svishtov.bg>			- Bulgarian_windows1251 language
Akira Kitamura <click@anet.ne.jp>			- Japanese language
Radovan Drobnjakovic <admin.rts@rts.co.yu>		- Serbian language
Pieter Kooistra <pkooistra@hr.nl>			- Dutch language fix
Andrew Okhmat <andy@crgu.com>			        - Russian Koi8 language fixed
Nikolai V. Ivanyushin <koko@infocenter.bryansk.ru>	- Russian and Bulgarian language fix
Juris Valdovskis <juris@auce.lv>			- Latvian language
Jordan Kanev <dancho@globcom.net>			- Bulgarian language fix
Wszebor Boksa <Wszebor_Boksa@koncept.pl>		- Polish language
Adi Cretu <adi@usv.ro>					- Romanian language
Roman Vynar <rvynar@icqmail.com>			- Ukrainian_windows1251 language
Andreu Sanchez <tanis@lleida.com>			- Catalan language

Translating
   . Copy include/English to YourLanguage
   . Translate YourLanguage
   . Send YourLanguage to orso@brturbo.com to implement


If you use native squid log format, the elapsed time will be in reports (emulate_httpd_log off).

1. run ./configure

   configure options: --enable-bindir=where sarg binary will be saved
                                default: /usr/bin

                      --enable-sysconfdir - where the configuration directory is
                                default: /usr/local/sarg

                      --enable-mandir - where the sarg man page will be saved
                                default: /usr/local/man/man1


3. make

4. make install

5. Go to /usr/local/sarg (or file entered with --sysconfdir on configure)
   and change sarg.conf as you need.

6. Notes about sarg:

   Date/Time report:
         Every minute that a request is logged your time is incremented by the smaller
         of 1 minute or the total time for the requests.

Usage: sarg -h

Source: http://web.onda.com.br/orso/index.html

Any suggests and/or comments, plase: orso@brturbo.com


# sarg.conf
#
# TAG:  language 
#       Available languages:
#               Bulgarian_windows1251
#               Catalan
#               Czech
#               Dutch
#               English
#               French
#               German
#               Hungarian
#               Indonesian
#               Italian
#               Japanese
#               Latvian
#               Polish
#               Portuguese
#               Romanian
#               Russian_koi8
#               Russian_windows1251
#               Serbian
#               Spanish
#               Turkish
#               Ukrainian_windows1251
#
#language English

# TAG:  access_log file
#       Where is the access.log file
#       sarg -l file
#
#access_log /usr/local/squid/var/logs/access.log

# TAG:  title
#       Especify the title for html page.
#
#title "Squid User Access Reports"

# TAG:  font_face
#       Especify the font for html page.
#
#font_face Arial

# TAG:  header_color
#       Especify the header color
#
#header_color darkblue

# TAG:  header_bgcolor
#       Especify the header bgcolor
#
#header_bgcolor blanchedalmond

# TAG:  font_size
# TAG:  font_size
#       Especify the font size
#
#header_font_size -1

# TAG:  background_color
# TAG:  background_color
#       Html page background color
#
#background_color white

# TAG:  text_color
#       Html page text color
#
#text_color black

# TAG:  text_bgcolor
#       Html page text background color
#
#text_bgcolor beige

# TAG:  title_color
#       Html page title color
#
#title_color green

# TAG:  logo_image
#       Html page logo.
#
#logo_image none

# TAG:  logo_text
#       Html page logo text.
#
#logo_text ""

# TAG:  logo_text_color
#       Html page logo texti color.
#
#logo_text_color black

# TAG:  logo_image_size
#       Html page logo image size. 
#       width height
#
#image_size 80 45

# TAG:  background_image
#       Html page background image
#
#background_image none

# TAG:  password
#       User password file used by authentication
#       If used here, reports will be generated only for that users.
#
#password none

# TAG:  temporary_dir
#       Temporary directory name for work files
#       sarg -w dir
#
#temporary_dir /tmp

# TAG:  output_dir
#       The reports will be saved in that directory
#       sarg -o dir
#
#output_dir /var/www/html/squid-reports

# TAG:  output_email
#       Email address to send the reports. If you use this tag, no html reports will be generated.
#       sarg -e email
#
#output_email none

# TAG:  resolve_ip yes/no
#       Convert ip address to dns name
#       sarg -n
#resolve_ip no

# TAG:  user_ip yes/no
#       Use Ip Address instead userid in reports.
#       sarg -p
#user_ip no

# TAG:  topuser_sort_field field normal/reverse
#       Sort field for the Topuser Report.
#       Allowed fields: USER CONNECT BYTES TIME
#
#topuser_sort_field BYTES reverse

# TAG:  user_sort_field field normal/reverse
#       Sort field for the User Report.
#       Allowed fields: SITE CONNECT BYTES TIME
#
#user_sort_field BYTES reverse

# TAG:  exclude_users file
#       users within the file will be excluded from reports.
#       you can use indexonly to have only index.html file.
#
#exclude_users none

# TAG:  exclude_hosts file
#       Hosts, domains or subnets will be excluded from reports.
#
#       Eg.: 192.168.10.10 - exclude ip address only
#            192.168.10.0  - exclude full C class
#            s1.acme.foo   - exclude hostname only
#            acme.foo      - exclude full domain name
#
#exclude_hosts none

# TAG:  useragent_log file
#       Put here where is useragent.log to nable useragent report.
#
#useragent_log none

# TAG:  date_format
#       Date format in reports: e (Europe=dd/mm/yy), u (USA=mm/dd/yy), w (Weekly=yy.ww)
#date_format u

# TAG:  per_user_limit file MB
#       Save userid on file if download exceed n MB.
#       
#       This option can be used to disable user access if user exceed a download limit.
#per_user_limit none

# TAG: lastlog n
#      How many reports files must be keept in reports directory.
#      The oldest report file will be automatically removed.
#      0 - no limit.
#
#lastlog 0

# TAG: remove_temp_files yes
#      Remove temporary files: geral, usuarios, top, periodo from root report directory.
#
#remove_temp_files yes

# TAG: index yes|no|only
#      Generate the main index.html.
#      only - generate only the main index.html
#
#index yes

# TAG: overwrite_report yes|no
#      yes - if report date already exist then will be overwrited.
#       no - if report date already exist then will be renamed to filename.n, filename.n+1
#
#overwrite_report no

# TAG: records_without_userid ignore|ip|everybody
#      What can I do with records without user id (no authentication) in access.log file ?
#
#      ignore - This record will be ignored.
#          ip - Use ip address instead. (default)
#   everybody - Use "everybody" instead.
#
#records_without_userid ip

# TAG: use_comma no|yes
#      Use comma instead point in reports.
#      Eg.: use_comma yes => 23,450,110
#           use_comma no  => 23.450.110
#
#use_comma no

# TAG: mail_utility mail|mailx
#      Mail command to use to send reports via SMTP
#
#mail_utility mailx

# TAG: topsites_num n
#      How many sites in topsites report.
#
#topsites_num 100

# TAG: topsites_sort_order CONNECT|BYTES A|D
#      Sort for topsites report, where A=Ascendent, D=Descendent
#
#topsites_sort_order CONNECT D

# TAG: index_sort_order A/D
#      Sort for index.html, where A=Ascendent, D=Descendent
#
#index_sort_order D

# TAG: exclude_codes file
#      Ignore records with these codes. Eg.: NONE/400
#
#exclude_codes /usr/local/sarg/exclude_codes

# TAG: replace_index string
#      Replace "index.html" in the main index file with this string
#      If null "index.html" is used 
#
#replace_index <?php echo str_replace(".", "_", $REMOTE_ADDR); echo ".html"; ?>

# TAG: max_elapsed milliseconds
#      If elapsed time is recorded in log is greater than max_elapsed use 0 for elapsed time.
#      Use 0 for no checking 
#
#max_elapsed 0
# 8 Hours
max_elapsed 28800000

# TAG: report_type type
#      What kind of reports to generate.
#      topsites            - shows the site, connect and bytes
#      sites_users         - shows which users were accessing a site
#      users_sites         - shows sites accessed by the user
#      date_time           - shows the amount of bytes used by day and hour
#      denied              - shows all denied sites with full URL
#      auth_failures       - shows autentication failures
#      site_user_time_date - shows sites, dates, times and bytes
#
#      Eg.: report_type topsites denied 
#
#report_type topsites sites_users users_sites date_time denied auth_failures site_user_time_date

# TAG: usertab filename
#      You can change the "userid" or the "ip address" to be a real user name on the rpeorts.
#      Table syntax:
#               userid name   or   ip address name
#      Eg:
#               SirIsaac Isaac Newton
#               vinci Leonardo da Vinci
#               192.168.10.1 Karol Wojtyla
#      
#      Each line must be terminated with '\n'
#
#usertab none

# TAG: long_url yes|no
#      If yes, the full url is showed in report.
#      If no, only the site will be showed
#
#      YES option generate very big sort files and reports.
#
#long_url no

# TAG: date_time_by bytes|elap
#      Date/Time reports will use bytes or elapsed time?
#
#date_time_by bytes

# TAG: charset name
#      ISO 8859 is a full series of 10 standardized multilingual single-byte coded (8bit)
#      graphic character sets for writing in alphabetic languages
#      You can use the following charsets:
#               Latin1          - West European
#               Latin2          - East European 
#               Latin3          - South European 
#               Latin4          - North European 
#               Cyrillic 
#               Arabic 
#               Greek 
#               Hebrew 
#               Latin5          - Turkish 
#               Latin6
#               Windows-1251
#               Koi8-r
#
#charset Latin1

# TAG: user_invalid_char "&/"
#      Records that contain invalid characters in userid will be ignored by Sarg.
#
#user_invalid_char "&/"

# TAG: privacy yes|no
#      privacy_string "***.***.***.***"
#      privacy_string_color blue
#      In some countries the sysadm cannot see the visited sites by a restrictive law.
#      Using privacy yes the visited url will be changes by privacy_string and the link
#      will be removed from reports.
#
#privacy no
#privacy_string "***.***.***.***"
#privacy_string_color blue

# TAG: include_users "user1:user2:...:usern"
#      Reports will be generated only for listed users.
#
#include_users none

# TAG: exclude_string "string1:string2:...:stringn"
#      Records from access.log file that contain one of listed strings will be ignored.
#
#exclude_string none

# TAG: show_successful_message yes|no
#      Shows "Successful report generated on dir" at end of process.
#
#show_successful_message yes

# TAG: show_read_statistics yes|no
#      Shows some reading statistics.
#
#show_read_statistics no

# TAG: topuser_fields
#      Which fields must be in Topuser report.
#
#topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE

# TAG: user_report_fields
#      Which fields must be in User report.
#
#user_report_fields CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE

# TAG: topuser_num n
#      How many users in topsites report. 0 = no limit
#
#topuser_num 0

# TAG: site_user_time_date_type list|table
#      generate reports for site_user_time_date in list or table format
#
#site_user_time_date_type table

# TAG: datafile file
#      Save the report results in a file to populate some database
#
#datafile none

# TAG: datafile_delimiter ";"
#      ascii character to use as a field separator in datafile
#
#datafile_delimiter ";"

# TAG: datafile_fields all
#      Which data fields must be in datafile
#      user;date;time;url;connect;bytes;in_cache;out_cache;elapsed
#
#datafile_fields user;date;time;url;connect;bytes;in_cache;out_cache;elapsed

# TAG: weekdays
#      The weekdays to take account ( Sunday->0, Saturday->6 )
# Example:
#weekdays 1-3,5
# Default:
#weekdays 0-6

# TAG: hours
#      The hours to take account
# Example:
#hours 7-12,14,16,18-20
# Default:
#hours 0-23

# TAG: squidguard_log_path file
#      Generate reports from SquidGuard logs.
#
#squidguard_log_path none

# TAG: show_sarg_info yes|no
#      shows sarg information and site patch on each report bottom
#
#show_sarg_info yes

# TAG: parsed_output_log directory
#      Saves the processed log in a sarg format after parsing the squid log file.
#      This is a way to dump all of the data structures out, after parsing from 
#      the logs (presumably this data will be much smaller than the log files themselves),
#      and pull them back in for later processing and merging with data from previous logs.
#
#parsed_output_log none

# TAG parsed_output_log_compress /bin/gzip|/usr/bin/bzip2|nocompress
#      sarg logs compress util
#
#parsed_output_log_compress /bin/gzip

# TAG displayed_values bytes|abbreviation
#      how the values will be displayed in reports.
#      eg. bytes        -  209.526
#          abbreviation -  210K
#
#displayed_values bytes
