Instalación AWSTATS

De Wikillano

Configuración de Awstats

Desempaquetar awstats en /usr/local

tar -zxvf awstats-6.6.tar.gz

Cambiamos el nombre de la carpeta que nos acaba de crear por awstats

mv /usr/local/awstats-6.6.tar.gz awstats

Ahora debemos añadir lo siguiente al dominio default o al fichero de conf de apache1/2 lo siguiente:

Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"

<Directory "/usr/local/awstats/wwwroot">
               Options None
               AllowOverride
               Order allow,deny
               Allow from all
               AuthType basic
               AuthName "Acceso restringido a Estadisticas"
               AuthUserFile /usr/local/awstats/wwwroot/cgi-bin/.passwd
               AuthGroupFile /usr/local/awstats/wwwroot/cgi-bin/.group
               <Files awstats.pl>
                       require group admin
               </Files>
</Directory>

las lineas:

AuthUserFile /usr/local/awstats/wwwroot/cgi-bin/.passwd
AuthGroupFile /usr/local/awstats/wwwroot/cgi-bin/.group
<Files awstats.pl>
   require group admin
</Files>

son las encargadas de pedir login y password en la pagina de awstats, esto se explicará más abajo.

Este es el aspecto de mi virtualhost principal:

NameVirtualHost *:443
<VirtualHost *:443>
       ServerAdmin webmaster@localhost
       DocumentRoot /var/www
       servername awstats.ballano.es

       ErrorLog /var/log/apache2/000-default-error.log
       CustomLog /var/log/apache2/000-default-access.log combined

       Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
       Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
       Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
       ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"

       <Directory />
               Options FollowSymLinks
               AllowOverride None
       </Directory>
       <Directory /var/www/>
               #Options Indexes FollowSymLinks MultiViews
               AllowOverride None
               Order allow,deny
               allow from all
               # Uncomment this directive is you want to see apache2's
               # default start page (in /apache2-default) when you go to /
               #RedirectMatch ^/$ /apache2-default/
       </Directory>

       <Directory "/usr/local/awstats/wwwroot">
               Options None
               AllowOverride
               Order allow,deny
               Allow from all
               AuthType basic
               AuthName "Acceso restringido a Estadisticas"
               AuthUserFile /usr/local/awstats/wwwroot/cgi-bin/.passwd
               AuthGroupFile /usr/local/awstats/wwwroot/cgi-bin/.group
               <Files awstats.pl>
                       require group admin
               </Files>
       </Directory>

       <IfModule mod_ssl.c>
               SSLEngine on
               SSLCertificateFile    /etc/apache2/ssl/servidor-cert.pem
               SSLCertificateKeyFile /etc/apache2/ssl/server.key
               SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
       </IfModule>

</VirtualHost>

reiniciamos apache

/etc/init.d/apache2 restart

Supuestamente, ejecutando simplemente el script en perl que se encuentra en tools /usr/local/awstats... y que se llama awstats_configure.pl, el propio script nos iría haciendo preguntas sobre nuestro sistema, y trataría de configurar la aplicación.

En este caso configuraremos manualmente awstats, de esta manera podremos observar su funcionamiento.

Ahora debemos crear el directorio:

mkdir /etc/awstats

Aquí dentro incluiremos los ficheros de configuración que dirán al programa de qué dominio debe analizar los logs y con que características.

Por ejemplo para nuestro dominio pruebas.ballano.es el fichero de conf debería llamarse de la siguiente manera y situarse dentro del anterior directorio.

el propietario de este fichero de conf debe ser www-data.

awstats.pruebas.ballano.es.conf

dentro de este fichero especificaremos las características de este dominio para que awstats haga su trabajo, yo he puesto las opciones que he creido convenientes, pero existen muchas más, siempre podemos echar un vistazo en el fichero /usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf donde aparecen muchas más opciones a incluir.

#ruta completa al archivo de logs de acceso de nuestro dominio
LogFile="/var/log/apache2/pruebas.ballano.es-access.log"
#Tipo de log W=web
LogType="W"

#Formato de log 1 para apache
LogFormat="1"

#El dominio
SiteDomain="pruebas.ballano.es"

