Menu Close

Installare e Configurare Awstats in Debian/Ubuntu

 

Reputo AWSTATS uno dei migliori tool di monitoring per tenere sotto controllo le visite e il traffico di rete di uno o più siti web in un server web. Vediamo adesso come installarlo e configurarlo in modo semplice e corretto, con un’occhio di riguardo anche alla sicurezza.

  1. Installazione dai repositories
    apt-get install awstats
  2. In genere un Web Server ospita più di un sito, per cui se si vuole tenere traccia delle statistiche di ogni sito bisogna creare un file di configurazione per ognuno di essi. Personalmente preferisco tenere separati anche i log di ogni sito per avere una consultazione più rapida.
    Per creare un nuovo file di configurazione digitiamo questo comando:

    cp /etc/awstats/awstats.conf /etc/awstats/awstats.tuodominio.it.conf

    (È importante che il file di configurazione abbia come prefisso e suffisso rispettivamente awstats. e .conf)

  3. Aprire il file di configurazione appena creato e apportare le seguenti modifiche:
    #Percorso dell' access log del vostro sito
    LogFile="/var/log/apache2/tuodominio.it/access.log"
     
    #Raccomando di settare a 1 per avere maggiori dettagli
    LogFormat=1  
     
    SiteDomain="tuodominio.it"
     
    HostAliases="localhost 127.0.0.1 www.tuodominio.it"
  4. Adesso possiamo già generare le prime statistiche per il sito in questione con il seguente comando:
    /usr/lib/cgi-bin/awstats.pl -config=tuodominio.it -update

    Se non ci sono errori awstats dovrebbe eseguire il parse di access.log e creare i primi risultati. In caso di errori controllare il file di configurazione.

  5. Adesso dobbiamo configurare Apache per mostrare le statistiche di awstats quando accediamo via browser. Per fare ciò dobbiamo andare a modificare il file di configurazione del sito in questione. Supponiamo di aver creato un virtual host di nome tuodominio.it.conf in /etc/apache2/sites-available/. Abbiamo bisogno di modifcare questo file e aggiungere il seguente blocco di codice tra i tagVirtualHost:
    Alias /awstatsclasses "/usr/share/awstats/lib/"
    Alias /awstats-icon/ "/usr/share/awstats/icon/"
    Alias /awstatscss "/usr/share/doc/awstats/examples/css"
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    ScriptAlias /awstats/ /usr/lib/cgi-bin/
    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
  6. Riavviamo Apache per caricare la nuova configurazione:
    /etc/init.d/apache2 reload

    Se non ottieniamo errori allora tutto è andato liscio, in caso contrario ricontrollare il file di configurazione e assicurarsi di averlo settato in modo corretto.

  7. Visualizziamo finalmente le statistiche accedendo da browser all’indirizzo:
    http://tuodominio.it/awstats/awstats.pl

    A questo punto dvremmo vedere i grafici e tutti i dettagli prelevati da awstats relativi al nostro sito configurato.

    Se lo script viene visualizzato in plain text invece che eseguito, verificare che il modulo cgi sia abilitato:

    sudo a2enmod cgi 
    sudo service apache2 restart
  8. Awstats non aggiorna automaticamente le statistiche, per questo motivo dobbiamo automatizzare la procedura effettuata nel punto 4 di questa guida. Aggiungiamo il seguente codice al crontab dell’utente root.
    crontab -e

    e aggiungiamo:

    0 */3 * * * root /usr/lib/cgi-bin/awstats.pl -config=tuodominio.it -update >/dev/null

    È possibile personalizzare l’ora e quante volte deve essere eseguito il processo. Il comando appena inserito processerà i file di log ogni 3 ore. Ricordo che è necessario aggiungere un cron per ogni sito configurato.

  9. Come si è visto dal punto 7 chiunque può visualizzare le statistiche del sito puntando a quell’indirizzo, vediamo quindi come rendere l’accesso protetto da password in modo da consentire solo all’amministratore di visualizzarle. Per fare ciò è necessario creare un file .htaccess nella directory /usr/lib/cgi-bin/, nel seguente modo:
    vim /usr/lib/cgi-bin/.htaccess

    e incollate quanto segue:

    AuthName "AWStats Authentication"
    AuthType Basic
    AuthUserFile /percorso/di/.htpasswd
    Require valid-user

    Adesso dobbiamo creare un file .htpasswd nella directory che abbiamo indicato in .htaccess (/percorso/di/) ad esempio nella nostra home:

    htpasswd -cm /home/crypt3m4/.htpasswd crypt3m4

    il sistema vi chiederà di digitare la vostra password e la cripterà in md5 all’interno del file. Il flag -c sta ad indicare che si vuole creare il file, se invece volete aggiungere un altro utente a quel file omettete il flag -c al comando precedente. In alternativa possiamo utilizzare uno dei servizi disponibili online per creare il file .htpasswd, ad esempio Htpassword Generator.
    Adesso quando navigherete per visualizzare le vostre statistiche vi verrà chiesto username e password per accedere.

