serveurs:installation:web-srv:docker-awstats

Installer le sous-domaine "awstats"

  • Créer un fichier de configuration : vi /etc/nginx/sites-available/awstats.conf
  • Voir la section Configurer Nginx pour la création et la gestion du fichier .htpasswd.
  • Créer un lien depuis les sites actifs : nginx_ensite awstats.conf ou cd /etc/nginx/sites-enabled/ ; ln -s ../sites-available/awstats.conf awstats.conf
    • Tester la config et relancer Nginx si OK : nginx-reload ou nginx -t && nginx -s reload
    • Tester l'URL http://awstats.<domaine-sinp>/ qui doit afficher une erreur 502 car nous n'avons pas encore lancé le container Docker.
  • En local, sur votre machine, se placer dans le dépôt Github "sinp-<region>-srv" récupéré précédemment et si nécessaire resynchroniser le dossier web-srv avec le serveur de destination en exécutant la commande Rsync indiquée dans le fichier README.md : rsync -av ./web-srv/home/admin/docker/ admin@web-<region>-sinp:/home/admin/docker/
  • Sur le serveur "web-srv" dans le dossier docker de l'utilisateur admin :
    • vérifier la présence du réseau Docker spécifique à notre utilisation de type bridge nommé nginx-proxy (voir fichier .env) : docker network ls
    • se placer dans le dossier awstats : cd ~/docker/awstats/
    • exécuter la commande : docker-compose up
    • vérifier que tout fonctionne à l'adresse : http://awstats.<domaine-sinp>. Il se peut que les stats soient vides si le script de mise à jour n'a pas encore été lancé dans le container.
    • arrêter le container : CTRL+C
    • relancer le container en tant que service : docker-compose up -d
      • si besoin de l'arrêter utiliser : docker compose down
  • Installer un certificat SSL via Certbot (Letsencrypt) :
    • Pour SINP PACA : certbot --nginx -d awstats.silene.eu
    • Pour SINP AURA : certbot --nginx -d awstats.biodiversite-aura.net
    • Répondre : 1
    • Modifier le fichier de configuration de Nginx comme ci-dessous afin d'activer le support de SSL, HTTP2 et la redirection de HTTP vers HTTPS.
      • Recharger les configs Nginx : nginx-reload ou nginx -t && nginx -s reload
    • Tester ensuite la redirection auto de HTTP vers HTTPS : http://awstats.<domaine-sinp>/ → doit rediriger vers HTTPS automatiquement
  • Tester la configuration SSL : https://www.ssllabs.com/ssltest/analyze.html?d=awstats.<domaine-sinp>
  • Tester l'URL https://awstats.<domaine-sinp>/
  • La config finale :
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
     
        server_name awstats.<domaine-sinp> ;
     
        auth_basic "Zone restreinte";
        auth_basic_user_file /etc/nginx/.htpasswd;
     
        location / {
            proxy_set_header X-Forwarded-Host $host:$server_port;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
     
            proxy_pass http://127.0.0.1:50083/;# ATTENTION : bien mettre un slash final ! Sinon => erreur 404
        }
     
        ssl_certificate /etc/letsencrypt/live/awstats.<domaine-sinp>/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/awstats.<domaine-sinp>/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
     
    }
     
    server {
        listen 80;
        listen [::]:80;
     
    	server_name awstats.<domaine-sinp> ;
     
        return 302 https://awstats.<domaine-sinp>$request_uri;
    }
  • Les analyses des logs du serveur web sont réalisées toutes les 15mn par un Cron lancé dans le container Docker hébergeant Awstats.
  • Le stats sont générées par le script aw-update.sh présent dans le dossier /usr/local/bin/ du container.
  • Pour lancer manuellement la mise à jour des stats :
    • Se connecter au container : docker exec -it awstats /bin/bash
    • Se placer dans le dossier du script de mise à jour : cd /usr/local/bin/
    • Lancer le script : ./aw-update.sh
  • Pour configurer des stats pour un nouveau site web, il suffit de rajouter un nouveau fichier .env ou .conf dans le dossier ~/docker/awstats/sites/ de l'utilsateur admin du serveur hébergeant le container Awstats.
    • Ce dossier est lié avec le dossier /etc/awstats/sites/ du container hébergeant Awstats. Tout ajout de fichier dans ce dossier de l'hôte, le rand accessible dans le container.
  • Par défaut, le fichier docker-compose.yml se charge de lier le dossier de l'hôte contenant les logs du serveur Nginx (/var/log/nginx) avec le dossier /var/local/log du container.
  • Se connecter au container : docker exec -it awstats /bin/bash
  • ATTENTION : S'assurer que les fichiers de log d'accès existe toujours dans /var/local/log pour le mois et l'année qui nous intéresse.
  • Se placer dans le dossier contenant les stats : cd /var/lib/awstats
  • Supprimer le fichier à regénérer, par exemple : rm -f awstats012022.atlas.txt
  • ATTENTION : bien recréer un fichier vide correspondant au fichier prélablement supprimée. Si ce n'est pas fait Awstats indiquera trouvé de vieux enregistrement Found x old records au lieu de Found x new qualified records.
    • Récréer le fichier vide : touch awstats012022.atlas.txt
  • Lancer la commande de réanalyse : awstats -update -config="atlas" -LogFile="/usr/share/awstats/tools/logresolvemerge.pl /var/local/log/access.log.2022-01-*.gz |"
  • Vérifier sur l'interface que cela a bien fonctionné.
  • Une fois le nouveau fichier .env créé dans ~/docker/awstats/sites/, se connecter au container : docker exec -it awstats /bin/bash
  • Se placer dans le dossier contenant les scripts : cd /usr/local/bin/
  • Lancer le script de mise à jour de la page d'accueil : ./aw-setup.sh
  • serveurs/installation/web-srv/docker-awstats.txt
  • Dernière modification : 2023/08/03 15:16
  • de jpmilcent