LINUX:HTTP: Informations et activités
→ retour au menu du serveur Web
But
Apache vient avec divers outils permettant de consulter sa configuration et son activité.
Mod_Info
C'est un module installé d'office qui permet de consulter tous le paramétrage d'Apache sous forme d'un interface Web.
En premier lieu, il faut vérifier que la librairie "mod_info.so" est bien activée. Dans le répertoire "/etc/httpd/conf.modules.d" reprenant la configuration des modules, le fichier "00-base.conf" doit contenir la ligne:
LoadModule info_module modules/mod_info.so
Ensuite on crée un fichier de configuration d'un site Web qui se trouvera par défaut dans le répertoire "/etc/httpd/conf.d" que l'on nommera "server-info.conf" par exemple. Voici un type de contenu:
<Location /apache/server-info> SetHandler server-info <IfModule mod_authz_core.c> Require all denied Require ip 192.168.1.2 </IfModule> </Location>
Il est important que les informations qui vont être affichées ne soient pas accessibles à partir d'Internet. Restreignez cet accès à votre réseau local. Dans l'exemple, seule la machine "192.168.1.2" y a accès. Le paramètre de "Location" peut être rempli selon vos désirs. C'est lui qui sera repris dans l'URL.
On relance le serveur Web:
systemctl restart httpd
Maintenant dans notre navigateur Internet, on lance l'URL suivante, par exemple vers le serveur "serverdb.home.dom":
http://serverdb.home.dom/apache/server-info
APACHETOP
Si on installe le logiciel:
dnf install apachetop
on peut exécuter en ligne de commande:
apachetop
Et nous aurons un équivalent de la commande "top" mais elle affiche l'activité du serveur Apache avec un rafraichissement régulier.
Mod_Status
C'est un module installé d'office qui permet de suivre l'activité d'Apache sous forme d'un interface Web.
En premier lieu, il faut vérifier que la librairie "mod_status.so" est bien activée. Dans le répertoire "/etc/httpd/conf.modules.d" reprenant la configuration des modules, le fichier "00-base.conf" doit contenir la ligne:
LoadModule status_module modules/mod_status.so
On vérifie ensuite que le paramètre 'ExtendedStatus" est bien activé dans le fichier de configuration général d'Apache "/etc/httpd/conf/conf.conf":
ExtendedStatus On
Son utilisation peut être faite de deux façon:
- sous forme de texte brut
- sous forme plus ludique, graphique à plusieurs onglets
Forme texte
On crée un fichier de configuration d'un site Web qui se trouvera par défaut dans le répertoire "/etc/httpd/conf.d" que l'on nommera "server-status-texte.conf" par exemple. Voici un type de contenu:
<Location "/apache/server-status-texte"> SetHandler server-status <IfModule mod_authz_core.c> Require all denied Require ip 192.168.1.2 </IfModule> </Location>
Il est important que les informations qui vont être affichées ne soient pas accessibles à partir d'Internet. Restreignez cet accès à votre réseau local. Dans l'exemple, seule la machine "192.168.1.2" y a accès. Le paramètre de "Location" peut être rempli selon vos désirs. C'est lui qui sera repris dans l'URL.
On relance le serveur Web:
systemctl restart httpd
Maintenant dans notre navigateur Internet, on lance l'URL suivante, par exemple vers le serveur "serverdb.home.dom":
http://serverdb.home.dom/apache/server-status-texte
Forme graphique
On s'assure que le paquet suivant est installé:
dnf install mod_lua
car l'application Web est programmée en LUA.
En second lieu, il faut vérifier que la librairie "mod_lua.so" est bien activée. Dans le répertoire "/etc/httpd/conf.modules.d" reprenant la configuration des modules, le fichier "00-lua.conf" doit contenir la ligne:
LoadModule lua_module modules/mod_lua.so
On crée un fichier de configuration d'un site Web qui se trouvera par défaut dans le répertoire "/etc/httpd/conf.d" que l'on nommera "server-status-lua.conf" par exemple. Voici un type de contenu:
LuaMapHandler /apache/server-status$ /web/status/server-status.lua Alias /apache "/web/status" <Directory /web/status> AllowOverride None <IfModule mod_authz_core.c> Require all denied Require ip 192.168.1.2 </IfModule> </Directory>
Il est important que les informations qui vont être affichées ne soient pas accessibles à partir d'Internet. Restreignez cet accès à votre réseau local. Dans l'exemple, seule la machine "192.168.1.2" y a accès. Le paramètre de "Location" peut être rempli selon vos désirs. C'est lui qui sera repris dans l'URL.
Enfin on récupère le contenu du répertoire "/usr/share/httpd/server-status" que l'on place dans un répertoire de notre arborescence d'applications Web, dans l'exemple "/web/status". Le fichier "README.md" n'est pas nécessaire mais il explique les paramètres qui peuvent être adaptés.
Par exemple, nous avons modifié les variables suivantes:
local redact_ips = false local show_warning = false local show_modules = true
Ne pas oublier d'adapter les droits et la propriété à l'utilisateur "apache".
On relance le serveur Web:
systemctl restart httpd
Maintenant dans notre navigateur Internet, on lance l'URL suivante, par exemple vers le serveur "serverdb.home.dom":
http://serverdb.home.dom/apache/server-status
A gauche on peut accéder à divers onglets:
- Un premier suit l'activité: thread, traffic, connexions, CPU,...
- Le second donne quelques informations sur le serveur
- Le troisième, le plus intéressant, affiche les différents threads par processeur avec, notamment, l'adresse IP du client et sa requête
- Le quatrième donne la liste des modules actifs
→ retour au menu du serveur Web