Recherche de site Web

Installation de l'outil "PHP Server Monitor" à l'aide de LEMP ou LAMP Stack dans Arch Linux


PHP Server Monitor est un outil de surveillance Web Open Source écrit en PHP, qui peut vérifier si vos serveurs (IP, domaines) ou services sont opérationnels et peut vous envoyer des notifications via des services de messagerie ou SMS. si un problème est survenu sur un service ou un port surveillé. Il vérifie les sites Web à l'aide du code d'état HTTP, peut afficher des graphiques historiques de disponibilité et de latence et peut utiliser deux niveaux d'authentification (administrateur et utilisateur régulier).

Ce didacticiel vous présente une manière d'installer PHP Server Monitor dans un environnement de serveur Arch Linux en utilisant Apache comme serveur ou Nginx comme serveur Web. vous pouvez donc choisir le processus d'installation qui vous convient le mieux.

Exigences du moniteur de serveur PHP

En tant que configuration générale requise pour installer et configurer PHP Server Monitor pour toute autre plate-forme Linux, votre serveur doit installer les packages suivants.

  1. PHP5.3.7+
  2. Packages PHP : cURL, MySQL
  3. Base de données MySQL
  4. Serveurs Web Nginx ou Apache

Configuration requise

Pour installer PHP Server Monitor avec Nginx, utilisez les didacticiels suivants comme guides pour configurer la pile LEMP et les hôtes virtuels sur Arch.

  1. Installez LEMP (Linux, Nginx, MySQL, PHP) dans Arch Linux
  2. Créer des hôtes virtuels Nginx dans Arch Linux

Pour installer PHP Server Monitor avec Apache, utilisez le guide suivant pour configurer la pile LAMP sur Arch Linux.

  1. Installer LAMP (Linux, Apache, MySQL, PHP) dans Arch Linux

Étape 1 : configurer le serveur Web Nginx/Apache

1. Avant de commencer, si votre configuration utilise l'hébergement virtuel, vous devez vous assurer que vous disposez d'une entrée DNS valide pointant vers votre domaine ou utiliser un fichier hosts local au cas où vous ne le feriez pas. Je n'ai pas de serveur DNS. Ce didacticiel utilise l'hébergement virtuel avec les deux serveurs Web (Nginx et Apache) configurés avec un faux domaine local – phpsrvmon.lan – via /etc/hosts.

Créer des fichiers de configuration d'hôte virtuel Nginx

2. Pour ajouter un nouvel hôte virtuel Nginx, créez un nouveau fichier de configuration sur /etc/nginx/sites-available/ avec phpsrvmon.conf nom et utilisez le modèle suivant comme exemple de configuration.

sudo nano /etc/nginx/sites-available/phpsrvmon.conf

Ajoutez le code suivant au fichier phpsrvmon.conf.

