initial commit of file from CVS for smeserver-awstats on Sat Sep 7 20:09:28 AEST 2024

This commit is contained in:
Trevor Batley
2024-09-07 20:09:28 +10:00
parent 2ac31e7de4
commit 4e37dd65ac
29 changed files with 3907 additions and 2 deletions

View File

@@ -0,0 +1 @@
enabled

View File

@@ -0,0 +1 @@
status

View File

@@ -0,0 +1,63 @@
#!/usr/bin/perl -w
#----------------------------------------------------------------------
# copyright (C) 2001 neddix, stuttgart
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#----------------------------------------------------------------------
package esmith;
use strict;
use Errno;
use esmith::config;
use esmith::util;
use esmith::db;
#------------------------------------------------------------
# run the awstats logfile pre-processor
#------------------------------------------------------------
my $event = $ARGV [0];
my $configDB = esmith::ConfigDB->open or die("can't open Config DB");
my $status = $configDB->get_prop( "AWStats", "status" );
if (defined $status && $status eq "enabled")
{
my $awconfpath="/etc/e-smith/web/panels/manager/cgi-bin/.awstats";
my $mtime;
my $prev_mtime=0;
(undef,undef,undef,undef,undef,undef,undef,undef,undef,$mtime)=stat("$awconfpath/awstats.conf");
exit 0 if (!defined $mtime);
while ($mtime != $prev_mtime) {
open (IN, "$awconfpath/awstats.conf") or die "\nCould not open $awconfpath/awstats.conf\n";
open (OUT, ">$awconfpath/awstats.conf.$$") or die "\nCould not open $awconfpath/awstats.conf.$$\n";
while (<IN>) {
print OUT $_;
}
close (IN);
close (OUT);
(undef,undef,undef,undef,undef,undef,undef,undef,undef,$prev_mtime)=stat("$awconfpath/awstats.conf");
}
esmith::util::backgroundCommand (1, "/sbin/e-smith/awstats-pp", "-c$awconfpath/awstats.conf.$$");
}
exit (0);

View File

@@ -0,0 +1,29 @@
#!/bin/bash
if [[ -d /var/www/awstats/ ]]; then
cp -a /var/www/awstats/icon/* /etc/e-smith/web/panels/manager/html/awstats/icon
cp -a /var/www/awstats/awstats.pl /etc/e-smith/web/panels/manager/cgi-bin/.awstats
cp -a /var/www/awstats/lang /etc/e-smith/web/panels/manager/cgi-bin/.awstats
cp -a /var/www/awstats/lib /etc/e-smith/web/panels/manager/cgi-bin/.awstats
cp -a /var/www/awstats/plugins /etc/e-smith/web/panels/manager/cgi-bin/.awstats
else
rootdir='/usr/share/awstats/'
cp -a $rootdir/wwwroot/icon/* /etc/e-smith/web/panels/manager/html/awstats/icon
cp -a $rootdir/wwwroot/cgi-bin/awstats.pl /etc/e-smith/web/panels/manager/cgi-bin/.awstats
cp -a $rootdir/lang /etc/e-smith/web/panels/manager/cgi-bin/.awstats
cp -a $rootdir/lib /etc/e-smith/web/panels/manager/cgi-bin/.awstats
cp -a $rootdir/plugins /etc/e-smith/web/panels/manager/cgi-bin/.awstats
fi
chmod -R 770 /etc/e-smith/web/panels/manager/cgi-bin/.awstats
#cd /etc/e-smith/web/panels/manager/html/awstats/
ln -sf /etc/e-smith/web/panels/manager/html/awstats/icon/os /etc/e-smith/web/panels/manager/html/awstats/os
ln -sf /etc/e-smith/web/panels/manager/html/awstats/icon/flags /etc/e-smith/web/panels/manager/html/awstats/flags
ln -sf /etc/e-smith/web/panels/manager/html/awstats/icon/browser /etc/e-smith/web/panels/manager/html/awstats/browser
ln -sf /etc/e-smith/web/panels/manager/html/awstats/icon/clock /etc/e-smith/web/panels/manager/html/awstats/clock
ln -sf /etc/e-smith/web/panels/manager/html/awstats/icon/mime /etc/e-smith/web/panels/manager/html/awstats/mime
ln -sf /etc/e-smith/web/panels/manager/html/awstats/icon/other /etc/e-smith/web/panels/manager/html/awstats/other
echo "AWStats upgrade complete"

View File

@@ -0,0 +1,50 @@
{
use esmith::config;
use esmith::db;
$OUT = "\n# AWStats Advanced Web Statistics, RPM provided by www.neddix.de\n";
local %services;
$services{'AWStats'} = $AWStats;
my $status = db_get_prop(\%services, "AWStats", "status");
if (defined $status && $status eq "enabled")
{
my $cmd="/bin/nice /sbin/e-smith/awstats-pp -s -n";
my $freq = db_get_prop(\%services, "AWStats", 'Freq');
if ($freq eq '5m') {
$OUT .= "*/5 * * * * root $cmd\n";
}
elsif ($freq eq '10m') {
$OUT .= "*/10 * * * * root $cmd\n";
}
elsif ($freq eq '15m') {
$OUT .= "*/15 * * * * root $cmd\n";
}
elsif ($freq eq '30m') {
$OUT .= "*/30 * * * * root $cmd\n";
}
elsif ($freq eq '1h') {
$OUT .= "13 * * * * root $cmd\n";
}
elsif ($freq eq '2h') {
$OUT .= "13 */2 * * * root $cmd\n";
}
elsif ($freq eq '4h') {
$OUT .= "13 */4 * * * root $cmd\n";
}
elsif ($freq eq '8h') {
$OUT .= "13 */8 * * * root $cmd\n";
}
elsif ($freq eq '12h') {
$OUT .= "13 */12 * * * root $cmd\n";
} else {
$OUT .= "# Parameter Freq not vaild, using default\n";
$OUT .= "*/15 * * * * root $cmd\n";
}
} else {
$OUT .= "#disabled";
}
}

View File

@@ -0,0 +1,6 @@
{
return "# awstats-mail is disabled\n" unless ($AWStats{mailstatus} || 'disabled') eq 'enabled';
my $cmd="/etc/e-smith/web/panels/manager/cgi-bin/.awstats/awstats.pl";
$OUT .= "45 * * * * root $cmd -update -config=mail >/dev/null\n";
}

