Navigation

    La Cabane Libre

    • Register
    • Login
    • Search
    • Catégories
    • Recent
    • Mots-clés
    • Ciné Libre

    [PHP] Apache Check, première release

    Articles de Logiciels
    1
    1
    46
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • LinuxFR
      LinuxFR last edited by

      Introduction

      Les vacances sont un moment adéquat pour se lancer dans de petits projets qu’on reporte sans cesse, procrastinateur que nous sommes. Cette fois-ci, j’ai eu l’élan nécessaire pour me lancer dans l’écriture d’un petit script PHP nommé Apache Check.

      Apache Check est donc un script PHP qui vérifie la configuration d’Apache HTTP Server sur un server LAMP (Linux-Apache-Mysql-PHP).

      Ce script analyse les fichiers de configuration d’Apache, ses processus et ses consommations mémoire. Il analyse également les consommations mémoire de PHP-FPM et MySql afin d’estimer la consommation mémoire totale dans différentes situations. Il fait quelques vérifications des valeurs des paramètres d’Apache, et indique les éventuels problèmes critiques, des alertes et des recommandations. Vous utiliserez (ou pas, vous êtes libres) ce script à vos risques et périls, vous êtes seul responsable des conséquences des modifications que vous apportez à votre système.

      Ce script est sous licence Apache 2.0, donc compatible GPL. Pourquoi choisir cette licence Apache 2.0 ? En fait, ce script s’inspire un peu d’un vieux script non-maintenu « apachebuddy » et d’un moins vieux mais plus vraiment actif « apache2buddy » qui est sous cette licence. Ce dernier script, écrit en Perl, n’a pas évolué depuis longtemps et son mainteneur refuse quasi-systématiquement toutes les demandes d’amélioration. Par exemple il ne prend en compte que le MPM prefork (sans mpm-itk), donc ne fonctionne pas sur les configurations utilisant les MPM worker et event, pourtant de plus en plus utilisés. Les distros ne sont pas non plus toutes à la fête, seules certaines versions sont supportées. Ainsi un Apache sur une Ubuntu toute fraîche ne pourra pas être analysé. J’ai donc voulu apporter un peu de neuf.

      Pour les curieux qui jetteront un coup d’œil au code, soyez assis avant d’ouvrir le fichier : je code avec des partis pris (moi aussi je suis libre !). Par exemple je n’utilise pas de regex, je déteste ça, je trouve ça illisible, même si je comprends fort bien que ce qui est illisible pour l’un est peut-être parfaitement lisible par d’autres, chacun voit midi à sa porte. Autre exemple, je limite au maximum les dépendances du genre ps, awk, pmap, grep … ce qui oblige à aller taper en direct dans le pseudo-système de fichiers /proc pour y trouver les infos qu’il faut. L’avantage, c’est que c’est sans doute plus fiable que d’utiliser des programmes externes dont les formats de sortie peuvent évoluer dans le temps, ou dont les options diffèrent d’une distro à l’autre.

      Utilisation

      Commencez par télécharger le script ici, décompressez le (par exemple avec unzip apachecheck_v1.0.zip), et copiez le script PHP sur votre serveur.

      Si PHP CLI (Interpréteur en ligne de commande) n’est pas installé, installez-le (par exemple apt-get install php-cli pour les distributions basées sur Debian).

      En tant qu’utilisateur root, exécutez le script : php apachecheck.php

      Puisqu’il doit scruter les processus et les fichiers de description présents dans le répertoire /proc, il doit être exécuté avec les droits root sur le serveur, pas d’autre choix.

      Vous devriez alors avoir un résultat qui ressemble à ça :

      Exemple de result d'Apache Check

      Conclusion

      Bref, c’est une première version, qui n’a été testée que sur des serveurs Debian et dérivés. Je suis donc preneur de tous les bugs qu’on puisse trouver sur tous les environnements possibles. Un lien vers le site du projet est disponible ci-dessous.

      Les calculs sur les empreintes mémoires sont estimatifs. Sous linux, il est difficile de savoir exactement combien consomme un processus, en partie parce que les librairies sont partagées.

      Il reprend le style de sortie du fameux script mysqltuner.sh, mais sans être aussi efficace, hélas. En effet, MySql donne assez facilement toutes les infos voulues par simples requêtes. Apache est beaucoup moins bavard, et il n’est pas question de forcer l’installation les modules status_module et mod_info.

      Je suis aussi ouvert à l’ajout d’autres consommateurs de mémoire en complément de PHP-FPM et MySql, tant qu’on me fournit suffisamment d’infos, et tant que leur consommation mémoire est liée à l’augmentation de la charge du serveur Apache : autres langages en FastCGI (les modules utilisés en mpm-prefork sont déjà comptabilisés puisque intégrés dans les processus Apache), système de mise en cache …

      Site du projet : Apache Check

      Télécharger ce contenu au format EPUB

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      https://linuxfr.org/users/xulops/journaux/php-apache-check-premiere-release

      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Sauf mention contraire, le site est placé sous double licence Creative Commons BY-SA et GNU Free Documentation License propulsé par NodeBB