server {
    listen 80;
    server_name phpsrvmon.lan;

    access_log /var/log/nginx/phpsrvmon.lan-access.log;
    error_log /var/log/nginx/phpsrvmon.lan-error.log;

                root /srv/www/phpsrvmon;

    location / {
    index index.php index.html index.htm;
                autoindex on;
}

location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

3. Si vous souhaitez accéder à PHP Sever Monitor via le protocole HTTP sécurisé, créez son fichier de configuration équivalent SSL.

sudo nano /etc/nginx/sites-available/phpsrvmon-ssl.conf

Ajoutez le code suivant au fichier phpsrvmon-ssl.conf.

server {
    listen 443 ssl;
    server_name phpsrvmon.lan;

       root /srv/www/phpsrvmon;
       ssl_certificate     /etc/nginx/ssl/nginx.crt;
       ssl_certificate_key  /etc/nginx/ssl/nginx.key;
       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;
       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers  on;

    access_log /var/log/nginx/phpsrvmon.lan-ssl_access.log;
    error_log /var/log/nginx/phpsrvmon.lan-ssl_error.log;

    location / {
    index index.php index.html index.htm;
                autoindex on;
 }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

4. Après avoir modifié les fichiers de configuration Nginx, créez le chemin racine du document, au cas où vous l'auriez modifié comme ici en /srv/www/phpsrvmon/, activez les deux hôtes virtuels en utilisant n2ensite et redémarrez Nginx pour refléter les modifications.

sudo mkdir -p /srv/www/phpsrvmon/
sudo n2ensite phpsrvmon
sudo n2ensite phpsrvmon-ssl
sudo systemctl restart nginx

Si vous avez besoin d'un nouveau certificat SSL pour votre hôte virtuel, générez-en un à l'aide de la commande nginx_gen_ssl avec votre nom de domaine et modifiez phpsrvmon-ssl.conf en conséquence.

Créer des fichiers de configuration d'hôte virtuel Apache

5. Si vous utilisez Apache comme serveur Web, créez un nouveau fichier de configuration d'hôte virtuel sur /etc/httpd/conf/sites-available/ avec phpsrvmon. conf et utilisez les définitions de fichiers suivantes comme modèle.

sudo nano /etc/httpd/conf/sites-available/phpsrvmon.conf

Ajoutez le code suivant au fichier phpsrvmon.conf.

<VirtualHost *:80>
                DocumentRoot "/srv/www/phpsrvmon"
                ServerName phpsrvmon.lan
                ServerAdmin [email 
                ErrorLog "/var/log/httpd/phpsrvmon-error_log"
                TransferLog "/var/log/httpd/phpsrvmon-access_log"

<Directory />
    Options +Indexes
    AllowOverride All
    Order deny,allow
    Allow from all
Require all granted
</Directory>
</VirtualHost>

6. Si vous avez également besoin d'un accès PHP Server Monitor sur le protocole HTTPS, créez un nouveau fichier de configuration SSL Virtual Host avec les instructions suivantes.

sudo nano /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf

Ajoutez le code complet suivant au fichier phpsrvmon-ssl.conf.

<VirtualHost *:443>
                ServerName phpsrvmon.lan
                DocumentRoot "/srv/www/phpsrvmon"
                ServerAdmin [email 
                ErrorLog "/var/log/httpd/phpsrvmon.lan-error_log"
                TransferLog "/var/log/httpd/phpsrvmon.lan-access_log"

SSLEngine on
SSLCertificateFile "/etc/httpd/conf/ssl/phpsrvmon.lan.crt"
SSLCertificateKeyFile "/etc/httpd/conf/ssl/phpsrvmon.lan.key"

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>

BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog "/var/log/httpd/ssl_request_log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

<Directory />
    Options +Indexes
    AllowOverride All
    Order deny,allow
    Allow from all
Require all granted
</Directory>
</VirtualHost>

7. En utilisant la même procédure que pour Nginx, créez le répertoire racine du document. Si le chemin des fichiers Web servis a changé, activez les hôtes virtuels Apache à l'aide de la commande a2ensite et redémarrez le démon pour appliquer les modifications.

sudo mkdir -p /srv/www/phpsrvmon/
sudo a2ensite phpsrvmon
sudo a2ensite phpsrvmon-ssl
sudo systemctl restart httpd

Pour générer un nouveau certificat SSL et une nouvelle clé pour cet hôte virtuel, utilisez l'utilitaire apache_gen_ssl, ajoutez votre nom de domaine au nom du certificat et modifiez /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf , en remplaçant les anciens certificats SSL, chemins d'accès et noms de clé par de nouveaux.

Étape 2 : Modifier les configurations PHP

8. Afin d'éviter certaines erreurs d'installation, PHP Server Monitor lancera lorsqu'il vérifiera la configuration système requise, ouvrira le fichier php.ini et effectuera les ajustements suivants.

sudo nano /etc/php/php.ini

Si le chemin racine du document Nginx/Apache a été modifié (le chemin par défaut est /srv/http/), utilisez [Ctrl+w] pour localiser open_basedir. et ajoutez le nouveau chemin en préfixant par deux points «  :  » – dans ce cas, le nouveau chemin est /srv/www/ – pour ressembler à l'exemple ci-dessous.

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/srv/www/

Recherchez et activez les extensions PHP pdo, mysqli et curl en les décommentant (supprimez le point-virgule de leur devant).

extension=curl.so
extension=mysqli.so
extension=pdo_mysql.so

Localisez le fuseau horaire et définissez votre heure locale en utilisant cette page.

date.timezone = Continent/City

9. Une fois toutes les modifications apportées, redémarrez vos services pour appliquer les modifications.

sudo systemctl restart php-fpm
sudo systemctl restart nginx
sudo systemctl restart httpd

Étape 3 : Créer la base de données MySQL du moniteur de serveur PHP

10. Pour créer la base de données nécessaire à PHP Server Monitor pour stocker les informations, connectez-vous à la base de données MySQL/MariaDB et créez une nouvelle base de données à l'aide des commandes suivantes (remplacez la base de données, l'utilisateur et le mot de passe par vos informations d'identification préférées).

mysql -u root -p

MariaDB > create database phpsrvmon;
MariaDB > create user phpsrvmon_user@localhost identified by "user_password";
MariaDB > grant all privileges on phpsrvmon.* to phpsrvmon_user@localhost;
MariaDB > flush privileges;
MariaDB > quit

Si PhpMyAdmin est installé sur votre système, vous pouvez créer la base de données PHP Server Monitor en accédant à MySQL/MariaDB depuis son interface Web.

Étape 4 : Installer PHP Server Monitor

11. Avant de procéder au téléchargement de l'outil PHP Server Monitor, assurez-vous d'avoir installé la commande wget.

sudo pacman -S wget

12. Pour récupérer la dernière version de PHP Server Monitor, accédez au lien suivant et téléchargez le fichier d'archive tar.gz ou utilisez le lien de téléchargement officiel de Git fourni ci-dessous.

  1. http://www.phpservermonitor.org/download/
  2. https://github.com/phpservermon/phpservermon

Vous pouvez également télécharger directement à l’aide de la commande wget suivante.

wget http://downloads.sourceforge.net/project/phpservermon/phpservermon/PHP%20Server%20Monitor%20v3.0.1/phpservermon-v3.0.1.tar.gz

13. Après avoir téléchargé la dernière version, extrayez-la avec la commande tar et copiez tout le contenu extrait dans le chemin racine du document du serveur Web à l'aide des commandes suivantes.

tar xfvz phpservermon-v3.0.1.tar.gz
sudo cp -r phpservermon/* /srv/www/phpsrvmon/

14. Ensuite, ouvrez un navigateur et accédez à votre nom de domaine (si vous utilisez des hôtes virtuels comme présenté dans ce tutoriel, sinon utilisez l'adresse IP de votre serveur) et sur la page de vœux, cliquez sur le bouton Allons-y.

15. Sur l'écran suivant, saisissez les informations de votre base de données MySQL et cliquez sur Enregistrer la configuration.

16. Si vous obtenez une erreur indiquant que votre fichier de configuration n'a pas pu être écrit, utilisez les commandes suivantes pour créer un fichier confing.php inscriptible et appuyez sur I avoir enregistré la configuration.

su -c “> /srv/www/phpsrvmon/config.php”
sudo chmod 777 /srv/www/phpsrvmon/config.php

17. Après avoir enregistré la configuration, créez un utilisateur administratif pour PHP Server Monitor en choisissant vos informations d'identification et cliquez sur le bouton Installer.

18. Une fois le processus d'installation terminé, cliquez sur le bouton Aller sur votre moniteur et vous serez redirigé vers la page de connexion. Connectez-vous avec vos informations d'identification et vous serez invité à accéder à la page PHP Server Monitor par défaut. Annulez également les modifications apportées au fichier config.php de PHP Server Monitor.

sudo chmod 754 /srv/www/phpsrvmon/config.php

19. Pour ajouter un nouveau site Web à surveiller, allez dans Serveurs -> Ajouter un nouveau, remplissez les champs obligatoires avec les paramètres de votre serveur et cliquez sur Enregistrer.

20. Pour démarrer le processus de surveillance sur tous les serveurs et services, cliquez sur le bouton Mettre à jour et vous serez redirigé vers la page d'accueil par défaut où l'état de vos sites Web/services vous sera présenté.

21. Pour que PHP Server Monitor vérifie automatiquement l'état de vos serveurs/services à intervalles réguliers, vous devez installer un planificateur de tâches Cron sur votre système et ajouter une heure de surveillance. entrée de période dans un fichier cron.

sudo pacman -S cronie
sudo systemctl start cronie
sudo systemctl enable cronie

22. Pour ajouter une nouvelle entrée dans le fichier cron qui vérifie votre site Web toutes les 5 minutes, utilisez la commande sudo crontab –e, ou, mieux, modifiez manuellement le fichier cron racine situé dans < b>/var/spool/cron/ en ajustant le chemin pour qu'il corresponde à votre répertoire d'installation de PHP Server Monitor. Pour lister toutes les entrées crontab, utilisez la ligne de commande sudo crontab -l.

sudo nano /var/spool/cron/root

Ajoutez l'entrée suivante - ajustez la période de temps et le chemin d'installation en conséquence

*/5 * * * * /usr/bin/php   /srv/www/phpsrvmon/cron/status.cron.php

Conclusion

Bien que PHP Server Monitor ne soit pas plus complexe que d'autres services de surveillance comme Nagios, Cacti ou Zabbix, il a tendance à être très léger en ressources. consommation et peut remplir le rôle de plate-forme de surveillance en configurant l'envoi d'e-mails ou de SMS via une vaste liste de passerelles SMS, au cas où vos sites Web et services surveillés rencontreraient des problèmes techniques ou seraient en panne.

Page d'accueil : Moniteur de serveur PHP