#permitir que cualquiera pueda actualizxar las estadisticas desde la web
AllowToUpdateStatsFromBrowser="1"

#Permite ver las estadísticas de todo el año
AllowFullYearView="3"

#Ruta a los iconos y gráficos de awstats
DirIcons="/awstatsicons"

#Plugins que queremos cargar para ampliar las funcionalidades de awstats, antes debemos bajarlos y desempaquetarlos en la carpeta plugins
LoadPlugin="hashfiles"
LoadPlugin="geoipfree"
LoadPlugin="userinfo"
LoadPlugin="hostinfo"

# Directorio donde awstats dejará los datos recogidos, si no ponemos este directorio
# los dejará por defecto en /usr/local/awstats/wwwroot/cgi-bin/
DirData="/data/awstatsdata/"
# Plugin para ver los gráficos más bonitos en java (no es necesario)
LoadPlugin="graphapplet /awstatsclasses"
Si especificamos otro lugar para los datos recogidos por awstats le deberemos dar permisos a www-data a la misma,  si no lo hacemos awstats dara un error a la hora de actualizar.
# Directorio donde awstats dejará los datos recogidos, si no ponemos este directorio
# los dejará por defecto en /usr/local/awstats/wwwroot/cgi-bin/
DirData="/data/awstatsdata/"


Esta configuración es muy básica, y simplemente nos generará los reports de manera dinámica, si queremos que awstats genere paginas estáticas mediante la herramienta awstats_buildstaticpages deberemos añadir más opciones a este fichero de configuración.

mediante awstats_configure.pl podemos configurar completamente el fichero de conf aunque si ponemos las siguientes lineas no deberíamos de tener problemas a la hora de generar los html estaticos.

# Show monthly summary
# Context: Web, Streaming, Mail, Ftp
# Default: UVPHB, Possible column codes: UVPHB
ShowSummary=UVPHB

# Show monthly chart
# Context: Web, Streaming, Mail, Ftp
# Default: UVPHB, Possible column codes: UVPHB
ShowMonthStats=UVPHB

# Show days of month chart
# Context: Web, Streaming, Mail, Ftp
# Default: VPHB, Possible column codes: VPHB
ShowDaysOfMonthStats=VPHB

# Show days of week chart
# Context: Web, Streaming, Mail, Ftp
# Default: PHB, Possible column codes: PHB
ShowDaysOfWeekStats=PHB

# Show hourly chart
# Context: Web, Streaming, Mail, Ftp
# Default: PHB, Possible column codes: PHB
ShowHoursStats=PHB

# Show domains/country chart
# Context: Web, Streaming, Mail, Ftp
# Default: PHB, Possible column codes: PHB
ShowDomainsStats=PHB

# Show hosts chart
# Context: Web, Streaming, Mail, Ftp
# Default: PHBL, Possible column codes: PHBL
ShowHostsStats=PHBL 

# Show authenticated users chart
# Context: Web, Streaming, Ftp
# Default: 0, Possible column codes: PHBL
ShowAuthenticatedUsers=0

# Show robots chart
# Context: Web, Streaming
# Default: HBL, Possible column codes: HBL
ShowRobotsStats=HBL

# Show worms chart
# Context: Web, Streaming
# Default: 0 (If set to other than 0, see also LevelForWormsDetection), Possible column codes: HBL
ShowWormsStats=0

# Show email senders chart (For use when analyzing mail log files)
# Context: Mail
# Default: 0, Possible column codes: HBML
ShowEMailSenders=0

# Show email receivers chart (For use when analyzing mail log files)
# Context: Mail
# Default: 0, Possible column codes: HBML
ShowEMailReceivers=0

# Show session chart
# Context: Web, Streaming, Ftp
# Default: 1, Possible column codes: None
ShowSessionsStats=1

# Show pages-url chart.
# Context: Web, Streaming, Ftp
# Default: PBEX, Possible column codes: PBEX
ShowPagesStats=PBEX

# Show file types chart.
# Context: Web, Streaming, Ftp
# Default: HB, Possible column codes: HBC
ShowFileTypesStats=HB

