Awstats en Apache y OpenBSD

noviembre 22, 2006 at 5:58 pm 5 comentarios

Awstats es una herramienta para generar estadísticas acerca de una web a partir de los logs del servidor web, en éste caso Apache. Bien voy a explicar como logré que funcionara en OpenBSD con la versión auditada que trae de Apache pues hay un par de detalles que hay que salvar y creí conveniente explicar y no encontré ayuda en internet.

Partimos de que tenemos Apache sin chroot, esto se resuleve en el fichero /etc/rc.conf, en la opción httpd_flags colocamos:

# use -u to disable chroot, see httpd(8)
httpd_flags=»-u» # for normal use: «» (or «-DSSL» after reading ssl(8))

También tenemos que tener instalado mod_perl, eso es sencillo tomamos la ruta del enlace del paquete del FTP de OpenBSD y lo instalamos con pkg_add:

pkg_add ftp://www.openbsd.org/pub/OpenBSD/4.0/packages/i386/mod_perl-1.29p0.tgz

Después de instalar el paquete nos recomiendan que habilitamos el módulo, por tanto ejecutamos:

/usr/local/sbin/mod_perl-enable

Descargamos awstats de http://awstats.sourceforge.net/

Y lo descomprimimos con:

tar xvfz awstats-6.5.tar.gz

Por defecto, según dice la instalación, awstats debe ir en /usr/local, así que lo movemos ahí, de paso lo renombramos y le decimos que www sea el dueño:

mv awstats-6.5 /usr/local/awstats
chown -R www:www /usr/local/awstats

Ahora nos movemos a:

cd /usr/local/awstats/tools

Y ejecutamos:

./awstats_configure.pl

Lo primero nos pide la ruta del httpd.conf del apache

—– AWStats awstats_configure 1.0 (build 1.6) (c) Laurent Destailleur —–
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:
– You are not an administrator user,
– You want to analyze downloaded log files without web server,
– You want to analyze mail or ftp log files instead of web log files,
– You need to analyze load balanced servers log files,
– You want to ‘understand’ all possible ways to use AWStats…
Read the AWStats documentation (docs/index.html).

—–> Running OS detected: Linux, BSD or Unix

—–> Check for web server install

Enter full config file path of your Web server.
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:\Program files\apache group\apache\conf\httpd.conf
Config file path (‘none’ to skip web server setup):
>

en nuestro caso ponemos:

> /var/www/conf/httpd.conf

—–> Check and complete web server config file ‘/var/www/conf/httpd.conf’
Add ‘Alias /awstatsclasses «/usr/local/awstats/wwwroot/classes/»‘
Add ‘Alias /awstatscss «/usr/local/awstats/wwwroot/css/»‘
Add ‘Alias /awstatsicons «/usr/local/awstats/wwwroot/icon/»‘
Add ‘ScriptAlias /awstats/ «/usr/local/awstats/wwwroot/cgi-bin/»‘
Add » directive
AWStats directives added to Apache config file.

—–> Update model config file ‘/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf’
File awstats.model.conf updated.

—–> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ?

Aquí nos pregunta si queremos crear un nuevo fichero de configuración (necesario si es la primera vez que lo instalamos), le decimos que sí (y)

file (required if first install) [y/N] ? y

—–> Define config file name to create
What is the name of your web site or profile analysis ?
Example: http://www.mysite.com
Example: demo
Your web site, virtual server or profile name:
>

Ahora nos pide el nombre del fichero de configuración, pondremos el nombre de nuestra web, en mi caso: migranpipa.dyndns.org

> migranpipa.dyndns.org

—–> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
>

Aquí nos pregunta por el directorio donde guardaremos el fichero de configuración, por defecto /etc/awstats, ese está bien, así que le damos a Enter para continuar.

—–> Create config file ‘/etc/awstats/awstats.migranpipa.dyndns.org.conf’
Config file /etc/awstats/awstats.migranpipa.dyndns.org.conf created.

—–> Don’t forget to restart manually your web server

—–> Add update process inside a scheduler
Sorry, configure.pl does not support automatic add to cron yet.
You can do it manually by adding the following command to your cron:
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=migranpipa.dyndns.org
Or if you have several config files and prefer having only one command:
/usr/local/awstats/tools/awstats_updateall.pl now
Press ENTER to continue…

Ésto sólo nos dice que que awstats no puede añardirse de forma automática al cron, no importa lo añadiremos después. Le damos a Enter.

