Estadisticas WEB

AWSTATS-LINUX

Instalación de las AWStats en Linux con Apache

¿Qué es AWStats? Bajar AWstats
Instalación AWStats y VirtualHosts en Apache 1.3
Historial

¿Qué es AWStats?

AWStats es un programa que genera estadísticas gráficas para servidores web. Lo que hace es mostrar el contenido del archivo de log del servidor web de forma gráfica. AWStats se puede usar por medio de CGI o bien desde la propia línea de comandos. Entre las cosas que muestra están el número de visitas, navegadores usados, sistemas operativos ... Para poder usarlo es necesario tener acceso de lectura al fichero de log del servidor y poder ejecutar scripts hechos en Perl desde la línea de comandos o bien como CGI.

Bajar AWStats

El programa se puede bajar de la dirección http://awstats.sourceforge.net

Instalación

Para realizar la instalación hay que ponerse como root. Una vez bajado AWStats hay que copiar el archivo bajado a /usr/local y descomprimirlo:

cp awstats-6.4.tgz /usr/local
cd /usr/local
tar xzvf awstats-6.4.tgz
Ahora hay que renombrar la carpeta awstats-6.4 a awstats:

mv awstats-6.4 awstats
Una vez hecho esto hay que entrar en la carpeta y acceder al directorio tools. Dentro de la carpeta hay que ejecutar el archivo "awstats_configure.pl". Al ejecutarlo realiza una serie de preguntas para instalar y configurar AWStats. Las preguntas que realiza son:

Indicar donde se encuentra el archivo de configuracion del Apache. En mi caso se encuentr en /etc/apache/httpd.conf

Pregunta si se quiere crear un nuevo perfil. Si es la primera vez hay que darle que si y si tenemos ya uno creado y queremos que lo use pues no

Luego hay que ponerle un nombre al perfil, por ejemplo localhost.
ahora hay que ponerle el path que le indique donde queremos que se deje el fichero de configuracion. Por defecto es /etc/awstats, si le damos al intro sin mas nos lo creara en el lugar por defecto

Lo siguiente que pone es que este script no puede añadir lineas al cron y nos pone la manera de hacerlo. La línea que pone que habría que añadir al cron es la siguiente:
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=localhost
Esa línea es para un solo perfil pero si tuviesemos más de uno habría que poner:
/usr/local/awstats/tools/awstats_updateall.pl now

Por último pone que ha creado el archivo de configuración /etc/awstats/awstats.localhost.conf y que se puede editar para configurarlo a nuestro gusto. En esta última pantalla pone también que para actualizar las estadisticas manualmente hay que poner:
perl awstats.pl -update -config=localhost
También pone que para ver las estadísticas hay que poner en el navegador lo siguiente:
http://localhost/awstats/awstats.pl?config=localhost

Esta configuración esta hecha para mi servidor local.

Ahora hay que configurar algunas cosas de forma manual en el archivo de configuracion de awstats. Para ello vamos al directorio en el que le hemos dicho que guarde el archivo de configuración y lo editamos. En mi caso sería vi /etc/awstats/awstats.localhost.conf y habría que mirar las siguientes líneas:

LogFile ___ Aquí hay que ponerle donde se encuentra el archivo de log del Apache. En mi caso sería /var/log/apache/access.log.

LogType ___ Hay que indicarle que queremos que analiza: W --- para servidores web S --- para un servidor de streaming M --- para un servidor de correo F --- para un servidor de ftp Para este caso que queremos analizar el log de un servidor web hay que poner W.

LogFormat ___ Para esta opción hay que poner el formato va a tener el log que se va a analizar. Para este caso 1 ya que se trata de un servidor Apache. También se le puede poner un log con formato personlizado.

SiteDomain __ Hay que ponerle el nombre del dominio para el que se quiere hacer el analisis. En mi caso sería localhost.