# Show file size chart (Not yet available)
# Context: Web, Streaming, Mail, Ftp
# Default: 1, Possible column codes: None
ShowFileSizesStats=0         

# Show operating systems chart
# Context: Web, Streaming, Ftp
# Default: 1, Possible column codes: None
ShowOSStats=1

# Show browsers chart
# Context: Web, Streaming
# Default: 1, Possible column codes: None
ShowBrowsersStats=1

# Show screen size chart
# Context: Web, Streaming
# Default: 0 (If set to 1, see also MiscTrackerUrl), Possible column codes: None
ShowScreenSizeStats=0

# Show origin chart
# Context: Web, Streaming
# Default: PH, Possible column codes: PH
ShowOriginStats=PH
# Show keyphrases chart
# Context: Web, Streaming
# Default: 1, Possible column codes: None
ShowKeyphrasesStats=1
# Show keywords chart
# Context: Web, Streaming
# Default: 1, Possible column codes: None
ShowKeywordsStats=1

# Show misc chart
# Context: Web, Streaming
# Default: a (See also MiscTrackerUrl parameter), Possible column codes: anjdfrqwp
ShowMiscStats=a

# Show http errors chart
# Context: Web, Streaming
# Default: 1, Possible column codes: None
ShowHTTPErrorsStats=1

# Show smtp errors chart (For use when analyzing mail log files)
# Context: Mail
# Default: 0, Possible column codes: None
ShowSMTPErrorsStats=0

# Show the cluster report (Your LogFormat must contains the %cluster tag)
# Context: Web, Streaming, Ftp
# Default: 0, Possible column codes: PHB
ShowClusterStats=0

algunas de las opciones anteriores son para analizar los logs de correo (opción que también contempla awstats) en este caso awstats las ignorará.

Para probar nuestra configuración debemos llamar al script de la siguiente manera:

root@awstats:/etc/awstats# perl  /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=pruebas.ballano.es -update

Si todo ha ido bien, esto es lo que más o menos debería salir:

Create/Update database for config "/etc/awstats/awstats.pruebas.ballano.es.conf" by AWStats version 6.6 (build 1.887)
From data in log file "//var/log/apache2/pruebas.ballano.es-access.log"...
Warning: HostAliases parameter is not defined, awstats choose "pruebas.ballano.es localhost 127.0.0.1".
Phase 1 : First bypass old records, searching new record...
Direct access after last parsed record (after line 7)
Jumped lines in file: 7
 Found 7 already parsed records.
Parsed lines in file: 0
 Found 0 dropped records,
 Found 0 corrupted records,
 Found 0 old records,
 Found 0 new qualified records.

Si queremos ver las estadísticas que nos ha generado awstats, debemos hacerlo de la siguiente manera en nuestro navegador, teniendo en cuenta que en este caso he configurado el servidor web por httpS.

https://awstats.ballano.es/awstats/awstats.pl?config=pruebas.ballano.es

  • awstats.ballano.es es nuestro dominio default
  • pruebas.ballano.es es el dominio del cual estamos generando estadísticas.

para la actualización automática de nuestras estadísticas, debemos añadir la siguiente linea al crontab, crontab -e

30 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=pruebas.ballano.es  -update

De esta manera las estadísticas se actualizarán cada media hora.

Para los demás dominios debemos hacer el mismo proceso,

  • crear un fichero de conf
  • Añadir las características necesarias y opcionales que se quiera
  • Actualizar las estadisticas
  • Crear un crontab para el dominio


Si no disponemos de dominio para alguna web, quiero decir si disponemos de alguna web que cuelgue del dominio principal, deberemos realizar las estadísticas del dominio principal debido a que los logs de estas webs van a parar al log principal de apache.

En mi caso tengo la web macanudo que cuelga del dominio principal awstats.ballano.es

para acceder a ella:

https://awstats.ballano.es/macanudo

La única manera de poder ver los accesos a esta web es realizar las estadísticas del dominio principal y visualizarlas como anteriormente pero cambiando el dominio.

https://awstats.ballano.es/awstats/awstats.pl?config=awstats.ballano.es

Herramientas personales