lunes, 5 de octubre de 2009

Instalar AWSTATS en debian

Bien hoy de manera practica voy a explicar como conseguir un reporte minucioso de los logs de nuestro apache, donde se puede ver el trafico, visitas, ips, paginas, etc.

Desde debian hacer un apt, en el caso de otras distribuciones buscar el equivalente:

1- apt-get install awstats

Una vez instalados nos damos cuenta que los archivos de configuracion estan en /etc/awstats

Antes de inciar realizar el siguiente cambio en su fichero de configuracion de host de apache.

nano /etc/apache2/sites-enabled/000-default

y agregar dentro de la configuracion del virtual host:

-VirtualHost *:80-
.
.

ScriptAlias /awstats/ "/usr/lib/cgi-bin/"
Alias /awstats-icon/ /usr/share/awstats/icon/

Options None
AllowOverride None
Order allow,deny
Allow from 127.0.0.1 ## ip permitida para ver los cambios
.
.
--VirtualHost--

luego de agregar reiniciar apache:

/etc/init.d/apache2 restart

AHORA PASAMOS A LA CONFIGURACION PROPIA DE AWSTATS.

Vamos a crear nuestro primer archivo de configuracion para un servidor determinado (digo esto por que podemos tener varios logs de apache en neustar maquina , cada uno de ellos perteneciente a un servidor diferente).

Ejecutamos el siguiente comando:

2- perl /usr/share/doc/awstats/examples/awstats_configure.pl

luego seguimos los siguiente pasos:

Do you want to continue setup from this NON standard directory [yN] ?
y

Config file path ('none' to skip web server setup):
/etc/apache2/apache2.conf <----- archivo de configuracion de apache Do you want me to build a new AWStats config/profile file (required if first install) [y/N] ?
y


Your web site, virtual server or profile name:

www.midominio.com

Directory path to store config file(s) (Enter for default):

dejar en blanco + enter

Si nos sale este error:
Error: Failed to open '/etc/awstats/wwwroot/cgi-bin/awstats.model.conf' for read.

hacer lo siguiente:
cd /etc/awstats/
mkdir wwwroot
mkdir wwwroot/cgi-bin
cp /usr/share/doc/awstats/examples/awstats.model.conf.gz wwwroot/cgi-bin/
cd wwwroot/cgi-bin/
gunzip awstats.model.conf.gz

y luego realizar el paso 2 (tuve que ejecutar dos veces seguidad :( ) y escribir todo nuevamente.

luego si se corrigio ese error le damos enter hasta finalizar.

Bien unas ves que se ha creado nuestro archivo de configuracion entramos a:

cd /etc/awstats

y verificamos que este nuestro archivo, hacemos:

nano awstats.www.midominio.com.conf

una vez abierto el fichero buscamos estas partes que hay que configurar:

LogFile="/var/log/apache2/access.log"

aqui se ubica el fichero de logs , obviamente si estamso analizando los logs de otros servidores esta ubicacion puede variar dependiendo de la carpeta donde se encuentren.

LogType=W (para servidor web)
LogFormat=4 (para apache en general)
DirData="/var/lib/awstats" (esto deb existir previamente)

Luego enviamos el comando para que se empieze a generar nuestro reporte:

/usr/lib/cgi-bin/awstats.pl -update -config=www.midominio.com

si el dominio es diferente solo cambiarlo por el adecuado.

bien luego del termino de este proceso (que puede demorar).

Nos vamos a la siguiente url en nuestro navegador para verificar nuestros resultados:

http://localhost/awstats/awstats.pl?config=www.midominio.com

Y listo el resto es tarea suya.

Saludos.
Nota: Luego corrijo los errores de ortografia.

viernes, 2 de octubre de 2009

Error de Apache

Si alguno les ha ocurrido que al reiniciar su apache les sale este error.

(98)Address already in use: make_sock: could not bind to address [::]:80
no listening sockets available, shutting down
Unable to open logs

Al revisar alguno foros hablan de tener redundancia de puerto 80 en los ficheros de configuracion, cosa que puede ser cierta. Pero en otros casos es por algun proceso esta ocupando aun ese puerto, que proceso??? bueno eso depende de cada situacion.

Al ejecutar un netstat especifico para el puerto 80 se saca un listado de las conexiones :

# netstat -lnp | grep '0.0.0.0:80'

Ahi les sale el proceso que esta ocupando el puerto. Solo verifican el ID del proceso y lo eliminan con un "kill 'ID del proceso'" y listo, puede iniciar su apache.

Saludos.