Poniendo en marcha awstats …

Imagen miniatura para web_server.png… desde la seguridad de encontrarme dentro de mi red.

Comenté en esta entrada cómo había llegado a este planteamiento así que no voy a repetirlo aquí.

En Debian el programa awstats viene prácticamente preparado para funcionar, aunque como es lógico la configuración predeterminada no contempla varios servidores virtuales ni otras extravagancias propias de una instalación madura.

Sea cual sea la configuración awstats tiene dos modos de funcionamiento: construir páginas estáticas con los informes o generarlos al vuelo mediante un script CGI. He elegido lo segundo por pura comodidad y porque los resultados me parecen más accesibles. A fin de cuentas, y mientras no me digan nada, no considero los datos de acceso a nuestras páginas como archivables: más bien son de consumo inmediato.

Preparación del entorno

Los registros de acceso al servidor web se guardan actualmente en una carpeta con nombre completo del servidor virtual bajo /srv/backups/weblogs/. Awstats emplea un directorio de trabajo donde construir los datos y como quiero que también esté separado me toca crear una serie de directorios bajo /var/lib/awstats de la misma forma. Estos directorios tendrán como propietario a www-data y sus permisos estarán restringidos a 0750.

Todo está automatizado en el correspondiente paquete Debian que empleo con el servidor, por lo que  no me olvido de ellos en caso de que necesite restaurar el sistema y no disponga de todos los archivos.

Configuración

El directorio /etc/awstats incluye un archivo de configuración global llamado awstasts.conf y otro local de nombre awstats.conf.local. El primero forma parte del paquete y posiblemente será sustituído con cada nueva versión. El segundo es donde teóricamente se deben hacer los ajustes que queremos que permanezcan entre cambios en el software.

Aunque en la documentación indican que si se tienen servidores virtuales conviene crear una configuración personalizada por cada uno, en realidad es necesario definir también algunos parámetros globales. Esto me chirría un poco porque te ves obligado a indicar un servidor virtual principal en la configuración global, lo contrario de lo que pretendía, así que no he tenido más remedio que indicar lo siguiente en el archivo local:

#       Valores globales para todos 
DNSLookup=1
AllowToUpdateStatsFromBrowser=0
AllowFullYearView=3
LogFormat=1

#       Servidor principal
SiteDomain="empresa.com"
HostAliases="empresa.es www.empresa.es www.empresa.com"
DirData="/var/lib/awstats/www.empresa.com"
LogFile="/srv/backups/weblogs/www.empresa.com/access.log"

para luego afinar por cada uno de los otros servidores. Por ejemplo para el blog he creado un archivo con el siguiente nombre /etc/awstats/awstats.blog.empresa.com.conf y dentro de él:

#
#       Estadísticas para el blog
#

SiteDomain="blog.empresa.com"
HostAliases="blog.empresa.es"
DirData="/var/lib/awstats/blog.empresa.com"
LogFile="/srv/backups/weblogs/blog.empresa.com/access.log"

Acceso vía web

Aunque existe un script para crear la configuración automáticamente (awstats_configure.pl) en este caso prefiero emplear el método manual debido a las rutas personalizadas que voy a tener que indicar.

Para el servidor virtual creo el siguiente archivo de configuración que sitúo en /etc/apache2/sites-conf/admin.empresa.net/awstats.conf:

#
#       Configuración para estadísticas web
#

#       Alias a lugares 
Alias /awstatsclasses   /usr/share/awstats/classes/
Alias /awstatscss       /usr/share/awstats/css/
Alias /awstatsicons     /usr/share/awstats/icon/

#       Situación del script 
ScriptAlias /awstats/   /usr/lib/cgi-bin/


<Directory "/usr/share/awstats">
        Options         None
        AllowOverride   None
        Order           allow,deny
        Allow           from all
</Directory>

Puesta en marcha

Pues no hay mucho que hacer al respecto. Como he mencionado antes, el paquete Debian de awstats define trabajos que se ejecutan regularmente y construyen la información que precisa el visor de estadísticas. Sí, se puede invocar a mano para efectuar verificaciones, pero una vez creados los archivos de configuración es cuestión de esperar a que terminen de actualizar y llamar al visor.

Existen, eso sí, dos aspectos importantes con los que he tenido que lidiar: el formato de los registros y un método para visuarlizar los diferentes servidores.

Formato de registros

Hay poco que decir al respecto si se emplean las configuraciones habituales. Lo aconsejado es que Apache genere registros de tipo combined (también llamado NCSA) ya que se incluye información como el navegador empleado y el URL de referencia. Se pueden comprobar los parámetros en la configuración del módulo correspondiente.

Acceso unificado a los registros

Dado que tengo varios servidores web virtuales y que awstats está enfocado a un único dominio por vez (aunque disponga de alias para él mismo) lo más cómodo para mis homínidos será disponer de un punto concreto de acceso a todos ellos.

En el paquete Debian que empleo para configurar el tinglado en el servidor he creado un archivo llamado awstats.html y lo sitúo -en la fase de post-configuración del paquete- bajo la raíz del servidor /var/virtual/admin.empresa.net de tal manera que las estadísticas están accesibles en https://admin.empresa.net/awstats.html.

Este archivo HTML parte de uno con formato markdown y es construído durante el empaquetado Debian para no tener que andar trasteando en el servidor de producción con formatos no habituales en él.

![Logotipo de Empresa](http://static.empresa.net/images/empresa-net-med.png)

# Estadísticas de los servidores web

* Catálogo web:
** [empresa.es](https://admin.empresa.net/awstats/awstats.pl?config=www.empresa.com)
** [beta.empresa.es](https://admin.empresa.net/awstats/awstats.pl?config=beta.empresa.com)
** [old.empresa.es](https://admin.empresa.net/awstats/awstats.pl?config=old.empresa.com)
* Blog
** [blog.empresa.es](https://admin.empresa.net/awstats/awstats.pl?config=blog.empresa.com)
* Servidores auxiliares y administrativos
** [admin.empresa.es](https://admin.empresa.net/awstats/awstats.pl?config=admin.empresa.com)
** [static.empresa.es](https://admin.empresa.net/awstats/awstats.pl?config=static.empresa.com)