« Tuto supervision avec GoAcces pour Bullseye » : différence entre les versions

Aller à la navigation Aller à la recherche
aucun résumé des modifications
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 2 : Ligne 2 :
-----
-----


== 1. Introduction ==
== Introduction ==
Goaccess est un analyseur de fichiers journal spécialisé dans les services réseaux et particulièrement adapté à l'analyse du trafic http. Les statistiques sont accessibles en mode console via un terminal ou en mode navigateur web via une page html. Le logiciel supporte la plupart des format log existant. Il est possible de le lancer en mode démon afin d'obtenir des statistiques du trafic de son site web en temps réel. Goaccess nécessite peu de dépendances, prends peu de place sur le disque et peu de ressources système, il est donc adapté à une petite machine.  
Goaccess est un analyseur de fichiers journal spécialisé dans les services réseaux et particulièrement adapté à l'analyse du trafic http. Les statistiques sont accessibles en mode console via un terminal ou en mode navigateur web via une page html. Le logiciel supporte la plupart des format log existant. Il est possible de le lancer en mode démon afin d'obtenir des statistiques du trafic de son site web en temps réel. Goaccess nécessite peu de dépendances, prends peu de place sur le disque et peu de ressources système, il est donc adapté à une petite machine.  
Dans ce tuto nous allons nous appliquer à configurer Goaccess pour afficher les statistiques de connexions sur  un site hébergé avec Apache 2. Dans un premier temps nous allons essayer le mode console, dans un second temps le mode web en instantané et enfin le mode démon pour que goaccess analyse le trafic en temps réel.
Dans ce tuto nous allons nous appliquer à configurer Goaccess pour afficher les statistiques de connexions sur  un site hébergé avec Apache 2. Dans un premier temps nous allons essayer le mode console, dans un second temps le mode web en instantané et enfin le mode démon pour que goaccess analyse le trafic en temps réel.
   
   
pages man (en anglais): [[http://manpagez.com/man/1/goaccess/]]
pages man (en anglais): http://manpagez.com/man/1/goaccess/


=== 1.1 prérequis ===
=== 1.1 prérequis ===
Ligne 20 : Ligne 20 :
*Pour consulter en ligne le fichier html de statistique il faut copier ce dernier dans un dossier configuré pour être mis en ligne, par convention /var/www/
*Pour consulter en ligne le fichier html de statistique il faut copier ce dernier dans un dossier configuré pour être mis en ligne, par convention /var/www/


== 2. Installation ==
== Installation ==


<code >sudo apt install goaccess</code>
<code >sudo apt install goaccess</code>


== 3. Description ==
== Description ==


La configuration de Goaccess par défaut se fait dans le fichier /etc/goaccess/goaccess.conf. Lorsqu'on lance la commande simple "goaccess", le programme va chercher les paramètres dont il a besoin dans goaccess.conf. Toutefois, les paramètres passés dans la ligne de commande sont prioritaires sur les paramètres enregistrés dans le fichier goaccess.conf (mis à part le chemin du fichier journal à analyser)
La configuration de Goaccess par défaut se fait dans le fichier /etc/goaccess/goaccess.conf. Lorsqu'on lance la commande simple "goaccess", le programme va chercher les paramètres dont il a besoin dans goaccess.conf. Toutefois, les paramètres passés dans la ligne de commande sont prioritaires sur les paramètres enregistrés dans le fichier goaccess.conf (mis à part le chemin du fichier journal à analyser)


=== 3.1 Essai du mode console ===
=== Essai du mode console ===
Avant paramétrages, la commande
Avant paramétrages, la commande
<code >goaccess</code>
<code >goaccess</code>
Ligne 41 : Ligne 41 :
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.


=== 3.2 Essai du mode web ===
=== Essai du mode web ===
La commande goaccess va cette fois nous servir à générer une page web qu'on pourra ensuite consulter avec un navigateur. Faute de paramétrages dans goaccess.conf il nous faut toujours préciser quel fichier journal analyser. Il faut en plus ajouter deux paramètres :
La commande goaccess va cette fois nous servir à générer une page web qu'on pourra ensuite consulter avec un navigateur. Faute de paramétrages dans goaccess.conf il nous faut toujours préciser quel fichier journal analyser. Il faut en plus ajouter deux paramètres :
*le commutateur « -o », pour « output », suivis du chemin complet du fichier html à générer
*le commutateur « -o », pour « output », suivis du chemin complet du fichier html à générer
Ligne 51 : Ligne 51 :
Le fichier webreport.html devrait maintenant être consultable via le navigateur.
Le fichier webreport.html devrait maintenant être consultable via le navigateur.


=== 3.3 Essai du mode démon===
=== Essai du mode démon===
Ce mode permet de lancer un démon goaccess en arrière plan qui analyse les connexions en temps réel (real time). Nous allons garder la ligne de commande précédente et lui ajouter deux paramètres qui en fait fonctionnent ensemble:
Ce mode permet de lancer un démon goaccess en arrière plan qui analyse les connexions en temps réel (real time). Nous allons garder la ligne de commande précédente et lui ajouter deux paramètres qui en fait fonctionnent ensemble:
*l'option « --real-time-html »
*l'option « --real-time-html »
Ligne 63 : Ligne 63 :
<code>sudo kill -9 <PID></code>
<code>sudo kill -9 <PID></code>


== 4. Deux scripts avec goaccess ==
== Deux scripts avec goaccess ==
=== 4.1 Lancer le démon goaccess au démarrage de Debian pour reporter les statistiques en temps réel ===
===  Lancer le démon goaccess au démarrage de Debian pour reporter les statistiques en temps réel ===
Il faut respecter 3 étapes.
Il faut respecter 3 étapes.
==== 4.1.1 script LSB (Linux Standard Base) ====
==== Script LSB (Linux Standard Base) ====
Il s'agit d'un script conçu spécialement pour effectuer des tâches au démarrage de la machine telles que lancer un démon.
Il s'agit d'un script conçu spécialement pour effectuer des tâches au démarrage de la machine telles que lancer un démon.
La première ligne contient cette commande :
La première ligne contient cette commande :
Ligne 117 : Ligne 117 :
<code >sudo kill -9 <PID> </code>
<code >sudo kill -9 <PID> </code>


==== 4.1.2 Création d'un service ====
==== Création d'un service ====
Maintenant que nous avons le script à exécuter nous devons créer un service pour Debian, c'est à dire pour systemd. (bonne doc : [[http://lea-linux.org/documentations/Systemd)]]. Cela consiste à créer un fichier nommé <nom du script>.service dans le dossier /usr/lib/systemd/system/. Créons donc le fichier /usr/lib/systemd/system/goaccessd.sh.service. Ce fichier doit contenir le paramétrage  suivant :
Maintenant que nous avons le script à exécuter nous devons créer un service pour Debian, c'est à dire pour systemd. (bonne doc : http://lea-linux.org/documentations/Systemd). Cela consiste à créer un fichier nommé <nom du script>.service dans le dossier /usr/lib/systemd/system/. Créons donc le fichier /usr/lib/systemd/system/goaccessd.sh.service. Ce fichier doit contenir le paramétrage  suivant :


<code>
<code>
Ligne 148 : Ligne 148 :
Pour plus d'explication on peut se référer au manuel : https://manpages.debian.org/stretch/systemd/systemd.service.5.en.html .  
Pour plus d'explication on peut se référer au manuel : https://manpages.debian.org/stretch/systemd/systemd.service.5.en.html .  


==== 4.1.3 Activation du script et autres commandes ====
==== 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 :


Ligne 218 : Ligne 218 :
Systemd nous donne diverses informations sur le service lancé. Notons que le champs « Main PID » indique le PID du processus père du démon. Le PID du démon est indiqué deux fois, dans la section « CGroup » et à la fin de la dernière ligne d'information « Daemonized GoAccess <PID> ».
Systemd nous donne diverses informations sur le service lancé. Notons que le champs « Main PID » indique le PID du processus père du démon. Le PID du démon est indiqué deux fois, dans la section « CGroup » et à la fin de la dernière ligne d'information « Daemonized GoAccess <PID> ».


=== 4.2 Lancer goaccess tout les jours pour reporter les statistiques de la veille ===
=== Lancer goaccess tout les jours pour reporter les statistiques de la veille ===
Pour l'instant nous avons travaillé sur le fichier journal other_vhosts_access.log qui reporte l'activité actuelle et récente. Le mode temps réel était adapté à cela. Par le jeu de la rotation des logs (logrotate) Apache consigne des données plus anciennes et exploitables dans le fichier other_vhosts_access_log.1. La rotation des fichiers journaux d'apache est paramétrée dans le fichier /etc/logrotate.d/apache2. La  ligne « daily » nous confirme que la rotation des logs est quotidienne. Le fichier other_vhosts_access.log.1 concerne donc les connexions de la veille. Nous allons paramétrer goaccess pour reporter chaque jour les statistiques de ce fichier journal.
Pour l'instant nous avons travaillé sur le fichier journal other_vhosts_access.log qui reporte l'activité actuelle et récente. Le mode temps réel était adapté à cela. Par le jeu de la rotation des logs (logrotate) Apache consigne des données plus anciennes et exploitables dans le fichier other_vhosts_access_log.1. La rotation des fichiers journaux d'apache est paramétrée dans le fichier /etc/logrotate.d/apache2. La  ligne « daily » nous confirme que la rotation des logs est quotidienne. Le fichier other_vhosts_access.log.1 concerne donc les connexions de la veille. Nous allons paramétrer goaccess pour reporter chaque jour les statistiques de ce fichier journal.


==== 4.2.1 Écriture du script ====
==== Écriture du script ====
Editons le fichier goaccess2.sh
Editons le fichier goaccess2.sh
il s'agit comme précédemment d'un script shell, la première ligne est donc l'en-tête :
il s'agit comme précédemment d'un script shell, la première ligne est donc l'en-tête :
Ligne 245 : Ligne 245 :
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 ====
==== 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 :


Ligne 254 : Ligne 254 :
Une page html nommée yesterdaywebreport.html sera générée tout les matins vers 6h25 reprenant les statistiques de la veille contenues dans other_hosts_access.log.1.  
Une page html nommée yesterdaywebreport.html sera générée tout les matins vers 6h25 reprenant les statistiques de la veille contenues dans other_hosts_access.log.1.  


== 5. Configurations facultatives ==
== Configurations facultatives ==


Nous avons pour l'instant fait fonctionné goaccess sans toucher à son fichier de configuration qui est /etc/goaccess/goaccess.conf. Celui-ci permet de paramétrer goaccess plus finement. Les paramètres enregistrés dans le fichier de configuration prennent effet mais les paramètres contradictoires passés dans la ligne de commande sont prioritaires. Une exception toutefois : lorsqu'on définit le champs « log file » dans la section « file options » celui ci prend le pas sur la ligne de commande. Définir ce champs peut être utile si on n'analyse qu'un seul fichier journal, ce qui n'est pas notre cas ; cela  permet de se dispenser de préciser le fichier en entré dans la ligne de commande.  
Nous avons pour l'instant fait fonctionné goaccess sans toucher à son fichier de configuration qui est /etc/goaccess/goaccess.conf. Celui-ci permet de paramétrer goaccess plus finement. Les paramètres enregistrés dans le fichier de configuration prennent effet mais les paramètres contradictoires passés dans la ligne de commande sont prioritaires. Une exception toutefois : lorsqu'on définit le champs « log file » dans la section « file options » celui ci prend le pas sur la ligne de commande. Définir ce champs peut être utile si on n'analyse qu'un seul fichier journal, ce qui n'est pas notre cas ; cela  permet de se dispenser de préciser le fichier en entré dans la ligne de commande.  


=== 5.1 Activation des formats de log par défaut ===
=== Activation des formats de log par défaut ===


Si on se sert de goaccess en mode console, une option intéressante peut être d'activer les formats de log dont on peut avoir besoin dans le fichier conf. Ce paramétrage sert à ne pas avoir besoin de spécifier le format de log dans la ligne de commande à l'aide de la directive « log-format », goaccess essaie alors les formats activés dans son fichier de configuration.  
Si on se sert de goaccess en mode console, une option intéressante peut être d'activer les formats de log dont on peut avoir besoin dans le fichier conf. Ce paramétrage sert à ne pas avoir besoin de spécifier le format de log dans la ligne de commande à l'aide de la directive « log-format », goaccess essaie alors les formats activés dans son fichier de configuration.  
Ligne 324 : Ligne 324 :
Une fois que ceci est fait, si on omet de préciser le format de log avec la directive « log-format » dans la ligne de commande, goaccess essaie les formats de log activés. Cela peut être tentant d'activer tout les formats mais dans ce cas goaccess met beaucoup plus de temps à effectuer sa tache et prends davantage de ressources. N'activer que le(s) log-format qu'on utilise accroît la rapidité du processus mais risque de renvoyer une erreur si on souhaite analyser un fichier journal rédigés dans un format de log non activé.
Une fois que ceci est fait, si on omet de préciser le format de log avec la directive « log-format » dans la ligne de commande, goaccess essaie les formats de log activés. Cela peut être tentant d'activer tout les formats mais dans ce cas goaccess met beaucoup plus de temps à effectuer sa tache et prends davantage de ressources. N'activer que le(s) log-format qu'on utilise accroît la rapidité du processus mais risque de renvoyer une erreur si on souhaite analyser un fichier journal rédigés dans un format de log non activé.


=== 5.2 Cacher les panneaux inutiles dans la page html ===
=== Cacher les panneaux inutiles dans la page html ===


Par défaut la page html générée par goaccess contient de nombreux panneaux ; certains sont plus utiles que d'autres, cacher les panneaux qu'on juge inutiles accroît de beaucoup la lisibilité des informations. Dans la section « Parse Options » il y a un bloc « ignore-panel » en bas ; il est possible de décommenter des lignes pour ignorer telle ou telle donnée. L'exemple suivant ignore les panneaux « Requests static », « Not Found », « Referreres », « Keaphrases » et « status_codes » :
Par défaut la page html générée par goaccess contient de nombreux panneaux ; certains sont plus utiles que d'autres, cacher les panneaux qu'on juge inutiles accroît de beaucoup la lisibilité des informations. Dans la section « Parse Options » il y a un bloc « ignore-panel » en bas ; il est possible de décommenter des lignes pour ignorer telle ou telle donnée. L'exemple suivant ignore les panneaux « Requests static », « Not Found », « Referreres », « Keaphrases » et « status_codes » :
Ligne 353 : Ligne 353 :
  </code>
  </code>


=== 5.3 Changer le format des logs d'Apache ===
=== Changer le format des logs d'Apache ===


dans apache il faut éditer le fichier /etc/apache2/conf-available/other-vhost
dans apache il faut éditer le fichier /etc/apache2/conf-available/other-vhost
70

modifications

Menu de navigation