Instalación de estadísticas básicas de Awstats para un sólo dominio o múltiples dominios. Nótese que para poder sacar estadísticas de múltiples dominios, cada VirtualHost debe logar en un fichero de log diferente.
# apt-get install awstats
ScriptAlias /awstats/ /usr/lib/cgi-bin/ Alias /awstatsclasses /usr/share/awstats/lib Alias /awstats-icon /usr/share/awstats/icon Alias /awstatscss /usr/share/doc/awstats/examples/css Alias /stats /var/www/stats <Files awstats.pl> AuthName "Estadisticas awstats" AuthType Basic AuthUserFile /etc/apache2/http_passwords require valid-user </Files>
Nota: se ha indicado que las anteriores líneas de configuración se deben introducir dentro de cada VirtualHost. Esto es así si queremos mantener usuarios o AuthNames diferentes en cada Website, pero si no es así, bastaría con incluir lo siguiente dentro de cada VirtualHost:
Include /etc/apache2/conf.d/awstats.conf
# htpasswd -c /etc/apache2/http_passwords awstats
# cd /etc/awstats/ # cp awstats.conf awstats.conf.orig # cp awstats.conf awstats.dominio1.conf # cp awstats.conf awstats.dominio2.conf # vim awstats.dominio1.conf # vim awstats.dominio1.conf
LogFile="/var/log/apache2/access.log" SiteDomain="dominio.com" DirCgi="/awstats"
# /usr/lib/cgi-bin/awstats.pl --config=dominio1 -update # /usr/lib/cgi-bin/awstats.pl --config=dominio2 -update
# Actualizar logs awstats 0-50/10 * * * * root /usr/lib/cgi-bin/awstats.pl -config=dominio1 -update >/dev/null 0-50/10 * * * * root /usr/lib/cgi-bin/awstats.pl -config=dominio2 -update >/dev/null # (etc...)
http://www.dominio1.com/awstats/awstats.pl?config=dominio1 http://www.dominio2.com/awstats/awstats.pl?config=dominio2
Si no se indica el parámetro ?config=dominio, aparecerán estadísticas vacías o un error de configuración de awstats, al tratar de mostrar las estadísticas "por defecto" de /etc/awstats/awstats.conf (y no de los ficheros "generales").
# cd /var/www # mkdir stats # cat index.php <?php header("Location: http://www.dominio.com/awstats/awstats.pl?config=dominio"); ?>
De esta forma, el usuario puede acceder directamente a http://dominio.com/stats/, y será redirigido al CGI pidiéndole el password de acceso.
Instalación de estadísticas básicas de Awstats para un sólo dominio o múltiples dominios. Nótese que para poder sacar estadísticas de múltiples dominios, cada VirtualHost debe logar en un fichero de log diferente.
# yum install awstats
Alias /awstats/icon/ /var/www/awstats/icon/ Alias /stats /var/www/stats ScriptAlias /awstats/ /var/www/awstats/ <Directory /var/www/awstats/> DirectoryIndex awstats.pl Options ExecCGI #order deny,allow #deny from all #allow from 127.0.0.1 AuthName "Estadisticas awstats" AuthType Basic AuthUserFile /etc/httpd/http_passwords require valid-user </Directory> <Files "awstats.pl"> AuthName "Estadisticas awstats" AuthType Basic AuthUserFile /etc/apache2/http_passwords require valid-user </Files>
Include /etc/httpd/conf.d/awstats.conf
Nota: si alguno de los VirtualHosts requiere una configuración / usuario diferente, en lugar del Include se pueden indicar directamente las directivas de Directory y Files dentro del mismo.
# htpasswd -c /etc/httpd/http_passwords awstats
# cd /etc/awstats/ # cp awstats.conf awstats.conf.orig # cp awstats.conf awstats.dominio1.conf # cp awstats.conf awstats.dominio2.conf # vim awstats.dominio1.conf # vim awstats.dominio1.conf
LogFile="/var/log/httpd/access_log" SiteDomain="dominio.com" DirCgi="/awstats"
# /var/www/awstats/awstats.pl --config=dominio1 -update # /var/www/awstats/awstats.pl --config=dominio2 -update
# Actualizar logs awstats 0-50/10 * * * * root /var/www/awstats/awstats.pl -config=dominio1 -update >/dev/null 0-50/10 * * * * root /var/www/awstats/awstats.pl -config=dominio2 -update >/dev/null # (etc...)
http://www.dominio1.com/awstats/awstats.pl?config=dominio1 http://www.dominio2.com/awstats/awstats.pl?config=dominio2
Si no se indica el parámetro ?config=dominio, aparecerán estadísticas vacías o un error de configuración de awstats, al tratar de mostrar las estadísticas "por defecto" de /etc/awstats/awstats.conf (y no de los ficheros "generales").
# cd /var/www # mkdir stats # cat index.php <?php header("Location: http://www.dominio.com/awstats/awstats.pl?config=dominio"); ?>
De esta forma, el usuario puede acceder directamente a http://dominio.com/stats/, y será redirigido al CGI pidiéndole el password de acceso.
Cómo generar estadísticas de correo en servidores Postfix mediante awstats. Las estadísticas se generan localmente y requieren de un servidor Web para ser visualizadas. Es posible modificar los scripts para que no requieran servidor Web y empaqueten las estadísticas con sus iconos en ZIPs visualizables localmente.
# cd /etc/awstats/ # cp awstats.conf awstats.postfix.conf
# /etc/awstats$ diff awstats.postfix.conf awstats.conf | grep "<" | sed -e 's/\< //g' LogFile="perl /usr/share/doc/awstats/examples/maillogconvert.pl (partido) standard < /var/log/postfix/mail.log |" LogType=M LogFormat="%time2 %email %email_r %host %host_r %method %url %code %bytesd" SiteDomain="mail.dominio.com" AllowToUpdateStatsFromBrowser=1 LevelForBrowsersDetection=0 LevelForOSDetection=0 LevelForRefererAnalyze=0 LevelForRobotsDetection=0 LevelForWormsDetection=0 LevelForSearchEnginesDetection=0 LevelForFileTypesDetection=0 MaxRowsInHTMLOutput=2000 Lang="es" ShowSummary=HB ShowMonthStats=HB ShowDaysOfMonthStats=HB ShowDaysOfWeekStats=HB ShowHoursStats=HB ShowDomainsStats=0 ShowHostsStats=HBL ShowRobotsStats=0 ShowEMailSenders=HBML ShowEMailReceivers=HBML ShowSessionsStats=0 ShowPagesStats=0 ShowFileTypesStats=0 ShowOSStats=0 ShowBrowsersStats=0 ShowOriginStats=0 ShowKeyphrasesStats=0 ShowKeywordsStats=0 ShowMiscStats=0 ShowHTTPErrorsStats=0 ShowSMTPErrorsStats=1 MaxNbOfHostsShown = 40 MaxNbOfEMailsShown = 100 FirstDayOfWeek=0 ShowLinksOnUrl=0
# mkdir /var/www/awstats # mkdir /var/www/awstats/oldstats
$ cat /usr/local/bin/genera_estadisticas_awstats.sh #!/bin/sh # # Crear estadisticas de awstats para postfix. EMAIL="postfix_stats@dominio.com" cd /var/www/awstats/ DIA="`date +%u`" # Se rotan las estadísticas semanalmente. if [ "x${DIA}x" == "x7x" ]; then YESTERDAY="`date -d yesterday +%F`" mkdir -p oldstats cp -f awstats.* oldstats/awstats-${YESTERDAY}.html fi # Actualizar estadisticas: /usr/lib/cgi-bin/awstats.pl --config=postfix -update # Generar estadisticas (sin paginas adicionales ni enlace a ellas): /usr/lib/cgi-bin/awstats.pl --config=postfix -output -staticlinks \ | sed -n '/^$/!{s/<a href[^>]*>//g;p;}' > awstats.html echo "http://www.dominio.com/awstats/awstats.html" | \ mail -s "[mail.dominio.com] Estadisticas semanales postfix (awstats)" \ $EMAIL
Alias /stats /var/www/awstats <Directory "/var/www/awstats"> Options Indexes MultiViews FollowSymLinks AllowOverride None AuthType Basic AuthName "Acceso a estadisticas postfix" AuthUserFile /etc/apache2/http_passwords Require user awstats </Directory>
# htpasswd -c /etc/apache2/http_passwords awstats
30 5 * * 7 root /usr/local/bin/genera_estadisticas_awstats.sh > /dev/null
Esto actualiza las estadísticas diariamente. Se puede cambiar la periodicidad a "cada 30 minutos" y prescindir del email de aviso al usuario si éste ya tiene conocimiento de la URL de acceso.
Cómo generar estadísticas de correo en servidores Postfix mediante pflogsumm. Las estadísticas se generan localmente y se envían por correo en un formato de texto puro con todos los datos relativos a los logs analizados. Estas estadísticas no sumarizan datos antiguos y se deben pasar a los logs antes de su rotación, proporcionando la información sólo del período temporal que contiene el fichero mail.log. Así, las podemos generar semanalmente o diariamente según la periodicidad de rotación de los logs.
$ cat /usr/local/bin/estadisticas_postfix.sh #!/bin/sh # # Estadisticas de postfix con pflogsumm. # EMAIL="postfix_stats@dominio.com" SUBJECT="[mail.dominio.com]: Estadisticas semanales postfix (pflogsumm)" cd /var/log/postfix/ cat mail.log | pflogsumm-1.1.1 --no_smtpd_warnings | mail -s "$SUBJECT" $EMAIL
00 6 * * 7 root /usr/local/bin/estadisticas_postfix.sh
Es posible generar estadísticas estáticas con awstats, utilizando un binario directamente diseñado a tal efecto. Estas estadísticas se actualizarán regularmente, y sólo mostrarán las del año en curso. De esta forma, el usuario no accede al CGI de awstats y se le muestra una visión HTML plana que se puede guardar desde el navegador (guardando la web completa).
# mkdir /var/www/stats
Alias /awstatsclasses /usr/share/awstats/lib Alias /awstats-icon /usr/share/awstats/icon Alias /awstatscss /usr/share/doc/awstats/examples/css Alias /stats /var/www/stats <Directory "/var/www/stats"> Options Indexes MultiViews FollowSymLinks AllowOverride None AuthType Basic AuthName "Acceso a estadisticas Web" AuthUserFile /etc/apache2/http_passwords Require user awstats </Directory>
# htpasswd -c /etc/apache2/http_passwords awstats
$ cat /usr/local/bin/genera_estadisticas_anuales.sh #!/bin/sh YEAR="`date +%Y`" EMAIL="usuario@destino.com" AWSTATS="/usr/lib/cgi-bin/awstats.pl" AWSTATIC="/usr/share/doc/awstats/examples/awstats_buildstaticpages.pl" DESTDIR="/var/www/stats/$YEAR" WEB="dominio.com" USER="webuser" mkdir -p $DESTDIR chown $USER:$USER $DESTDIR cd $DESTDIR # Actualizar estadisticas: $AWSTATS --config=${WEB} -update $AWSTATIC -config=${WEB} -dir=$DESTDIR -awstatsprog=$AWSTATS -year=$YEAR -month=all rm -f index.html su -c "ln -sf awstats.dominio.com.html ${DESTDIR}/index.html" $USER chown ${USER}:${USER} *
# Actualizar estadísticas anuales: 0-59/10 * * * * root /usr/local/bin/genera_estadisticas_anuales.sh > /dev/null
Los pasos anteriormente descritos son para distribuciones Ubuntu Server 8.04 y RedHat/CentOS 4.x y 5.x. Estos pasos, así como los paths, ubicaciones de binarios, etc, pueden variar en versiones anteriores o posteriores, o si así lo determinan los mantenedores de los paquetes.