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.
5 comentarios Add your own
Deja una respuesta
Trackback this post | Subscribe to the comments via RSS Feed
1.
FlingeR | febrero 5, 2008 a las 4:23 pm
Muy interesante me sirvió mucho tu manual, en mi página Web http://www.fencus.com también podes encontrar varios manuales que tal vez te interesen, te dejo uno para instalar Apache + PHP5 + MySql:
http://www.fencus.com/foros/servidor-web-apache-con-php-mysql-en-openbsd-t-107.html
2.
migranpipa | febrero 6, 2008 a las 7:49 pm
De nada, le eché un ojo a la web y hay unos manuales muy buenos que ya estan en marcadores, sigue dándole caña al OpenBSD.
Saludos.
3.
FlingeR | febrero 18, 2009 a las 8:19 pm
Les dejo un link para ir a una lista para ver todos los manuales y tutoriales que escribí para OpenBSD:
http://www.fencus.net/foros/-indice-manuales-para-openbsd-t-552.html
4.
migranpipa | febrero 19, 2009 a las 12:57 pm
Que bueno, veo que tienes bastantes manuales, yo nunca lo usé como sistema de escritorio, ahora ya sé donde ir sin tener que buscar, a ver si me animo y lo pruebo.
Gracias por el link.
Saludos.
5.
FlingeR | agosto 2, 2010 a las 7:12 pm
Gracias por el comentario, aviso que ahora nos mudamos a http://www.opentz.com.ar:
Manuales de OpenBSD:
http://www.opentz.com.ar/viewforum.php?f=4
Gracias y saludos.