D’ora in poi potremo monitorare il nostro sito web in modo semplice e veloce utilizzando Awstats!

 

Se volete monitorare anche il vosto mailserver (postfix), proseguite come segue:

  1. Create un nuovo file di configurazione vuoto:
    nano /etc/awstats/awstats.postfix.conf
  2. Inserite quanto segue:
    Include "/etc/awstats/awstats.conf"
    LogFile="/usr/share/awstats/tools/maillogconvert.pl standard < /var/log/mail.log |"
    LogType=M
    LogFormat="%time2 %email %email_r %host %host_r %method %url %code %bytesd"
    SiteDomain="server.your-domain.tld"
    
    LevelForBrowsersDetection=0
    LevelForOSDetection=0
    LevelForRefererAnalyze=0
    LevelForRobotsDetection=0
    LevelForSearchEnginesDetection=0
    LevelForKeywordsDetection=0
    LevelForFileTypesDetection=0
    LevelForWormsDetection=0
    
    ShowMonthStats=UHB
    ShowDaysOfMonthStats=HB
    ShowDaysOfWeekStats=HB
    ShowHoursStats=HB
    ShowDomainsStats=0
    ShowHostsStats=HBL
    ShowRobotsStats=0
    ShowEMailSenders=HBML
    ShowEMailReceivers=HBML
    ShowSessionsStats=0
    ShowPagesStats=0
    ShowFileTypesStats=0
    ShowOSStats=0
    ShowBrowsersStats=0
    ShowOriginStats=0
    ShowKeyphrasesStats=0
    ShowKeywordsStats=0
    ShowMiscStats=0
    ShowHTTPErrorsStats=0
    ShowSMTPErrorsStats=1
  3. Cerchiamo mailconvert.pl (updatedb && locate maillogconvert.pl) e lo inseriamo al posto giusto:
    cp /usr/share/doc/awstats/examples/maillogconvert.pl /usr/share/awstats/tools/maillogconvert.pl
  4. A questo punto possiamo aggiornare le statistiche e vedremo tutte le statistiche del mailserver:
    /usr/share/awstats/tools/update.sh >/dev/null

    Questo comando al contrario di quello scritto piu sopra, aggiorna in automatico tutte le statistiche di tutti i domini presenti verificando quali sono i file .conf di awstats.

 

awstats-mail

 

Se volete effettuare modifiche a tutti i vosti domini in modo trasversale, potete operare sul file di configurazione:

/etc/awstats/awstats.conf.local

Che sovrascrive tutte le configurazioni di ogni singolo file .conf.
Nel mio caso ho effettuato queste modifiche per migliorare l’esperienza d’uso e renderla piu completa:

# You can overrides config directives here.
# This is particularly useful for users with several configs for
# different virtual servers, who want to reuse common parameters.
# Also, this file is not updated with each new upstream release.
DNSLookup=0
IncludeInternalLinksInOriginSection=1
AllowFullYearView=3
AllowToUpdateStatsFromBrowser=1
LoadPlugin="follow_me_by_internetofficer" 
HTMLHeadSection="<script language=javascript src="/js/day-by-day-head.js"></script>" 
HTMLEndSection="<script language=javascript src="/js/day-by-day-end.js"></script>" 
LoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat" 
LoadPlugin="hostinfo" 
LoadPlugin="graphgooglechartapi"

Ho disattivato quindi DNSLookup (perchè troppo lento) e attivato al suo posto GeoIP (dovete installare i pacchetti corrispondenti), aggiunto la possibilità di aggiornare i report direttamente dalla pagina (AllowToUpdateStatsFromBrowser) e attivato un paio di plugin interni (segnalo in particolar modo graphgooglechartapi, che permette di visualizzare i grafici in modo mooolto piu bello e funzionale rispetto a quelli standard).

Ho aggiunto inoltre questi due plugin esterni:

http://www.internetofficer.com/awstats/plugin-follow-me/ Permette di visualizzare ogni pagina navigata da ogni indirizzo IP

http://www.internetofficer.com/awstats/day-by-day/ Permette di visualizzare le statistiche giorno per giorno

Posted in Linux, News

Leave a Reply

Your e-mail address will not be published. Required fields are marked *