CreateDirDataIfNotExits ___ Esta directiva lo que hace es crear el directorio donde se van a guardar las estadísticas de awstats si no existe. Si se le pone un 1 lo creo y si esta a 0 no. Yo le he puesto un 1 para que lo cree porque si no a la hora de generara las estadísticas la primera vez no encuentra el directorio y da error. Si se le indica un directorio que existe no hace falta ponerle de valor 1. El directorio donde se guardan se indica en la directiva DirData.

Una vez hechos los cambios se guardan y se sale del editor y se ejecuta la siguiente orden:

/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=localhost update

Esto actualiza las estadísticas del servidor web. Antes de ver las estadísticas en el navegador hay que ver que permisos tiene la carpeta donde se guardan los logs.

ls -ld /var/lib/awstats

En mi caso los permisos son drwxr--r-- Con estos permisos cualquier otro usuario que no sea root tendrá problemas para acceder al directorio así que decido cambiarlos de la siguiente forma:

chmod 755 /var/lib/awstats

Ahora voy a mi navegador y pongo la siguiente url en el navegador para ver si se muestran las estadísticas:

http://localhost/awstats/awstats.pl?config=localhost

Si todo a sido correcto se verá una página con las estadísticas : )

Ahora si queremos que se actualizen las estadísticas cada hora usando en crontab habría que editar el archivo crontab y ponerle lo siguiente:

0 * * * * root /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=localhost

Con esto a cada hora se actualizarían las estadísticas.

AWStats tiene muchas directivas para configurar por lo que es interesante ver la documentación que viene con el programa en el directorio docs para ajustarlo a nuestras necesidades.

AWStats y VirtualHosts en Apache 1.3

Si se tiene Apache con VirtualHosts y queremos tener las estaísticas para los varios dominios que se tienen habría que seguir los pasos de instalación uno por cada dominio.

Habría que tener en cuenta que el formato del log ha de ser "combined". Este formato es un formato que viene definido dentro del fichero de configuración del Apache. La directiva que tiene esto es la que se llama LogFormat y encontraremos una línea por cada formato. Por defecto viene varias aunque se le pueden definir las que se quieran. El formato se define entre comillas y al final se pone el nombre que se le asigna a ese formato de log. AWStats entiende los logs que tienen el formato combined. En el caso de mi Apache vienen las siguientes definiciones:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{forensic-id}n\" %T %v" full
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{forensic-id}n\" %P %T" debug
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{forensic-id}n\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{forensic-id}n\"" forensic
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
Si el log que le indiquemos al AWStats a la hora de configurarlo no tiene este formato pone un mensaje de error indicando que necesita logs con dicho formato.

Si resulta que el fichero de log no tiene ese formato entonces lo que hay que hacer es salvar el viejo y modificar el httpd.conf y en la sección de cada dominio virtual poner combined al fichero de log que se quiere que analize AWStats. En mi caso ha quedado de la siguiente forma:


ServerAdmin webmaster@host.some_domain.com
DocumentRoot /var/www/lostscene
ServerName www.lostscene.com
ErrorLog /var/log/apache/www.lostscene.com-error.log
CustomLog /var/log/apache/www.lostscene.com-access.log combined



ServerAdmin webmaster@host.some_domain.com
DocumentRoot /var/www/localhost
ServerName localhost
ErrorLog /var/log/apache/localhost-error.log
CustomLog /var/log/apache/localhost-access.log combined

Ahora para actualizar las estadísticas se podrían hacer para cada dominio de la siguiente forma:

/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=localhost -> Para las estadísticas del dominio localhost
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=lostscene -> Para las estadísticas del dominio lostscene
O bien se podrían actualizar todas las estadísticas de golpe poniendo:

/usr/local/awstats/tools/awstats_updateall.pl now
Ahora para ver las estadísticas de cada dominio virtual se pondría en el navegador:

http://localhost/awstats/awstats.pl?config=localhost -> Para locahost
http://localhost/awstats/awstats.pl?config=lostscene -> Para www.lostscene.com

y listo

Comentarios