View File

@@ -0,0 +1,7 @@
{
return "# awstats-ftp is disabled\n" unless ($AWStats{ftpstatus} || 'disabled') eq 'enabled';
my $cmd="/etc/e-smith/web/panels/manager/cgi-bin/.awstats/awstats.pl";
$OUT .= "35 * * * * root $cmd -update -config=ftp >/dev/null\n";
}

View File

@@ -0,0 +1,927 @@
# AWStats configure file
#------------------------------------------------------------------------
# Copy this file into awstats.www.myserver.mydomain.conf or awstats.conf
# and edit this new file to setup AWStats (This config file must be in
# same directory than awstats.pl).
# If you don't understand what is a parameter, keep default value.
#------------------------------------------------------------------------
# Main setup section (Required to make AWStats working)
#------------------------------------------------------------------------
# Web server logfile to analyze, with full path
# Example: "/var/logs/httpd/myserver_access.log"
# or relative path from awstats.pl directory.
# Example: "../logs/mycombinedlog.log"
# You can also use %YY %MM %DD or %HH in filename, AWStats will
# replace those tags with current year month day or hour.
# Example: "C:/WINNT/system32/LogFiles/W3SVC1/ex%YY%MM%DD.log"
LogFile="/var/log/httpd/access_log"
# Put here your log format (it depends on your web server).
# Possible values:
# 1 - Apache combined log format
# 2 - IIS extended W3C log format
#
# for e-smith 1 must be used, awstats-run converts the e-mith combined_virtual to combined
LogFormat=1
# Set this to a directory where you want AWStats to save its working files.
# Need write permissions by web server user (user "nobody" with Unix OS).
# Example: "/tmp"
# Example: "../data"
# Example: "C:/awstats_working_dir"
# Default: "." (means same directory as awstats.pl)
DirData="/home/e-smith/files/users/admin/home/awstats"
# Relative or absolute web URL of your awstats.pl directory.
# Used only when AWStats is used from command line.
# Default: "/cgi-bin" (means awstats.pl is in "/mywwwroot/cgi-bin")
#
DirCgi="/cgi-bin"
# Relative or absolute web URL of all icons subdirectories.
# Default: "/icon" (means you must copy icon directories in "/mywwwroot/icon")
#
DirIcons="../../awstats"
# "SiteDomain" must contain the main domain name or the main intranet web
# server name used to reach the web site.
# If you share the same log file for several virtual web servers, this
# parameter is used to tell AWStats to filter record that contains records for
# this virtual host name only (So check that this virtual hostname can be
# found in your log file and use a personalized log format that include the
# %virtualname tag).
# But for multi hosting a better solution is to have one log file for each
# virtual web server. In this case, this parameter is only used to generate
# full URL's links when ShowLinksOnUrl option is set to 1.
# Example: "www.mydomain.com"
# Example: "user.mydomain.com"
# Example: "myintranetserver"
#
{
use warnings;
use esmith::ConfigDB;
my $configDB = esmith::ConfigDB->open or die("can't open Config DB");
my $domain = $configDB->get( 'DomainName' )->value;
$OUT = "SiteDomain=\"www." . $domain . "\"";
}
# If you want to have hosts reported by name instead of ip address, AWStats
# need to make reverse DNS lookups (if not already done in your log file).
# With DNSLookup to 0, all hosts will be reported by their IP addresses and
# not by the full hostname of visitors.
# If you want to set DNSLookup to 1, don't forget that this will reduce
# dramatically AWStats update process speed. Do not use on large web sites.
# Note: Reverse DNS lookup is done on IPv4 only.
# Note: Country detection can works without reverse DNS lookup if plugin
# 'geoip' is enabled (faster and more accurate than reverse DNS lookup).
# Possible values:
# 0 - No DNS Lookup
# 1 - DNS Lookup is fully enabled
# 2 - DNS Lookup is made only from DNS cache files (if exist)
# Default: 2
#
DNSLookup=1
# AWStats can purge log after processing it. By this way, the next time you
# launch AWStats, log file will be smaller and processing time will be better.
# IMPORTANT !!!
# AWStats is able to detect new lines in log files, to process only new lines,
# so you can launch it as soon as you want, even with this parameter set to 0.
# This parameter doesn't work with IIS (This web server doesn't let its log
# file to be purged).
# The purge of the log file is made only when awstats is runned so you must
# keep your standard scheduler/crontab to purge your log file frequently.
# Possible values: 1 or 0
# Default: 0 (but if you can, set this to 1 to increase speed)
#
# must set to 0 for AWStats on e-smith. DO NO PLAY WITH THIS OPTION
PurgeLogFile=0
# When PurgeLogFile is setup to 1, AWStats will clean your log file after
# processing it. You can however keep an archive file (saved in "DirData") of
# all processed log records by setting this to 1 (For example if you want to
# use another log analyzer).
# This parameter is not used if PurgeLogFile=0
# Possible values: 1 or 0
# Default: 0
#
ArchiveLogRecords=0
#extra config for 6.3
AllowFullYearView=3
# Optionnal setup section (Not required but increase AWStats features)
#------------------------------------------------------------------------
# Set your primary language.
# Possible value:
# 0=English, 1=French, 2=Dutch, 3=Spanish, 4=Italian, 5=German
# 6=Polish, 7=Greek, 8=Czech, 9=Portuguese
# Default: 0
#
Lang=0
# Index page name for your web server.
# Example: "default.htm"
# Default: "index.html"
#
DefaultFile="index.html"
### SkipHosts=
# Do not include access from clients that match following IP address.
# You can also put partial host names but this requires that reverse DNS
# lookup is already done in your server log file.
# Use space between each value and put a backslash before each dot.
# Example: "55\.55\.55\.55 222\.222\.222\.222 abcxyz"
# Default: ""
#
### HostAliases=
# Put here all possible domain names, addresses or virtual host aliases
# someone can use to access your site. Try to keep only the minimum number of
# possible names/adresses to have the best performances.
# Use space between each value and put a backslash before each dot.
# This parameter is used to analyze referer field in log file and to help
# AWStats to know if a referer URL is a local URL of same site or an URL of
# another site.
# Example: "www\.myserver\.com x\.y\.z\.w localhost 127\.0\.0\.1"
#
{
###############################################################
# SkipHosts
# This section could probably be cleaned up/made faster
sub mip ($$);
use warnings;
use esmith::ConfigDB;
my $configDB = esmith::ConfigDB->open or die("can't open Config DB");
my $networkDB = esmith::ConfigDB->open('networks') or die("can't open Networks DB");
my $skipHosts = $configDB->get_prop( "AWStats", "SkipHosts" ) || '';
my $allIPs = "";
$OUT = "SkipHosts=\"";
# local IP
#
my $localip = $configDB->get_prop( 'InternalInterface', 'IPAddress' );
my $localnetmask = $configDB->get_prop( 'InternalInterface', 'Netmask' );
my $ipskipLocalIP = $configDB->get_prop( "AWStats", "SkipLocalIP" );
if ( defined $ipskipLocalIP && $ipskipLocalIP ne "no" ) { # in Beta1 SkipLocalIP="mask" was possible
my $return = mip( $localip, $localnetmask );
$allIPs .= "REGEX[^$return] ";
}
# local networks
#
my $ipskipLocalNet = $configDB->get_prop( "AWStats", "SkipLocalNetworks" );
if ( defined $ipskipLocalNet && $ipskipLocalNet eq "yes" ) {
my @networks = $networkDB->keys;
foreach my $network (@networks) {
my $type = $networkDB->get_prop( $network, 'type' );
my $system = $networkDB->get_prop( $network, 'SystemLocalNetwork' ) || '';
if ( $type eq 'network' && $system ne 'yes') {
my $properties = $networkDB->get_prop( $network, 'Mask' );
my $return = mip( $network, $properties );
$allIPs .= "REGEX[^$return] ";
}
}
}
# Escape full stops e.g. \.co\.uk ; for REGEX only
$allIPs =~ s/\./\\./g;
# external IP
#
my $externalstatus = $configDB->get_prop( 'ExternalInterface', 'Configuration' ) || 'disabled';
my $externalip = $configDB->get_prop( 'ExternalInterface', 'IPAddress' ) || '';
my $externalnetmask = $configDB->get_prop( 'ExternalInterface', 'Netmask' ) || '';
if ( $externalstatus ne 'disabled' ) {
my $ipskipExtIP = $configDB->get_prop( "AWStats", "SkipExternalIP" );
# If Skip ExternalIP is set to mask
if ( defined $ipskipExtIP && $ipskipExtIP eq "mask" ) {
my $return = mip( $externalip, $externalnetmask );
#Escape full stops e.g. \.co\.uk ; for REGEX only
$return =~ s/\./\\./g;
$allIPs .= "REGEX[^$return] ";
}
# If Skip ExternalIP is set to yes then just specific IP
elsif ( defined $ipskipExtIP && $ipskipExtIP eq "yes" ) {
$allIPs .= "$externalip ";
}
}
$OUT .= "127.0.0.1 $skipHosts $allIPs";
$OUT .= '"' . "\n";
###############################################################
# HostAliases
my $domainsDB = esmith::ConfigDB->open('domains') or die("can't open Domains DB");
$OUT .= 'HostAliases="localhost 127.0.0.1';
# push( @aliases, $DynDnsHostname ) if defined $DynDnsHostname;
# Need to find DynDnsHostname if it exists
my @domains = $domainsDB->keys;
foreach (@domains) {
# Escape full stops e.g. \.co\.uk
s/\./\\./g;
$OUT .= " REGEX[$_\$]";
}
# needed for IE6 beta
if ( defined $ipskipExtIP && $ipskipExtIP eq "mask" ) {
$externalip = mip( $externalip, $externalnetmask );
#$externalip =~ s/\./\\./g;
$OUT .= " " . $externalip;
}
elsif ( defined $ipskipExtIP && $ipskipExtIP eq "yes" ) {
#$externalip =~ s/\./\\./g;
$OUT .= " " . $externalip;
}
# Close the HostAliases line
$OUT .= '"' . "\n";
###############################################################
sub mip ($$) {
my ( $ip, $msk ) = @_;
( my @mask ) = split( "[\.]", $msk );
my $i;
# AWStats connot handle non-standard netmasks!
for ( $i = 0; $i < 4; $i++ ) {
if ( $mask[$i] ne "255" ) {
if ( $i == 1 ) {
$ip =~ s/[0-9]*\.[0-9]*\.[0-9]*$//;
}
elsif ( $i == 2 ) {
$ip =~ s/[0-9]*\.[0-9]*$//;
}
elsif ( $i == 3 ) {
$ip =~ s/[0-9]*$//;
}
last;
}
}
return $ip;
}
}
# Do not include access to URLs that match following entries.
# If you don't want to include users homepage in your stats, add "/~".
# You can also, if you want, add list of not important frame pages (like
# menus, etc...) to exclude them from statistics.
# Use space between each value and put a backslash before each dot.
# Do not remove default values.
# Example: "\.css \.js \.class robots\.txt dir/badpage\.html /~"
# Default: "\.css \.js \.class robots\.txt"
#
SkipFiles="\.css \.js \.class"
# Include in stats, only accesses from hosts that match one of following
# entries. For example, if you want AWStats to filter access to keep only
# stats for visits from particular hosts, you can add thoose hosts names
# in this parameter.
# If DNS lookup is already done in your log file, you must enter here hostname
# criteria, else enter ip address criteria.
# The opposite parameter of "OnlyHosts" is "SkipHosts".
# Note: This parameter is not case sensitive.
# Note: Use space between each value.
# Note: ^xxx means hosts starting with xxx.
# Note: xxx$ means hosts ending with xxx.
# Example: "^123.123.123.123$ ^10.0."
# Default: ""
#
OnlyHosts=""
# Include in stats, only accesses to URLs that match one of following entries.
# For example, if you want AWStats to filter access to keep only stats that
# match a particular string, like a particular directory, you can add this
# directory name in this parameter.
# The opposite parameter of "OnlyFiles" is "SkipFiles".
# Note: This parameter is not case sensitive.
# Note: Use space between each value and do not remove default values
# Note: ^xxx means url starting with xxx.
# Note: xxx$ means url ending with xxx.
# Example: "marketing_directory"
# Default: ""
#
OnlyFiles=""
# Add here a list of kind of url (file extension) that must be counted as
# "Hit only" and not as a "Hit" and "Page/Download". You can set here all
# images extensions as they are hit downloaded that must be counted but they
# are not viewed pages. URLs with such extensions are not included in the TOP
# Pages/URL report.
# Note: If you want to exclude your own URLs from stats (No Pages and no Hits
# reported), you should use SkipFiles parameter instead.
# Example: ""
# Example: "css js class gif jpg jpeg png bmp zip arj gz z wav mp3 wma mpg"
# Default: "css js class gif jpg jpeg png bmp"
#
NotPageList="css js class gif jpg jpeg png bmp"
# By default, AWStats considers that records found in web log file are
# successful hits if HTTP code returned by server is a valid HTTP code (200
# and 304). Any other code are reported in HTTP error chart.
# However in some specific environment, with web server HTTP redirection,
# you can choose to also accept other codes.
# Example: "200 304 302 305"
# Default: "200 304"
#
ValidHTTPCodes="200 304"
# By default, AWStats considers that records found in mail log file are
# successful mail transfers if code saved in log file is a valid code (1 for
# sendmail, 0 for postfix).
# Example: "1"
# Example: "0"
# Default: "1"
#
ValidSMTPCodes="1"
# Some web servers on some Operating systems (IIS-Windows) considers that two
# URLs with same value but different case are the same URL. To tell AWStats to
# also considers them as one, set this parameter to 1.
# Possible values: 0 or 1
# Default: 0
#
URLNotCaseSensitive=0
# In URL links, "?" char is used to add parameter's list in URLs. Syntax is:
# /mypage.html?param1=value1
# However, some servers/sites have also others chars to isolate dynamic part of
# their URLs. You can complete this list with all such characters.
# Example: "?;,"
# Default: "?;"
#
URLQuerySeparators="?;"
# Keep or remove the query string to the URL in the statistics for individual
# pages. This is primarily used to differentiate between the URLs of dynamic
# pages. If set to 1, mypage.html?id=x and mypage.html?id=y are counted as two
# different pages.
# Warning, when set to 1, memory required to run AWStats is dramatically
# increased if you have a lot of changing URLs (for example URLs with a random
# id inside). Such web sites should not set this option to 1 or use seriously
# the next parameter URLWithQueryWithoutFollowingParameters.
# Possible values:
# 0 - URLs are cleaned from the query string (ie: "/mypage.html")
# 1 - Full URL with query string is used (ie: "/mypage.html?p=x&q=y")
# Default: 0
#
URLWithQuery=1
# When URLWithQuery is on, you will get the full URL with all parameters in
# URL reports. But among thoose parameters, sometimes you don't need a
# particular parameter because it does not identify the page or because it's
# a random ID changing for each access even if URL points to same page. In
# such cases, it is higly recommanded to ask AWStats to remove such parameters
# from the URL before counting, manipulating and storing it. Enter here list
# of all non wanted parameters. For example if you enter "id", one hit on
# /mypage.cgi?p=abc&id=Yo4UomP9d and /mypage.cgi?p=abc&id=Mu8fdxl3r
# will be reported as 2 hits on /mypage.cgi?p=abc
# This parameter is not used when URLWithQuery is 0.
# Example: "PHPSESSID jsessionid"
# Default: ""
#
URLWithQueryWithoutFollowingParameters=""
# Keep or remove the query string to the referrer URL in the statistics for
# external referrer pages. This is used to differentiate between the URLs of
# dynamic referrer pages. If set to 1, mypage.html?id=x and mypage.html?id=y
# are counted as two different referrer pages.
# Possible values:
# 0 - Referrer URLs are cleaned from the query string (ie: "/mypage.html")
# 1 - Full URL with query string is used (ie: "/mypage.html?p=x&q=y")
# Default: 0
#
URLReferrerWithQuery=0
# AWStats can detect setup problems or show you important informations to have
# a better use. Keep this to 1, except if AWStats says you can change it.
# Possible values: 0 or 1
# Default: 1
#
WarningMessages=1
# When an error occurs, AWStats output a message related to errors. If you
# want (in most cases for security reasons) to have no error messages, you
# can set this parameter to your personalized generic message.
# Example: "An error occured. Contact your Administrator"
# Default: ""
#
ErrorMessages=""
# AWStat can be run with debug=x parameter to ouput various informations
# to help in debugging or solving troubles. If you wand (in most cases for
# security reasons) to disable debugging, set this parameter to 0.
# Possible values: 0 or 1
# Default: 1
#
DebugMessages=1
# To help you to detect if your log format is good, AWStats report an error
# if all the first NbOfLinesForCorruptedLog lines have a format that does not
# match the LogFormat parameter.
# However, some worm virus attack on your web server can result in a very high
# number of corrupted lines in your log. So if you experience awstats stop
# because of bad virus records at the beginning of your log file, you can
# increase this parameter (very rare).
# Default: 50
#
NbOfLinesForCorruptedLog=50
# For some particular integration needs, you may want to have CGI links to
# point to another script than awstats.pl.
# Use the name of this script in WrapperScript parameter.
# Example: "awstatslauncher.pl"
# Default: ""
#
WrapperScript=""
# DecodeUA must be set to 1 if you use Roxen web server. This server converts
# all spaces in user agent field into %20. This make the AWStats robots, os
# and browsers detection fail in some cases. Just change it to 1 if and only
# if your web server is Roxen.
# Possible values: 0 or 1
# Default: 0
#
DecodeUA=0
#-----------------------------------------------------------------------------
# OPTIONAL ACCURACY SETUP SECTION (Not required but increase AWStats features)
#-----------------------------------------------------------------------------
# Following values allows you to disable/enable some AWStats features.
# Possible values: 0, 1 (or 2 for LevelForRobotsDetection)
# Default: 1 (2 for LevelForRobotsDetection)
#
LevelForRobotsDetection=2 # 0 will increase AWStats speed by 1%.
LevelForBrowsersDetection=1 # 0 disables Browsers detection. No speed gain.
LevelForOSDetection=1 # 0 disables OS detection. No speed gain.
LevelForRefererAnalyze=1 # 0 will increase AWStats speed by 5%.
#-----------------------------------------------------------------------------
# OPTIONAL APPEARANCE SETUP SECTION (Not required but increase AWStats features)
#-----------------------------------------------------------------------------
# When you use AWStats as a CGI, you can have the reports shown in HTML frames.
# Frames are only available for report viewed dynamically. When you build
# pages from command line, this option is not used and no frames are built.
# Possible values: 0 or 1
# Default: 0
#
{
$frames = $AWStats{UseFramesWhenCGI};
$OUT = "UseFramesWhenCGI=" . ( $frames ne "yes" ? 0 : 1 ) . "\n";
}
# This parameter ask your browser to open detailed reports into a different
# window than the main page.
# Possible values:
# 0 - Open all in same browser window
# 1 - Open detailed reports in another window except if using frames
# 2 - Open always in a different window even if reports are framed
# Default: 1
#
DetailedReportsOnNewWindows=1
# You can add in the HTML report page a delay to force browsers to not use cache
# if page is loaded a second time after this delay (in seconds).
# This parameter is not used when report are built with -staticlinks option.
# Example: 3600
# Default: 0
#
Expires=0
# To avoid too large web pages, you can ask AWStats to limit number of rows of
# all reported charts to this number when no other limit apply.
# Default: 1000
#
MaxRowsInHTMLOutput=1000
# Each URL shown in stats page are links you can click.
# Possible values: 1 or 0
# Default: 1
#
# 0 is recommended for e-smith, since AWStats is invoked over port 980.
# clickable URL are rooted to http://yourdomain.tld:980/, which won't work
#
ShowLinksOnUrl=1
# Flags with link to other languages translation are visible.
# Possible values: 1 or 0
# Default: 1
#
# e-smith: lanuage option offered in the configuration panel
ShowFlagLinks=""
# Search engines keywords reported are full search string or separate keywords
# Possible values:
# 0 - Search keywords reported are full search string (ie: "town maps")
# r - Search keywords reported are separated words (ie: "town" and "maps")
# Default: 0
#
SplitSearchString=0
# You can put here HTML code that will be added at the end of AWStats reports.
# Great to add advert ban.
# Default: ""
#
HTMLEndSection="<table border=0 cellpadding=3 cellspacing=0><tr><td valign=center><font size=-1>contributed rpm by neddix.de dungog.net</font></td></tr></table>"
# Value of maximum bar width/heigth for horizontal/vertical graphics bar
# Default: 260/220
#
{
$BarSize = $AWStats{BarSize};
if ( $BarSize eq "small" ) {
$OUT = "BarWidth = 160\nBarHeight = 120\n";
}
elsif ( $BarSize eq "large" ) {
$OUT = "BarWidth = 360\nBarHeight = 320\n";
}
else {
$OUT = "BarWidth = 260\nBarHeight = 220\n";
}
}
# This value can be used to choose maximum number of lines shown for each
# particular reporting.
#
# Stats by domains
# NO checks made for these SME keys !!!
{
$OUT = '';
$OUT .= "MaxNbOfDomain= " . $AWStats{MaxNbOfDomain} . "\n";
$OUT .= "MaxNbOfHostsShown= " . $AWStats{MaxNbOfHostsShown} . "\n";
$OUT .= "MinHitHost= " . $AWStats{MinHitHost} . "\n";
$OUT .= "MaxNbOfRobotShown= " . $AWStats{MaxNbOfRobotShown} . "\n";
$OUT .= "MinHitRobot= " . $AWStats{MinHitRobot} . "\n";
$OUT .= "MaxNbOfPageShown= " . $AWStats{MaxNbOfPageShown} . "\n";
$OUT .= "MinHitFile= " . $AWStats{MinHitFile} . "\n";
$OUT .= "MaxNbOfRefererShown= " . $AWStats{MaxNbOfRefererShown} . "\n";
$OUT .= "MinHitRefer= " . $AWStats{MinHitRefer} . "\n";
$OUT .= "MaxNbOfKeywordsShown= " . $AWStats{MaxNbOfKeywordsShown} . "\n";
$OUT .= "MinHitKeyword= " . $AWStats{MinHitKeyword} . "\n";
}
# You choose here which reports you want to see in the main page and what you
# want to see in those reports.
# Possible values:
# 0 - Topic is not shown at all
# 1 - Report is shown with default informations
# XYZ - Report is shown with only informations defined by code X,Y,Z
# X,Y,Z are code letters among the following:
# U = Unique visitors
# V = Visits
# P = Number of pages
# H = Number of hits
# B = Bandwith
# L = Last access date
# E = Entry pages
# X = Exit pages
# C = Web compression (mod_gzip)
# M = Average mail size (mail logs)
#
# Show AWStats head title and icon
# Default: 1, Possible codes: None
ShowHeader=0
# Show menu header with links on detailed reports
# Default: 1, Possible codes: None
ShowMenu=1
# Show monthly and daily chart
# Default: UVPHB, Possible codes: UVPHB
ShowMonthDayStats=UVPHB
# Show days of week chart
# Default: PHB, Possible codes: PHB
ShowDaysOfWeekStats=PHB
# Show hourly chart
# Default: PHB, Possible codes: PHB
ShowHoursStats=PHB
# Show domains/country chart
# Default: PHB, Possible codes: PHB
ShowDomainsStats=PHB
# Show hosts chart
# Default: PHBL, Possible codes: PHBL
ShowHostsStats=PHBL
# Show authenticated users chart
# Default: 0, Possible codes: PHBL
ShowAuthenticatedUsers=1
# Show robots chart
# Default: HBL, Possible codes: HBL
ShowRobotsStats=HBL
# Show EMail senders chart (For use when analyzing mail log files)
# Default: 0, Possible codes: HBML
ShowEMailSenders=0
# Show EMail receiver chart (For use when analyzing mail log files)
# Default: 0, Possible codes: HBML
ShowEMailReceivers=0
# Show session chart
# Default: 1, Possible codes: None
ShowSessionsStats=1
# Show pages-url chart.
# Default: PBEX, Possible codes: PBEX
ShowPagesStats=PBEX
# Show file types chart.
# Default: HB, Possible codes: HBC
ShowFileTypesStats=HBC
# Show file size chart (Not yet available)
# Default: 1, Possible codes: None
ShowFileSizesStats=0
# Show browsers chart
# Default: 1, Possible codes: None
ShowBrowsersStats=1
# Show Operating systems chart
# Default: 1, Possible codes: None
ShowOSStats=1
# Show Origin chart
# Default: PH, Possible codes: PH
ShowOriginStats=PH
# Show keyphrases chart
# Default: 1, Possible codes: None
ShowKeyphrasesStats=1
# Show keywords chart
# Default: 1, Possible codes: None
ShowKeywordsStats=1
# Show HTTP errors chart
# Default: 1, Possible codes: None
ShowHTTPErrorsStats=1
# You can set this to use your own logo.
# Logo file must be in $DirIcons/other directory
# Default: "awstats_logo1.png"
#
Logo="awstats_logo1.png"
# Colors used on AWStats report page.
# Example: color_name="RRGGBB" # RRGGBB is RedGreenBlue components in Hex
#
color_TableBGTitle="CCCCDD" # Background color for table title (Default = "CCCCDD")
color_TableTitle="000000" # Table title font color (Default = "000000")
color_TableBG="CCCCDD" # Background color for table (Default = "CCCCDD")
color_TableRowTitle="FFFFFF" # Table row title font color (Default = "FFFFFF")
color_TableBGRowTitle="ECECEC" # Background color for row title (Default = "ECECEC")
color_TableBorder="ECECEC" # Table border color (Default = "ECECEC")
color_text="000000" # Color of main body text (Default = "000000")
color_titletext="000000" # Color of text title within colored Title Rows (Default = "000000")
color_weekend="EAEAEA" # Color for week-end days
color_link="0011BB" # Color of HTML links (Default = "0011BB")
color_hover="605040" # Color of HTML on-mouseover links (Default = "605040")
color_v="F3F300" # Background color for number of visites (Default = "F3F300")
color_w="FF9933" # Background color for number of unique visitors (Default = "FF9933")
color_p="4477DD" # Background color for number of pages (Default = "4477DD")
color_h="66F0FF" # Background color for number of hits (Default = "66F0FF")
color_k="339944" # Background color for number of bytes (Default = "339944")
color_s="8888DD" # Background color for number of search (Default = "8888DD")
# Set here the link used to point to Internet WhoIs database for hostnames.
# This parameter is not used if plugin hostinfo is not enabled.
# Default: "http://www.whois.net/search.cgi2?str="
# Example: "http://www.ripe.net/perl/whois?form_type=simple&searchtext="
# Example: "http://ws.arin.net/cgi-bin/whois.pl?queryinput="
#
LinksToWhoIs="http://www.whois.net/search.cgi2?query_type=right&str="
# Set here the link used to point to Internet WhoIs database for ip addresses.
# This parameter is not used if plugin hostinfo is not enabled.
# Default: "http://ws.arin.net/cgi-bin/whois.pl?queryinput="
# Example: "http://ws.arin.net/cgi-bin/whois.pl?queryinput="
#
LinksToIPWhoIs="http://ws.arin.net/cgi-bin/whois.pl?queryinput="
#-----------------------------------------------------------------------------
# PLUGINS
#-----------------------------------------------------------------------------
# Add here all plugins file you want to load.
# Plugin files must be .pm files stored in 'plugins' directory.
# Uncomment LoadPlugin lines to enable a plugin after checking that perl
# modules required by the plugin are installed.
# Plugin: Tooltips
# Perl modules required: None
# Add some tooltips help on HTML report pages.
# Note that enabled this kind of help will increased HTML report pages size,
# so server load and bandwidth.
#
#LoadPlugin="tooltips"
# Plugin: IPv6
# Perl modules required: Net::IP and Net::DNS
# This plugin gives AWStats capability to make reverse DNS lookup on IPv6
# addresses.
# Note: If you are interesting in having country report, you should use the
# geoipfree or geoip plugin instead of enabled reverse DNS lookup.
#
#LoadPlugin="ipv6"
# Plugin: HashFiles
# Perl modules required: Storable
# AWStats DNS cache files are read/saved as native hash files. This increase
# DNS cache files loading speed, above all for very large web sites.
#
#LoadPlugin="hashfiles"
# Plugin: GeoIPfree
# Perl modules required: Geo::IPfree version 0.2+ (from Graciliano M.P.)
# Country chart is built from an Internet IP-Country database.
# This plugin is useless for intranet only log files.
# Note: You must choose between using this plugin (need Perl Geo::IPfree module)
# or the GeoIP plugin (need Perl Geo::IP module from Maxmind).
# This plugin reduces AWStats speed of 10% !
#
#LoadPlugin="geoipfree"
# Plugin: GeoIP
# Perl modules required: Geo::IP or Geo::IP::PurePerl (from Maxmind)
# Country chart is built from an Internet IP-Country database.
# This plugin is useless for intranet only log files.
# Note: You must choose between using this plugin (need Perl Geo::IP module
# from Maxmind) or the GeoIPfree plugin (need Perl Geo::IPfree module).
# This plugin reduces AWStats speed of 10% !
#
#LoadPlugin="geoip"
# Plugin: UserInfo
# Perl modules required: None
# Add a text (Firtname, Lastname, Office Department, ...) in authenticated user
# reports for each login value.
# A text file called userinfo.myconfig.txt, with two fields (first is login,
# second is text to show) separated by a tab char. must be created in plugins
# directory.
#
#LoadPlugin="userinfo"
# Plugin: HostInfo
# Perl modules required: None
# Add a column into host chart with a clickable link to a popup that show WhoIs
# info, on a popup window.
#
{
my $hostinfo = $AWStats{Hostinfo};
if ( defined $hostinfo && $hostinfo eq "yes" ) {
$OUT = "LoadPlugin=\"hostinfo\"\n";
}
}
# Plugin: UrlAliases
# Perl modules required: None
# Add a text (Page title, description...) in URL reports after URL value.
# A text file called urlalias.myconfig.txt, with two fields (first is URL,
# second is text to show) separated by a tab char. must be created in plugins
# directory.
#
#LoadPlugin="urlalias"
# Plugin: TimeHiRes
# Perl modules required: Time::HiRes
# Time reported by -showsteps option is in millisecond. For debug purpose.
#
#LoadPlugin="timehires"
# Plugin: TimeZone
# Perl modules required: Time::Local
# Allow AWStats to correct a bad timezone for user of some IIS that use
# GMT date in its log instead of local server time.
# This module is useless for Apache and most IIS version.
# This plugin reduces AWStats speed of 40% !!!!!!!
#
#LoadPlugin="timezone +2"
# Plugin: Rawlog
# Perl modules required: None
# This plugin adds a form in AWStats main page to allow users to see raw
# content of current log files. A filter is also available.
#
{
my $rawlog = $AWStats{Rawlog};
if ( defined $rawlog && $rawlog eq "yes" ) {
$OUT = "LoadPlugin=\"rawlog\"\n";
}
}
# Plugin: Graph3D
# Perl modules required: None
# Supported charts are built by a nice 3D graphic applet.
#
#LoadPlugin="graph3d" # !!! NOT YET AVAILABLE !!!
#-----------------------------------------------------------------------------
# EXTRA SECTION
#-----------------------------------------------------------------------------
# WARNING: Extra sections are experimental feature not stable yet !!!
# You can define your own charts, you choose here what are rows and columns
# keys. This feature is particularly usefull for marketing purpose, tracking
# products orders for example.
# For this, edit all parameters of Extra section. Each set of parameter is a
# different chart. For several charts, duplicate section changing the number.
# Note that each Extra section reduces AWStats speed by 10%.
#
# WARNING: A wrong setup of Extra section can result in a too large arrays
# that will consume all your memory, making AWStats unusable after several
# updates, so be sure to setup it correctly.
# In most cases, you don't need this feature.
#
# ExtraSectionNameX is title of your personalized chart.
# ExtraSectionConditionalX are conditions on URL and/or QUERY_STRING and/or
# REFERER you can use to count or not the hit. Use "|" for "OR".
# ExtraSectionFirstColumnTitleX is the first column title of the chart.
# ExtraSectionFirstColumnValuesX is a Regex string to tell AWStats how to
# extract the value used for first column. Each different value found will
# be a different row. Be sure that list of different values is "limited" to
# avoid "not enough memory" problems !
# ExtraSectionStatTypesX are things you want to count. You can use standard
# code letters (P for pages,H for hits,B for bandwidth,L for last access).
# MaxNbOfExtraX is maximum number of rows shown in chart.
# MinHitExtraX is minimum number of hits required to be shown in chart.
#
# Example to report the 20 products the most ordered by "order.cgi" script
#ExtraSectionName1="Product orders"
#ExtraSectionCondition1="URL,/cgi-bin/order.cgi"
#ExtraSectionFirstColumnTitle1="Product ID"
#ExtraSectionFirstColumnValues1="QUERY_STRING,productid=([^&]+)"
#ExtraSectionStatTypes1=PL
#MaxNbOfExtra1=20
#MinHitExtra1=1
#-----------------------------------------------------------------------------
# INCLUDES
#-----------------------------------------------------------------------------
# You can include other config files using the directive with the name of the
# config file (like Apache, so you must keep the '#' before 'include').
# This is particularly usefull for users who have a lot of virtual servers, so
# a lot of config files and want to maintain common values in only one file.
# Note that when a variable is defined both in a config file and in an
# included file, AWStats will use the last value read.
#
#include ""