A SIMPLE config file has been created: /etc/awstats/awstats.migranpipa.dyndns.org.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for ‘migranpipa.dyndns.org’ with command:
> perl awstats.pl -update -config=migranpipa.dyndns.org
You can also read your statistics for ‘migranpipa.dyndns.org’ with URL:
> http://localhost/awstats/awstats.pl?config=migranpipa.dyndns.org

Press ENTER to finish…

Y para finalizar nos dice que se ha creado el fichero de configuración y cómo acceder a awstats. Pulsamos Enter para finalizar.

Pues ya tenemos el awstats casi configurado, ya que retocaremos el fichero de configuración, concretamente el apartado LogFile, que por defecto aparece:

# Example: «/pathtotools/logresolvemerge.pl *.log |»
#
LogFile=»/var/log/httpd/mylog.log»

Y nosotros colocaremos la ruta de nuestro fichero de logs de Apache:

# Example: «/pathtotools/logresolvemerge.pl *.log |»
#
LogFile=»/var/www/logs/access_log»

Un detalle es que Apache por defecto usa logs tipo «common» y awstats «combined», así que retocamos el httpd.conf para que use «combined»:

-bash-3.1# vi /var/www/conf/httpd.conf

Y en el apartado CustomLog colocamos:

CustomLog logs/access_log combined

Lo que haremos ahora será borrar el contenido del fichero de logs pues seguramente ya tendrá algún log del tipo «common» y al ejecutar el awstats dará un error.

-bash-3.1# cat > /var/www/logs/access_log
^C
-bash-3.1#

Al hacer el cat se queda esperando a que escribamos algo, pero como lo queremos dejar vacío pulsamos Ctrl+C para salir por eso se ve ese ^C.

Ahora reiniciamos Apache:

-bash-3.1# apachectl restart
/usr/sbin/apachectl restart: httpd restarted
-bash-3.1#

Nos movemos a:

cd /usr/local/awstats/wwwroot/cgi-bin/

Y ejecutamos awstats para que nos genere la primera estadística, es lo que hará el cron de ahora en adelante.

-bash-3.1# perl awstats.pl -update -config=migranpipa.dyndns.org
Error: AWStats database directory defined in config file by ‘DirData’ parameter (/var/lib/awstats) does not exist or is not writable.
Setup (‘/etc/awstats/awstats.migranpipa.dyndns.org.conf’ file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in ‘docs’ directory)
.

El error que nos dá, es que no están creados los directorios /var/lib y /var/lib/awstats, así que lo creamos:

-bash-3.1# mkdir /var/lib
-bash-3.1# mkdir /var/lib/awstats

Volvemos a ejecutar:

-bash-3.1# perl awstats.pl -update -config=migranpipa.dyndns.org
Update for config «/etc/awstats/awstats.migranpipa.dyndns.org.conf»
With data in log file «/var/www/logs/access_log»…
Phase 1 : First bypass old records, searching new record…
Searching new records from beginning of log file…
Jumped lines in file: 0
Parsed lines in file: 0
Found 0 dropped records,
Found 0 corrupted records,
Found 0 old records,
Found 0 new qualified records.

Nos debe salir algo así, eso es que todo va bien.

Ahora abrimos un navegador y vamos a http://migranpipa.dyndns.org/awstats/awstats.pl?config=migranpipa.dyndns.org

Bueno lo que corresponda en tu caso, y deberá aparecernos las estadísticas del sistema.

Por último colocamos el awstats en el cron para que se nos ejecute cada cierto tiempo, yo lo puse cada media hora, para ello ejecutamos:

#crontab -e

Y añadimos al final del fichero:

30 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=migranpipa.dyndns.org

Recuerda que los argumentos del crontab son:

Los cinco primeros la programación del tiempo y el sexto, el comando.
Argumento 1: Minutos (0 – 59)
Argumento 2: Horas (0 – 23)
Argumento 3: Día del mes (1 – 31)
Argumento 4: Mes (1-12)
Argumento 5: Día de la semana (0 – 6) Domingo = 0
Argumento 6: Comando

Entry filed under: GNU Linux / *BSD.

Al final… un wordpress Imprimir páginas de prueba en impresoras HP.

5 comentarios Add your own

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Calendario

noviembre 2006
L M X J V S D
 12345
6789101112
13141516171819
20212223242526
27282930  

Most Recent Posts


A %d blogueros les gusta esto: