AWStats

15 febbraio 2025 by Roberto Puzzanghera 0 commenti

Un grande grazie a Bai Borko per aver fornito le istruzioni su cui si basa quanto segue e per lo script perl.

AWStats è uno strumento libero e potente che genera statistiche per vari servizi per il web. Questo analizzatore di log funziona via CGI o dalla linea di comando e mostra tutte le informazioni possibili contenute nei log per mezzo di grafici in delle pagine web.

Prima di tutto definiamo alcune variabili di modo che possiamo soddisfare le impostazioni di varie piattaforme e le personalizzazioni di ciascuno.

# versione AWStats
AWSTATS_VERSION=7.9
# dove vogliamo estrarre il pacchetto AWStats
AWSTATS_PREFIX=/var/www/htdocs
# cartella di configurazione
AWSTATS_CONF_DIR=/etc/awstats
# cartella contenente i dati
DATA_DIR=/var/www/htdocs/stats
# dominio da usare nel titolo del sito
DOMAIN=mx.domain.tld
# Alias del dominio (per le expressioni regolari, non cancellare gli slash)
HOST_ALIAS=domain\\.tld
# utente apache: apache o www-data o l'utente con il quale il web server viene lanciato
APACHE_USR=apache
# gruppo apache
APACHE_GRP=$APACHE_USR
# file contenente la password di apache
APACHE_PWD_FILE=/etc/httpd/httpdpwd/awstats.passwd

Scaricare ed estrarre:

cd /usr/local/src
wget https://prdownloads.sourceforge.net/awstats/awstats-${AWSTATS_VERSION}.tar.gz
tar -zxf awstats-${AWSTATS_VERSION}.tar.gz -C $AWSTATS_PREFIX
ln -s ${AWSTATS_PREFIX}/awstats-${AWSTATS_VERSION} ${AWSTATS_PREFIX}/awstats

Creare il file di configurazione (controllare il dominio, che comunque sarà impostato dinamicamente):

mkdir $AWSTATS_CONF_DIR

cat > ${AWSTATS_CONF_DIR}/awstats.mail.conf << __EOF__
LogFile="sudo ${AWSTATS_CONF_DIR}/qstatsaw.pl|"
LogType=M
LogFormat="%time2 %email %email_r %host %url %protocol %code %bytesd"
SiteDomain="${DOMAIN}"
HostAliases="localhost 127.0.0.1 REGEX[${HOST_ALIAS}]"
DirData="${DATA_DIR}"
DirCgi="/awstats"
DefaultFile="index.html"
LogoLink="/awstats.pl?config=mail"
Logo="awstats_logo6.png"
DirIcons="/awstatsicons"
DNSLookup=0
#AllowAccessFromWebToFollowingIPAddresses="192.168.0.2-192.168.0.240"
AllowToUpdateStatsFromBrowser=1
LevelForBrowsersDetection=0 # 0 disables Browsers detection.
LevelForOSDetection=0 # 0 disables OS detection.
LevelForRefererAnalyze=0 # 0 disables Origin detection.
LevelForRobotsDetection=0 # 0 disables Robots detection.
LevelForSearchEnginesDetection=0 # 0 disables Search engines detection.
LevelForKeywordsDetection=0 # 0 disables Keyphrases/Keywords detection.
LevelForFileTypesDetection=0 # 0 disables File types detection.
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
SkipHosts=""
SkipUserAgents=""
SkipFiles=""
SkipReferrersBlackList=""
OnlyHosts=""
OnlyUserAgents=""
OnlyFiles=""
__EOF__

Scaricare lo script che andrà a processare i log:

wget -O ${AWSTATS_CONF_DIR}/qstatsaw.pl https://notes.sagredo.eu/files/qmail/qstatsaw.pl

Aggiungere i permessi di esecuzione

chmod 755 ${AWSTATS_CONF_DIR}/qstatsaw.pl

Aggiungere questa riga al file sudoers

> visudo
apache ALL=(ALL:ALL) NOPASSWD: /etc/awstats/qstatsaw.pl

Impostare un cron job per l'aggiornamento della statistiche di AWStats

cat > /etc/cron.d/awstats << __EOF__
# Update AWStats
*/10 * * * * ${AWSTATS_PREFIX}/awstats/wwwroot/cgi-bin/awstats.pl -update -config=mail -output> ${DATA_DIR}/index.html > /dev/null 2>&1
__EOF__

Creare la cartella che conterrà i dati e assegnare i privilegi di scittura ad apache

mkdir $DATA_DIR
# if set AllowToUpdateStatsFromBrowser=1, stats directory must be writable for apache user 
chown -R ${APACHE_USR}:${APACHE_GRP} $DATA_DIR

Creare il file con le credenziali di accesso e assegnare i privilegi di lettura all'utente con cui gira il web server (si può usare qui lo stesso file già usato per vQadmin):

htpasswd -bc ${APACHE_PWD_FILE} admin [password]
chown ${APACHE_USR}:${APACHE_GRP} ${APACHE_PWD_FILE}
chmod o-r ${APACHE_PWD_FILE}

Lanciare manualmente lo script AWStats:

${AWSTATS_PREFIX}/awstats/wwwroot/cgi-bin/awstats.pl -update -config=mail -output> ${DATA_DIR}/index.html

Configurare apache. Questo è il mio virtual host dedicato.

Define HTDOCS   /var/www/htdocs
Define LOGDIR   /var/www/error
Define AUTH_DIR /etc/httpd/httpdpwd
Define AWSTATS  ${HTDOCS}/awstats
Define DATA_DIR ${HTDOCS}/stats

<VirtualHost *:80> 
  ServerName qstats.domain.tld 
  DocumentRoot ${AWSTATS}/wwwroot 

  ScriptAlias /cgi-bin/ ${AWSTATS}/cgi-bin/ 
  AddHandler cgi-script .pl 

  Alias /awstatsclasses ${AWSTATS}/wwwroot/classes/
  Alias /awstatscss     ${AWSTATS}/wwwroot/css/
  Alias /awstatsicons   ${AWSTATS}/wwwroot/icon/
  ScriptAlias /         ${AWSTATS}/wwwroot/cgi-bin/

  ErrorLog  ${LOGDIR}/awstats_error.log 
  CustomLog ${LOGDIR}/awstats_access.log common 

  <DirectoryMatch ${AWSTATS}|${DATA_DIR}> 
    AllowOverride AuthConfig 
    AuthType Basic 
    AuthUserFile ${AUTH_DIR}/awstats.passwd 
    AuthName "Qstats" 
    Require ip 10.0.0.0/24 
    Require valid-user 
  </DirectoryMatch> 
</VirtualHost>

Ora navigare su http://qstats.domain.tld/awstats.pl?config=mail e il gioco è fatto.

Aggiungi un commento

Ultimi commenti
Articoli recenti

RSS feeds