View File

@@ -0,0 +1,56 @@
{
# ftp : proftpd
use warnings;
use esmith::ConfigDB;
my $configDB = esmith::ConfigDB->open or die("can't open Config DB");
my $domain = $configDB->get( 'DomainName' )->value;
my $DNREG = ($domain =~ s|\.|\\.|r);
$OUT =<<HERE
LogFile="/var/log/xferlog"
LogType=F
LogFormat="%time3 %other %host %bytesd %url %other %other %method %other %logname %other %code %other %other"
LogSeparator="\\s"
NotPageList=""
SiteDomain="ftp.$domain"
HostAliases="localhost 127.0.0.1 REGEX[${DNREG}\$]"
LevelForBrowsersDetection=0
LevelForOSDetection=0
LevelForRefererAnalyze=0
LevelForRobotsDetection=0
LevelForWormsDetection=0
LevelForSearchEnginesDetection=0
UseFramesWhenCGI=0
#DirData="/home/e-smith/awstats"
DirData="/home/e-smith/files/users/admin/home/awstats"
DirCgi="/cgi-bin"
DirIcons="../../awstats"
ShowLinksOnUrl=0
ShowMenu=1
ShowSummary=UVHB
ShowMonthStats=UVHB
ShowDaysOfMonthStats=HB
ShowDaysOfWeekStats=HB
ShowHoursStats=HB
ShowDomainsStats=HB
ShowHostsStats=HBL
ShowAuthenticatedUsers=HBL
ShowRobotsStats=0
ShowEMailSenders=0
ShowEMailReceivers=0
ShowSessionsStats=1
ShowPagesStats=PBEX
ShowFileTypesStats=HB
ShowFileSizesStats=0
ShowBrowsersStats=0
ShowOSStats=0
ShowOriginStats=0
ShowKeyphrasesStats=0
ShowKeywordsStats=0
ShowMiscStats=0
ShowHTTPErrorsStats=0
ShowSMTPErrorsStats=0
HERE
}

