70
modifications
(Page créée avec « ====== GoAccess tuto débutant complet Debian 11 Bullseyes et Apache ====== ----- ===== 1. Introduction ===== Goaccess est un analyseur de fichiers journal spécialisé d… ») |
Aucun résumé des modifications |
||
Ligne 22 : | Ligne 22 : | ||
===== 2. Installation ===== | ===== 2. Installation ===== | ||
<code | <code >sudo apt install goaccess</code> | ||
===== 3. Description ===== | ===== 3. Description ===== | ||
Ligne 30 : | Ligne 30 : | ||
==== 3.1 Essai du mode console ==== | ==== 3.1 Essai du mode console ==== | ||
Avant paramétrages, la commande | Avant paramétrages, la commande | ||
<code | <code >goaccess</code> | ||
affiche le mode console. On peut y choisir un format de log à analyser. Mais aucune statistique ne s'affiche parce qu'on n'a pas préciser de fichier journal à analyser. Pour cela la commande est : | affiche le mode console. On peut y choisir un format de log à analyser. Mais aucune statistique ne s'affiche parce qu'on n'a pas préciser de fichier journal à analyser. Pour cela la commande est : | ||
<code>goaccess <chemin du fichier> </code> | <code>goaccess <chemin du fichier> </code> | ||
Dans notre cas on peut essayer : | Dans notre cas on peut essayer : | ||
<code | <code >goaccess /var/log/apache2/other_vhosts_access.log</code> | ||
Il faut alors spécifier le format du log à analyser dans la console. Par défaut ce fichier est au format « combined log format with virtual host » (VCOMBINED). Le programme affiche alors les statistiques numériques d'Apache. Le fichier journal analysé doit contenir de l'activité ; s'il est vide (0 Ko) alors aucune donnée ne remontera et le tableau restera vide aussi. On sort du tableau avec la touche Q. | Il faut alors spécifier le format du log à analyser dans la console. Par défaut ce fichier est au format « combined log format with virtual host » (VCOMBINED). Le programme affiche alors les statistiques numériques d'Apache. Le fichier journal analysé doit contenir de l'activité ; s'il est vide (0 Ko) alors aucune donnée ne remontera et le tableau restera vide aussi. On sort du tableau avec la touche Q. | ||
Ligne 42 : | Ligne 42 : | ||
* l'option « --log-format » nécessaire pour préciser le format du fichier journal. | * l'option « --log-format » nécessaire pour préciser le format du fichier journal. | ||
Nous pouvons donc essayer cette commande : | Nous pouvons donc essayer cette commande : | ||
<code | <code >goaccess /var/log/apache2/other_vhosts_access.log -o /var/www/webreport.html --log-format=VCOMBINED</code> | ||
Le fichier webreport.html devrait maintenant être consultable via le navigateur. | Le fichier webreport.html devrait maintenant être consultable via le navigateur. | ||
Ligne 89 : | Ligne 89 : | ||
\\ | \\ | ||
Une fois enregistré il faut rendre le script exécutable avec la commande : | Une fois enregistré il faut rendre le script exécutable avec la commande : | ||
<code | <code >sudo chmod +x goaccessd.sh</code> | ||
On peut essayer le script par la commande : | On peut essayer le script par la commande : | ||
<code>./goaccessd.sh</code> | <code>./goaccessd.sh</code> | ||
Si elle fonctionne elle renvoie le PID du démon qu'on termine avec la commande : | Si elle fonctionne elle renvoie le PID du démon qu'on termine avec la commande : | ||
<code | <code >sudo kill -9 <PID> </code> | ||
=== 4.1.2 Création d'un service === | === 4.1.2 Création d'un service === | ||
Ligne 127 : | Ligne 127 : | ||
=== 4.1.3 Activation du script et autres commandes === | === 4.1.3 Activation du script et autres commandes === | ||
Maintenant que le service est prêt nous allons l'activer par cette commande : | Maintenant que le service est prêt nous allons l'activer par cette commande : | ||
<code | <code >sudo systemctl enable goaccess.sh.service</code> | ||
Ceci créé un lien symbolique à partir de la copie du fichier de service du système (généralement dans /lib/systemd/system ou /etc/systemd/system) à l'emplacement du disque où systemd cherche les fichiers de démarrage automatique. | Ceci créé un lien symbolique à partir de la copie du fichier de service du système (généralement dans /lib/systemd/system ou /etc/systemd/system) à l'emplacement du disque où systemd cherche les fichiers de démarrage automatique. | ||
Il faut aussi recharger la configuration des démons : | Il faut aussi recharger la configuration des démons : | ||
<code | <code >sudo systemctl daemon-reload </code> | ||
Nous pouvons alors vérifier si le service se lance bien au démarrage en redémarrant la machine : | Nous pouvons alors vérifier si le service se lance bien au démarrage en redémarrant la machine : | ||
<code | <code >sudo systemctl reboot </code> | ||
La machine redémarrée, vérifions si le service a démarrer correctement. Pour afficher les informations sur notre service la commande est : | La machine redémarrée, vérifions si le service a démarrer correctement. Pour afficher les informations sur notre service la commande est : | ||
<code | <code > sudo systemctl status goaccess.sh.service</code> | ||
Consternation ! On obtient un message d'erreur ! | Consternation ! On obtient un message d'erreur ! | ||
Ligne 142 : | Ligne 142 : | ||
Cependant systemd nous indique la cause de l'erreur : la variable d'environnement « HOME » ne semble pas définie. (On sort de la commande avec la touche Q) | Cependant systemd nous indique la cause de l'erreur : la variable d'environnement « HOME » ne semble pas définie. (On sort de la commande avec la touche Q) | ||
On peut regarder aussi si le processus goaccess est lancé avec la commande : | On peut regarder aussi si le processus goaccess est lancé avec la commande : | ||
<code | <code >ps -aux | goaccess </code> | ||
Là il n'apparaît que la ligne de la commande « grep goaccess ». Le service a bel et bien échoué son démarrage mais nous avons une piste pour la cause de l'erreur. Quelques recherches plus tard sur Internet nous apprennent à ce sujet qu'il s'agit d'un bug du programme. On peut facilement le corriger en initialisant la variable d'environnement HOME dans notre script. On édite donc le fichier /etc/systemd/system/goaccess.sh et, entre l'entête LSB et la ligne de commande nous insérons cette ligne : | Là il n'apparaît que la ligne de la commande « grep goaccess ». Le service a bel et bien échoué son démarrage mais nous avons une piste pour la cause de l'erreur. Quelques recherches plus tard sur Internet nous apprennent à ce sujet qu'il s'agit d'un bug du programme. On peut facilement le corriger en initialisant la variable d'environnement HOME dans notre script. On édite donc le fichier /etc/systemd/system/goaccess.sh et, entre l'entête LSB et la ligne de commande nous insérons cette ligne : | ||
<code>export $HOME=/home</code> | <code>export $HOME=/home</code> | ||
Ligne 162 : | Ligne 162 : | ||
</code> | </code> | ||
Une fois le script corrigé, essayons à nouveau de rebooter : | Une fois le script corrigé, essayons à nouveau de rebooter : | ||
</code | </code >sudo systemctl reboot</code> | ||
Le système redémarre | Le système redémarre | ||
\\ | \\ | ||
Là nous réessayons les commandes de vérification précédentes : | Là nous réessayons les commandes de vérification précédentes : | ||
<code | <code >sudo systemctl status goaccess.sh.service </code> | ||
Satisfaction ! Le service semble s'être lancé convenablement : | Satisfaction ! Le service semble s'être lancé convenablement : | ||
<code>Active:active</code> | <code>Active:active</code> | ||
Ligne 183 : | Ligne 183 : | ||
<code>exit 0</code> | <code>exit 0</code> | ||
Notre script qui contient 3 lignes est presque prêt, il faut le rendre exécutable avec la commande : | Notre script qui contient 3 lignes est presque prêt, il faut le rendre exécutable avec la commande : | ||
<code | <code >sudo chmod +x script.sh</code> | ||
Si on exécute le script : | Si on exécute le script : | ||
<code | <code >sudo ./goaccess2.sh</code> | ||
et que la commande se passe bien, alors le fichier yesterdaywebreport.html affiche les statistiques de la veille. | et que la commande se passe bien, alors le fichier yesterdaywebreport.html affiche les statistiques de la veille. | ||
=== 4.2.2 Ajout au cron === | === 4.2.2 Ajout au cron === | ||
le cron s'occupe des tâches régulières, qu'elles soient quotidiennes, hebdomadaires ou mensuelles. Les scripts à exécuter quotidiennement doivent être présents dans le dossier /etc/cron.daily/. On copie donc notre script vers ce dossier avec la commande : | le cron s'occupe des tâches régulières, qu'elles soient quotidiennes, hebdomadaires ou mensuelles. Les scripts à exécuter quotidiennement doivent être présents dans le dossier /etc/cron.daily/. On copie donc notre script vers ce dossier avec la commande : | ||
<code | <code >sudo cp goaccess2.sh /etc/crondaily/</code> | ||
Remarque à propos de l'ordre d'exécution dans cron.daily : il est possible dans ce dossier de nommer les scripts de façon à gérer leur ordre d'exécution. Cette ordre dépend d'un indice entre 00 et 99 en début du nom du script. Par exemple le script 00logwatch.sh s'exécutera avant le script 10goaccess. Cependant dans le cas présent il n'est normalement pas nécessaire de s'occuper du moment d'exécution du script goaccess2.sh. | Remarque à propos de l'ordre d'exécution dans cron.daily : il est possible dans ce dossier de nommer les scripts de façon à gérer leur ordre d'exécution. Cette ordre dépend d'un indice entre 00 et 99 en début du nom du script. Par exemple le script 00logwatch.sh s'exécutera avant le script 10goaccess. Cependant dans le cas présent il n'est normalement pas nécessaire de s'occuper du moment d'exécution du script goaccess2.sh. | ||
modifications