Forge Forge/ Apache Check  par Franck Hisbergue
  Se connecter  -  Fr / En
A propos

Apache Check est un petit script PHP qui vérifie la configuration d'Apache HTTP Server (et de Nginx) sur un serveur LAMP (Linux-Apache-Mysql-PHP) ou LEMP (Linux-Nginx-Mysql-PHP).

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

Ce script limite au maximum l'usage de dépendances externes, mais puisqu'il doit scruter les processus et les fichiers de descriptions présents dans le répertoire /proc, il doit être exécuté avec les droits root sur le serveur.

Utilisation

Commencez par télécharger la dernière version (2.0.2) du script ici, décompressez le (par exemple avec unzip apachecheck_v2.0.2.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

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

root@Server:~# php apachecheck.php 
 
>> Apache Check v1.7 - Hisbergue Franck - for Server (x.x.x.x)
>> For bug reports, feature requests, comments or FAQ :
     https://xulops.net/forge/apachecheck.php
     Use --help to get all the options
 
>> DISCLAIMER : this script is provided 'as is', without warranty of any
     kind. You use the software at your own risk, and you are solely
     responsible for the consequences of modifications you may apply to your
     system.
>> Licensed under the Apache License, Version 2.0. You may not use this file
     except in compliance with the License. You may obtain a copy of the
     License at http://www.apache.org/licenses/LICENSE-2.0
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an 'AS IS' BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
     implied. See the License for the specific language governing
     permissions and limitations under the License.
 

-------- Server informations -----------------------------------------------
[..] OS type : Linux
[..] OS version : #1 SMP Debian 4.19.194-3 (2021-07-18)
[..] OS release : 4.19.0-17-amd64
[..] System uptime : 11 days 16 hours 24 minutes 17 secondes
[..] 1 CPU, 2 cores, 4 hyperthreaded
[..] Server total memory : 7.7Go, available memory : 6.6Go
[..] Disk free space : 1.5To on a total of 1.8To
[..] Estimated residual disk IO speed : 1.2Mo/s

-------- Apache basic informations -----------------------------------------
[OK] apachectl exists (/usr/sbin/apachectl)
[..] Found inode for port 80 in socket:[6300341] in /proc/7727/fd
[OK] Apache main process 'apache2' found : /usr/sbin/apache2 (pid 30370)
[..] Apache version : Apache/2.4.38 (Debian)
[..] Apache root directory : /etc/apache2
[..] Main apache config file : /etc/apache2/apache2.conf
[OK] Apache config files syntax is correct
[..] MPM used : event
[..] Apache uptime : 4 days 14 hours 48 minutes 50 secondes

-------- Apache common config file parameters ------------------------------
[..] apache user : www-data (uid 33)
[OK] Apache Pid in /var/run/apache2/apache2.pid matches port listener pid
[OK] TimeOut value is correct : 300
[OK] HostnameLookups is Off
[OK] ServerSignature is Off
[..] KeepAlive is 'On'
[OK] MaxKeepAliveRequests is between 100 and 500 : 100
[OK] KeepAliveTimeout is less than 15 : 5
[..] 14 VirtualHost found : 8 on port 80, 6 on port 443
[OK] All virtualhost names are in /etc/hosts

-------- event MPM config parameters ---------------------------------------
[..] ServerLimit found : 21
[OK] MaxConnectionsPerChild / MaxRequestsPerChild is correct : 20000
[..] HTTP/2 is activated : HTTP/2 over TLS and HTTP/2 over TCP
[..] ThreadsPerChild found : 50
[..] ThreadLimit found : 50
[OK] ThreadLimit value is correct : 50
[..] MinSpareThreads found : 50
[..] MaxSpareThreads found : 150
[OK] MinSpareThreads value is correct : 
[OK] MaxSpareThreads value is correct : 150
[..] StartServers found : 2
[..] MaxRequestWorkers / MaxClients found : 1050
[OK] MaxRequestWorkers value is correct : 1050
[..] AsyncRequestWorkerFactor not found, using default value (2)

-------- Large log check ---------------------------------------------------
[OK] No large log files
[OK] MaxClients / MaxRequestWorkers hasn't been reached recently

-------- PHP-FPM -----------------------------------------------------------
[..] PHP-FPM parent process found (1) : 15074
[OK] PHP-FPM config files syntax is correct
[..] PHP-FPM pools found : 7
[..] PHP-FPM childs processes found : 25
[..] PHP-FPM CPU usage : 2.02%
[..] Total PHP-FPM memory usage : 42.0Mo
[..] Smallest PHP-FPM child memory usage : 2.8Mo
[..] Biggest PHP-FPM child memory usage : 6.4Mo
[..] Average PHP-FPM child memory usage : 4.5Mo
[..] PHP-FPM disk IO : 199o/s read, 171o/s write

-------- MySql check -------------------------------------------------------
[..] mysql user found, uid 108
[..] MySql process id found : 637 (/usr/sbin/mysqld)
[..] MySql threads found : 37
[..] MySql CPU usage : 3.08%
[..] MySql total memory usage : 487.5Mo
[..] Estimated MySql memory usage per connection : 3.3Mo
[..] MySql disk IO : 15Ko read, 12Ko write

-------- Apache child processes --------------------------------------------
[..] Detected child processes uid : 33 (www-data)
[..] Apache childs processes found : 2
[..] Apache CPU usage : 1.38%
[..] Apache disk IO : 5Ko/s read, 5Ko/s write
[OK] Parent process memory usage : 2.2Mo
[..] Total apache memory usage : 22.1Mo
[..] Smallest child memory usage : 19.9Mo
[..] Biggest child memory usage : 19.9Mo
[..] Average child memory usage : 19.9Mo

-------- Memory, CPU and IO considerations (all included) ------------------
[..] Estimated avg memory usage per apache child : 177.7Mo
[..] Estimated max memory usage per apache child : 193.1Mo
[OK] There is enough avalaible memory to support the actual average
     configuration of MaxRequestWorkers / MaxClients (1050) : (3.5Go/6.6Go)
[OK] There is enough avalaible memory to support the biggest usecase of
     MaxRequestWorkers / MaxClients (1050) : (3.8Go/6.6Go)
[..] Estimated avg CPU usage per Apache child : 6.48%
[OK] The CPU is fast enough to support the actual configuration of
     MaxRequestWorkers / MaxClients (1050) : (136.09% / 260%)
[..] Estimated avg disk IO per Apache child : 38.2Ko/s
[OK] The disk is fast enough to support the actual configuration of
     MaxRequestWorkers / MaxClients (1050) : (763.2Ko/1.2Mo)
[..] Maximum value for MaxRequestWorkers / MaxClients on this server is
     about 1500
[OK] MaxClients / MaxRequestWorkers (1050) is smaller than 1500

Utilisez --help pour obtenir la liste des options disponibles : php apachecheck.php --help

    -a       --apache-config   Display Apache config files content
    -c       --skip-cpu        Don't do CPU usage measures and checks
    -d       --skip-io         Don't do disk IO usage measures and checks
    -h       --help            Display this help and exit
    -i       --no-internet     Don't get IP and don't check for new version
    -l       --skip-log        Don't do large log checks
    -m       --skip-memory     Don't do memoru usage measures and checks
    -p port  --port=port       Change port (default 80)

Licence

Ce script est sous licence Apache License, Version 2.0. Vous ne pouvez utiliser ce script qu'en accord avec la licence. Vous pouvez obtenir une copie de la licence à l'adresse suivante : http://www.apache.org/licenses/LICENSE-2.0
Sauf si requis par loi applicable ou convenu par écrit, le script sous licence est distribué 'TEL QUEL', SANS GARANTIE NI CONDITIONS D'AUCUNE SORTE, expresses ou implicites. Consultez la Licence pour prendre connaissance des conditons spécifiques régissant les autorisations et les limitations en vertu de la Licence.

Donner
Vous pouvez utiliser, copier, modifier et redistribuer gratuitement, en accord avec la licence. Si vous voulez remercier le développeur, ou soutenir les développements futurs de ce script, vous pouvez utiliser le bouton ci-dessous pour faire un don.


Xulops Forge - Page about