Translate

jueves, noviembre 06, 2014

-AWSTAS: Gráficas con estadísticas de accesos al servidor Apache (Serie Apache I):

En debian 5.0 "lenny":

Lo primero instalamos awstats con apt-get:

#apt-get install awstats

Una vez instalado tenemos que editar el fichero /etc/awstats/awstats.conf y cambiar los siguientes parámetros:
LogFile debe ser igual a la ubicación de nuestro fichero access.log, por ejemplo:
LogFile=”/var/log/apache2/access.log”
Cambiamos tambien SiteDomain, aquí tenemos que poner nuestro nombre de dominio, por ejemplo:
SiteDomain=”MiSrvApache”

Con estos párametros de momento es suficiente, podemos cambiar más para personalizar como se muestran las estadísticas.
Una vez hecho esto tenemos que actualizar la base de datos de estadísticas para este dominio, para ello lanzamos:
perl /usr/lib/cgi-bin/awstats.pl -config=MiSrvApache-update


La primera vez tenemos que hacerlo de forma manual (tarda un poco) después podemos programarlo en crontab.
Ejecutarlo a las 12 de la noche cada día

0 0 * * * /usr/bin/perl /usr/lib/cgi-bin/awstats.pl -config=MiSrvApache -update

Se pueden generar los informes de forma dinámica accediendo al script cgi en el servidor web:
http://MiSrvApache/cgi-bin/awstats.pl?config=MiSrvApache

Os pongo en modo "desglosado" una instalación en debian 5.0 "lenny:"
Bien, pues dicho y hecho. Se supone que ya estamos conectados al servidor mediante ssh. Nos vamos al directorio opt con
cd /opt
y desde allí descargamos el paquete con
wget http://surfnet.dl.sourceforge.net/sourceforge/awstats/awstats-6.7.tar.gz
(la dirección indicada es un mirror con la versión 6.7. Lo mejor es ir a la página http://awstats.sourceforge.net y escoger desde allí la versión más reciente y el mejor mirror según nuestra localización.)
Seguidamente lo descomprimimos:
tar zxf awstats-6.7.tar.gz
Tendremos un directorio llamado awstats-6.7 que renombraremos a awstats a secas:
mv awstats-6.7 awstats
Ahora tenemos que conseguir que Apache permita ejecutar archivos perl en el directorio donde se encuentra el programa principal de Awstats. Para esto tenemos que modificar la configuración de Apache. Aviso de que en mi caso he creado un sitio virtual al que solo se puede acceder mediante SSL, y es ahí y solo ahí donde voy a permitir la ejecución de Awstats. Además protegeré el programa mediante usuario y contraseña.
Evidentemente se puede hacer de forma que Awstats sea accesible desde otros sitios o todos los sitios con o sin SSL. En ese caso habría que añadir el código que pongo más abajo en /etc/apache2/apache2.conf Yo he preferido hacerlo disponible en un solo sitio, autenticado y mediante SSL porque lo considero más seguro.
En /etc/apache2/sites-available/default-ssl añadir al final (repito que default-ssl es un sitio que he creado yo, si no lo tienes, tendrás que crearlo:
ScriptAlias /awstats/ /opt/awstats/wwwroot/cgi-bin/
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
Con ésto permitimos la ejecución del programa en el servidor Apache. Pero necesitamos crear unos “alias” para algunos directorios de Awstats, de lo contrario, entre otras cosas, no cargarían las imágenes. También en /etc/apache2/sites-available/default-ssl tras el código anterior, pegamos éste:
Alias /classes “/opt/awstats/wwwroot/classes/”
Alias /css “/opt/awstats/wwwroot/css/”
Alias /icon “/opt/awstats/wwwroot/icon/”
Alias /js “/opt/awstats/wwwroot/js/”
Options None
AllowOverride None
Order allow,deny
Allow from all
Y, finalmente, es ese mismo archivo, si queremos proteger Awstats con usuario y contraseña, pegamos tras lo anterior:
AuthUserFile /opt/awstats/.htpasswd
#AuthGroupFile /path/to/.group
AuthName “AWStats”
AuthType Basic
require valid-user
Lo guardamos y refrescamos la configuración de Apache:
/etc/init.d/apache2 reload
Bien, ahora necesitamos crear un directorio donde Awstats guarde las estadísticas:
mkdir /opt/awstats/data
Y, por supuesto, crearemos un usuario para poder acceder mediante Web a Awstats:
htpasswd -bcm /opt/awstats/.htpasswd “usuario” “contraseña”
Por ahora todo perfecto. Seguidamente tenemos que crear un archivo de configuración para cada sitio Web del que deseemos conseguir estadísticas. Creamos un directorio donde se guardarán estas configuraciones:
mkdir /etc/awstats
Y copiamos allí el archivo de muestra de configuración que viene con Awstats:
cp -p /opt/awstats/wwwroot/cgi-bin/awstats.model.conf /etc/awstats/
Este archivo hay que editarlo y configurarlo correctamente. En la directiva LogFile pondremos
LogFile=”/var/log/apache2/access.log”
En SiteDomain pondremos el dominio principal de nuestro sitio
SiteDomain=”www.pacosanchez.com”
En HostAliase volvemos a poner nuestro dominio, por ejemplo, con y sin “www” y cualquier otro subdominio que utilicemos con ese dominio.
HostAliases=”www.pacosanchez.com pacosanchez.com REGEX[^.*\.pacosanchez\.com$]“
En DirData indicamos el directorio de datos que hemos creado anteriormente:
DirData=”/opt/awstats/data”
El resto de las opciones se pueden dejar por defecto o las podemos personalizar leyendo en la documentación para qué sirve cada una. Por cada Web de la que deseemos obtener estadísticas por separado, tenemos que crear un archivo de configuración.
Ya solo nos falta ejecutar el script para actualizar las estadísticas:
perl /opt/awstats/wwwroot/cgi-bin/awstats.pl -config=pacosanchez.com -update



Para que la ejecución de scripts perl sea más segura, vamos a crear un usuario llamado awstats cuyo directorio sea /opt/awststs:
[root@servidor ~]# useradd -d /opt/awstats awstats
Ahora entramos como usuario awstats:
[root@servidor ~]# su – awstats
Editamos el crontab del usuario awstats con nano:
[awstats@servidor ~]# EDITOR=nano crontab -e
Y añadimos lo siguiente en una sola línea para que awstats actualice las estadísticas cada hora en punto:
0 * * * * /opt/awstats/tools/awstats_updateall.pl now -confdir=”/etc” -awstatsprog=”/opt/awstats/wwwroot/cgi-bin/awstats.pl” >/dev/null
A partir de ahora podremos consultar las completas estadísitcas que nos ofrece este programa desde la dirección https://www.dominio.com/awstats/awstats.pl?config=pacosanchez.com
Lo que sigue tras “awstats.pl?config=” será el nombre del dominio del cual queremos consultar las estadísticas, y tiene que coincidir exactamente con el nombre que le hemos dado a su archivo de configuración en /etc/awstats quitándole awstats y conf. Por ejemplo, para el dominio debian.org el archivo de configuración se llamaría awstats.debian.org.conf y lo llamaríamos desde “…awstats.pl?config=debian.org
Mas adelante haremos algunos cambios que ampliarán la información mostrada por Awstats, pero eso será en otra ocasión.






Publicar un comentario