View File

@@ -0,0 +1,174 @@
{
############################
# Config file for Qmail
############################
use warnings;
use esmith::ConfigDB;
my $configDB = esmith::ConfigDB->open or die("can't open Config DB");
my $domain = $configDB->get( 'DomainName' )->value;
my $DNREG = ($domain =~ s|\.|\\.|r);
$OUT =<<HERE
#LogFile="/home/e-smith/awstats/qmail-preprocessor.sh|"
LogFile="/etc/e-smith/web/panels/manager/cgi-bin/.awstats/qmail-preprocessor.sh|"
LogType=M
LogFormat="%time2 %email %email_r %host %host_r %method %url %code %bytesd"
LogSeparator=" "
SiteDomain="mail.$domain"
HostAliases="localhost 127.0.0.1 REGEX[${DNREG}\$]"
DNSLookup=2
#DirData="/home/e-smith/awstats"
DirData="/home/e-smith/files/users/admin/home/awstats"
DirCgi="/cgi-bin"
DirIcons="../../awstats"
UseFramesWhenCGI=0
AllowToUpdateStatsFromBrowser=0
AllowFullYearView=3
EnableLockForUpdate=0
DNSStaticCacheFile="dnscache.txt"
DNSLastUpdateCacheFile="dnscachelastupdate.txt"
SkipDNSLookupFor=""
AllowAccessFromWebToAuthenticatedUsersOnly=0
AllowAccessFromWebToFollowingAuthenticatedUsers=""
AllowAccessFromWebToFollowingIPAddresses=""
CreateDirDataIfNotExists=0
BuildHistoryFormat=text
BuildReportFormat=html
SaveDatabaseFilesWithPermissionsForEveryone=0
PurgeLogFile=0
ArchiveLogRecords=0
KeepBackupOfHistoricFiles=0
DefaultFile="index.html"
SkipHosts=""
SkipUserAgents=""
SkipFiles=""
SkipReferrersBlackList=""
OnlyHosts=""
OnlyUserAgents=""
OnlyFiles=""
NotPageList="css js class gif jpg jpeg png bmp ico swf"
ValidHTTPCodes="200 304"
ValidSMTPCodes="1 250"
AuthenticatedUsersNotCaseSensitive=0
URLNotCaseSensitive=0
URLWithAnchor=0
URLQuerySeparators="?;"
URLWithQuery=0
URLWithQueryWithOnlyFollowingParameters=""
URLWithQueryWithoutFollowingParameters=""
URLReferrerWithQuery=0
WarningMessages=1
ErrorMessages=""
DebugMessages=0
NbOfLinesForCorruptedLog=50
WrapperScript=""
DecodeUA=0
MiscTrackerUrl="/js/awstats_misc_tracker.js"
LevelForBrowsersDetection=2
LevelForOSDetection=2
LevelForRefererAnalyze=2
LevelForRobotsDetection=2
LevelForSearchEnginesDetection=2
LevelForKeywordsDetection=2
LevelForFileTypesDetection=2
LevelForWormsDetection=0
DetailedReportsOnNewWindows=1
Expires=0
MaxRowsInHTMLOutput=1000
Lang="auto"
DirLang="./lang"
ShowMenu=1
ShowSummary=HBM
ShowMonthStats=HBM
ShowDaysOfMonthStats=HBM
ShowDaysOfWeekStats=HBM
ShowHoursStats=HBM
ShowDomainsStats=0
ShowHostsStats=HBL
ShowAuthenticatedUsers=0
ShowRobotsStats=0
ShowWormsStats=0
ShowEMailSenders=HBML
ShowEMailReceivers=HBML
ShowSessionsStats=0
ShowPagesStats=0
ShowFileTypesStats=0
ShowFileSizesStats=0
ShowOSStats=0
ShowBrowsersStats=0
ShowScreenSizeStats=0
ShowOriginStats=0
ShowKeyphrasesStats=0
ShowKeywordsStats=0
ShowMiscStats=0
ShowHTTPErrorsStats=0
ShowSMTPErrorsStats=1
ShowClusterStats=0
AddDataArrayMonthStats=1
AddDataArrayShowDaysOfMonthStats=1
AddDataArrayShowDaysOfWeekStats=1
AddDataArrayShowHoursStats=1
IncludeInternalLinksInOriginSection=0
MaxNbOfDomain = 10
MinHitDomain = 1
MaxNbOfHostsShown = 10
MinHitHost = 1
MaxNbOfLoginShown = 10
MinHitLogin = 1
MaxNbOfRobotShown = 10
MinHitRobot = 1
MaxNbOfPageShown = 10
MinHitFile = 1
MaxNbOfOsShown = 10
MinHitOs = 1
MaxNbOfBrowsersShown = 10
MinHitBrowser = 1
MaxNbOfScreenSizesShown = 5
MinHitScreenSize = 1
MaxNbOfWindowSizesShown = 5
MinHitWindowSize = 1
MaxNbOfRefererShown = 10
MinHitRefer = 1
MaxNbOfKeyphrasesShown = 10
MinHitKeyphrase = 1
MaxNbOfKeywordsShown = 10
MinHitKeyword = 1
MaxNbOfEMailsShown = 20
MinHitEMail = 1
FirstDayOfWeek=1
ShowFlagLinks=""
ShowLinksOnUrl=1
UseHTTPSLinkForUrl=""
MaxLengthOfShownURL=64
HTMLHeadSection=""
HTMLEndSection=""
Logo="awstats_logo6.png"
LogoLink="awstats.pl?config=mail"
BarWidth = 260
BarHeight = 90
StyleSheet=""
color_Background="FFFFFF"
color_TableBGTitle="CCCCDD"
color_TableTitle="000000"
color_TableBG="CCCCDD"
color_TableRowTitle="FFFFFF"
color_TableBGRowTitle="ECECEC"
color_TableBorder="ECECEC"
color_text="000000"
color_textpercent="606060"
color_titletext="000000"
color_weekend="EAEAEA"
color_link="0011BB"
color_hover="605040"
color_u="FFAA66"
color_v="F4F090"
color_p="4477DD"
color_h="66DDEE"
color_k="2EA495"
color_s="8888DD"
color_e="CEC2E8"
color_x="C1B2E2"
ExtraTrackedRowsLimit=500
HERE
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,14 @@
#!/bin/bash
# Qmail logfile preprocessor
/usr/bin/test $(/bin/ls -l /var/log/qmail/*.s 2>/dev/null | grep -v "^l" | wc -l) -eq 0 && /bin/touch /var/log/qmail/awstats_dummy.s
RR=$(/bin/ls -t /var/log/qmail/*.s|/usr/bin/head -n 1)
RR=$(/bin/basename $RR)
/usr/bin/test ! -f /var/log/qmail/.recent-rotated && SRC="/var/log/qmail/*.s" && echo $RR > /var/log/qmail/.recent-rotated
LR=$(/bin/cat /var/log/qmail/.recent-rotated)
echo "RR: $RR LR: $LR"
/usr/bin/test "$LR" != "$RR" && SRC="/var/log/qmail/$RR" && echo $RR > /var/log/qmail/.recent-rotated
/bin/cat $SRC /var/log/qmail/current | /usr/local/bin/tai64nlocal | /usr/bin/perl /usr/share/awstats/tools/maillogconvert.pl standard | /bin/grep -v ' alias-localdelivery-'
/bin/rm -f /var/log/qmail/awstats_dummy.s

View File

@@ -0,0 +1,2 @@
awstats:install:/etc/e-smith/events/actions/awstats-upgrade
awstats:update:/etc/e-smith/events/actions/awstats-upgrade