Installer AWStats sur Debian
AWStats (pour Advanced Web statistics) est un outil très performant d'analyse de fichiers logs. Il est capable de traiter les logs de vos serveurs HTTP, FTP, SMTP, etc. Sa présentation est simple, et ses statistiques pertinentes. Ce guide vous aide à l'installer proprement sur Debian.
Ce guide est testé sur:
- Debian 5.0 Lenny
- Debian 6.0 Squeeze
- Debian 7.0 Wheezy
Prérequis
Ce guide nécessite:
- un serveur HTTP disposant du script a2tools disponible dans le guide Installer Apache 2 sur Debian.
Paramètres
Renseignez le nom de domaine où sera disponible l'application:
DOMAIN="stats.domaine-exemple.fr"
Renseignez le nom du certificat SSL à utiliser pour chiffrer l'application avec HTTPS (créé via la procédure Créer un certificat SSL / TLS sur Debian) (optionnel, recommandé):
SSL_KEY_NAME="${DOMAIN}"
Installation
Installez le logiciel, un outil de génération de mots de passe, et les dépendances des plugins:
command apt-get install awstats apg \
libgeo-ipfree-perl libnet-ip-perl \
libnet-dns-perl liburi-perl apache2-utils
Créez un utilisateur système pour le logiciel:
command adduser --system --group --shell "/bin/sh" \ --no-create-home --home "/var/lib/awstats" "awstats" command adduser "awstats" "adm"
Modifiez les permissions pour prendre en compte ce nouvel utilisateur:
if [ -e "/var/lib/awstats" ]; then command chown awstats:www-data "/var/lib/awstats" command chown awstats:awstats "/var/lib/awstats/"* fi if [ -e "/var/cache/awstats" ]; then command chown awstats:www-data "/var/cache/awstats" command chown awstats:awstats "/var/cache/awstats/"* fi
Remplacez la configuration cron fournie par Debian par une version capable de mettre à jour plusieurs sites:
command echo "# Awstats all sites update : */10 * * * * awstats [ -x '/usr/lib/cgi-bin/awstats.pl' -a -d '/etc/awstats' ] && command find '/etc/awstats' -type f -name 'awstats.*.conf' | command sed -e 's/.*awstats\.\(.*\)\.conf/\1/' | command xargs -ICONF /usr/lib/cgi-bin/awstats.pl -config=CONF -update # Generate static reports: #10 03 * * * awstats [ -x '/usr/share/awstats/tools/buildstatic.sh' ] && /usr/share/awstats/tools/buildstatic.sh" \ > /etc/cron.d/awstats /etc/init.d/cron reload
Configurez l'outil pour reconnaître la version "combined" des logs Apache 2:
command sed -i -e 's/^LogFormat.*=.*/LogFormat=1/g' "/etc/awstats/awstats.conf"
Autorisez la vue de l'année complète via le navigateur:
command sed -i -e 's/^AllowFullYearView.*=.*/AllowFullYearView=3/g' "/etc/awstats/awstats.conf"
Copiez le fichier de configuration par défaut d'AWStats afin de conserver un template "sûr":
command mv "/etc/awstats/awstats.conf" "/etc/awstats/awstats.conf.template"
Activez de manière globale les plugins intéressants de l'outil:
command echo 'LoadPlugin="tooltips" LoadPlugin="decodeutfkeys" LoadPlugin="ipv6" LoadPlugin="geoipfree"' \ >> "/etc/awstats/awstats.conf.local"
Initialisation de la gestion des utilisateurs
Créez le dossier destiné à contenir le fichier des mots de passes:
command mkdir --parent "/etc/apache2/passwords"
Créez un mot de passe pour le compte admin, autorisé à accéder à toutes les statistiques:
AWSTATS_PWD="$(command apg -q -a 0 -n 1 -M NCL)"
Créez le fichier de mot de passe ainsi que le compte admin:
command htpasswd -cb "/etc/apache2/passwords/awstats-users.pwd" "admin" "${AWSTATS_PWD}"
Affichez le mot de passe assigné au compte d' "administration" de AWStats. Notez le:
command echo "Le mot de passe pour l'utilisateur 'admin' est '${AWSTATS_PWD}'."
Ce compte permet d'accéder aux statistiques de tous les sites configurés dans AWStats.
Configuration d'Apache 2
Activez le module rewrite d'Apache 2:
command a2enmod rewrite
Téléchargez le fichier modèle de l'hôte virtuel dédié à AWstats:
AWSTATS_CONFIG="$(command wget "https://raw.github.com/biapy/howto.biapy.com/master/apache2/awstats/awstats-virtual-host.template" \ --quiet --no-check-certificate --output-document=-)"
Créez la configuration du site de statistiques à l'aide d'a2tools:
if [ -n "${SSL_KEY_NAME}" -a -e "/etc/ssl/private/${SSL_KEY_NAME}.key" ]; then
command a2tools --ssl="${SSL_KEY_NAME}" --template='custom' "${DOMAIN}" "${AWSTATS_CONFIG}"
command a2tools --template='redirect' "${DOMAIN}" "https://${DOMAIN}/"
else
command a2tools --template='custom' "${DOMAIN}" "${AWSTATS_CONFIG}"
fi
Par défaut, le modèle d'hôte virtuel utilisé n'autorise que l'utilisateur "admin" à voir les sites. Cependant, si vous modifiez le fichier /etc/apache2/sites-available/http-DOMAIN, vous trouverez la possibilité d'autoriser l'accès sans identification par mot de passe pour certaines adresses IP.
Installation du script d'administration
Installez le script d'administration d'AWStats:
command wget "https://raw.github.com/biapy/howto.biapy.com/master/apache2/awstats/awstats-tools" \
--quiet --no-check-certificate --output-document="/usr/bin/awstats-tool"
command chmod +x "/usr/bin/awstats-tool"
L'utilisation de ce script pour le domaine choisi est fournie par:
echo "* awstats-tool ${DOMAIN} add-site www.site-exemple.com
Ajoute le site www.site-exemple.com aux sites surveillés par AWStats.
* awstats-tool ${DOMAIN} add-site-user www.site-exemple.com jdoe
Crée l'utilisateur jdoe, et l'autorise à accéder aux statistiques du site www.site-exemple.com.
Les statistiques du site www.site-exemple.com sont disponibles à l'adresse: http://${DOMAIN}/www.site-exemple.com/"
Sauvegardes
Sauvegardez l'installation avec Backup Manager (voir Installer et configurer Backup Manager sur Debian):
command backup-manager-tools add "/var/lib/awstats"
Remerciements
- Merci aux développeurs d'AWStats.
- Merci à l'auteur du post Rewrite for Awstats dans le forum htaccess Elite car il m'a mis sur la voie.
- Merci à Qtax sur irc.freenode.net#regex.