Website-Suche

Installieren des Tools „PHP Server Monitor“ mit LEMP oder LAMP Stack in Arch Linux


PHP Server Monitor ist ein in PHP geschriebenes Open-Source-Web-Frontend-Überwachungstool, das überprüfen kann, ob Ihre Server (IP, Domänen) oder Dienste betriebsbereit sind, und Ihnen Benachrichtigungen per E-Mail-Dienste oder SMS senden kann wenn bei einem überwachten Dienst oder Port ein Problem aufgetreten ist. Es überprüft Websites mithilfe des HTTP-Statuscodes, kann Verlaufsdiagramme der Betriebszeit und Latenz anzeigen und zwei Authentifizierungsebenen verwenden (Administrator und normaler Benutzer).

Dieses Tutorial zeigt Ihnen, wie Sie PHP Server Monitor in einer Arch Linux-Serverumgebung installieren können, egal ob Apache als Server oder Nginx-Webserver. So können Sie den Installationsprozess auswählen, der am besten zu Ihnen passt.

Anforderungen für den PHP-Servermonitor

Als allgemeine Voraussetzungen für die Installation und Einrichtung von PHP Server Monitor für alle anderen Linux-Plattformen müssen auf Ihrem Server die folgenden Pakete installiert sein.

  1. PHP 5.3.7+
  2. PHP-Pakete: cURL, MySQL
  3. MySQL-Datenbank
  4. Nginx- oder Apache-Webserver

System Anforderungen

Um PHP Server Monitor mit Nginx zu installieren, verwenden Sie die folgenden Tutorials als Anleitungen zum Einrichten des LEMP-Stacks und virtueller Hosts auf Arch.

  1. Installieren Sie LEMP (Linux, Nginx, MySQL, PHP) in Arch Linux
  2. Erstellen Sie virtuelle Nginx-Hosts in Arch Linux

Um PHP Server Monitor mit Apache zu installieren, verwenden Sie die folgende Anleitung zum Einrichten des LAMP-Stacks unter Arch Linux.

  1. Installieren Sie LAMP (Linux, Apache, MySQL, PHP) in Arch Linux

Schritt 1: Konfigurieren Sie den Nginx/Apache-Webserver

1. Bevor wir beginnen: Wenn Ihr Setup virtuelles Hosting verwendet, müssen Sie sicherstellen, dass Sie über einen gültigen DNS-Eintrag verfügen, der auf Ihre Domain verweist, oder die lokale hosts-Datei verwenden, falls Sie dies nicht tun. Ich habe keinen DNS-Server. Dieses Tutorial verwendet virtuelles Hosting mit beiden Webservern (Nginx und Apache), die mit einer lokalen Domänenfälschung – phpsrvmon.lan – bis konfiguriert sind /etc/hosts-Datei.

Erstellen Sie Nginx Virtual Host-Konfigurationsdateien

2. Um einen neuen virtuellen Nginx-Host hinzuzufügen, erstellen Sie eine neue Konfigurationsdatei unter /etc/nginx/sites-available/ mit phpsrvmon.conf Benennen Sie die folgende Vorlage und verwenden Sie sie als Konfigurationsbeispiel.

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

Fügen Sie den folgenden Code zur Datei phpsrvmon.conf hinzu.

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. Wenn Sie über ein sicheres HTTP-Protokoll auf PHP Sever Monitor zugreifen möchten, erstellen Sie die entsprechende SSL-Konfigurationsdatei.

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

Fügen Sie den folgenden Code zur Datei phpsrvmon-ssl.conf hinzu.

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. Nachdem Sie die Nginx-Conf-Dateien bearbeitet haben, erstellen Sie den Dokument-Root-Pfad. Falls Sie ihn wie hier in /srv/www/phpsrvmon/ geändert haben, aktivieren Sie beide virtuellen Hosts mit n2ensite-Dienstprogramm und starten Sie Nginx neu, um die Änderungen zu übernehmen.

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

Wenn Sie ein neues SSL-Zertifikat für Ihren virtuellen Host benötigen, generieren Sie eines mit dem Befehl nginx_gen_ssl mit Ihrem Domänennamen und ändern Sie phpsrvmon-ssl.conf entsprechend.

Erstellen Sie Apache Virtual Host-Konfigurationsdateien

5. Wenn Sie Apache als Webserver verwenden, erstellen Sie eine neue Virtual Host-Konfigurationsdatei unter /etc/httpd/conf/sites-available/ mit phpsrvmon. conf benennen und die folgenden Dateidefinitionen als Vorlage verwenden.

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

Fügen Sie den folgenden Code zur Datei phpsrvmon.conf hinzu.

<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. Wenn Sie auch einen Zugriff auf PHP Server Monitor über das HTTPS-Protokoll benötigen, erstellen Sie eine neue Virtual Host SSL-Konfigurationsdatei mit den folgenden Anweisungen.

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

Fügen Sie den folgenden vollständigen Code zur Datei phpsrvmon-ssl.conf hinzu.

<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. Erstellen Sie mit dem gleichen Verfahren wie für Nginx ein Dokumentstammverzeichnis. Falls sich der Pfad der bereitgestellten Webdateien geändert hat, aktivieren Sie Apache Virtual Hosts mit dem Befehl a2ensite und starten Sie den Daemon neu Änderungen übernehmen.

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

Um ein neues SSL-Zertifikat und einen neuen SSL-Schlüssel für diesen virtuellen Host zu generieren, verwenden Sie das Dienstprogramm apache_gen_ssl, hängen Sie Ihren Domänennamen an den Zertifikatnamen an und ändern Sie /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf -Datei, wobei alte SSL-Zertifikate und Schlüsselpfade und -namen durch neue ersetzt werden.

Schritt 2: PHP-Konfigurationen bearbeiten

8. Um einige Installationsfehler zu vermeiden, öffnet der PHP Server Monitor bei der Überprüfung der Systemanforderungen die Datei php.ini und nimmt die folgenden Anpassungen vor.

sudo nano /etc/php/php.ini

Wenn der Nginx/Apache-Dokument-Root-Pfad geändert wurde (der Standardpfad ist /srv/http/), verwenden Sie [Strg+w], um open_basedir zu finden Anweisung und hängen Sie den neuen Pfad an, indem Sie ihm einen Doppelpunkt „ : “ voranstellen – in diesem Fall lautet der neue Pfad /srv/www/ – um wie im folgenden Beispiel auszusehen.

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

Suchen und aktivieren Sie PHP-PDO-, MySQLI- und Curl-Erweiterungen, indem Sie sie auskommentieren (Semikolon von der Vorderseite entfernen).

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

Suchen Sie die Zeitzone und stellen Sie Ihre Ortszeit mithilfe dieser Seite ein.

date.timezone = Continent/City

9. Nachdem alle Änderungen vorgenommen wurden, starten Sie Ihre Dienste neu, um die Änderungen zu übernehmen.

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

Schritt 3: Erstellen Sie eine PHP Server Monitor MySQL-Datenbank

10. Um die Datenbank zu erstellen, die PHP Server Monitor zum Speichern von Informationen benötigt, melden Sie sich bei der MySQL/MariaDB-Datenbank an und erstellen Sie eine neue Datenbank mit den folgenden Befehlen (ersetzen Sie Datenbank, Benutzer und Passwort durch Ihre bevorzugten Anmeldeinformationen).

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

Wenn Sie PhpMyAdmin auf Ihrem System installiert haben, können Sie eine PHP Server Monitor-Datenbank erstellen, indem Sie über die Weboberfläche auf MySQL/MariaDB zugreifen.

Schritt 4: Installieren Sie PHP Server Monitor

11. Bevor Sie mit dem Herunterladen des PHP Server Monitor-Tools fortfahren, stellen Sie sicher, dass Sie den Befehl wget installiert haben.

sudo pacman -S wget

12. Um die neueste PHP Server Monitor-Version zu erhalten, gehen Sie auf den folgenden Link und laden Sie die Archivdatei tar.gz herunter oder verwenden Sie den unten angegebenen offiziellen Git-Download-Link.

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

Alternativ können Sie den Download auch direkt mit dem folgenden wget-Befehl durchführen.

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

13. Nachdem Sie die neueste Version heruntergeladen haben, extrahieren Sie sie mit dem Befehl tar und kopieren Sie den gesamten extrahierten Inhalt mit den folgenden Befehlen in den Root-Pfad des Webserver-Dokuments.

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

14. Öffnen Sie dann einen Browser und navigieren Sie zu Ihrem Domainnamen (falls Sie virtuelle Hosts wie in diesem Tutorial beschrieben verwenden, verwenden Sie andernfalls Ihre Server-IP-Adresse) und klicken Sie auf der Begrüßungsseite auf die Schaltfläche „Los geht's“.

15. Geben Sie im nächsten Bildschirm Ihre MySQL-Datenbankinformationen ein und klicken Sie auf Konfiguration speichern.

16. Wenn Sie eine Fehlermeldung erhalten, die besagt, dass Ihre Konfigurationsdatei nicht geschrieben werden konnte, verwenden Sie die folgenden Befehle, um eine beschreibbare confing.php-Datei zu erstellen, und klicken Sie auf I Habe die Konfiguration gespeichert.

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

17. Erstellen Sie nach dem Speichern der Konfiguration einen Administratorbenutzer für PHP Server Monitor, wählen Sie Ihre Anmeldeinformationen aus und klicken Sie auf die Schaltfläche Installieren.

18. Nachdem der Installationsvorgang abgeschlossen ist, klicken Sie auf die Schaltfläche Gehe zu Ihrem Monitor und Sie werden zur Anmeldeseite weitergeleitet. Melden Sie sich mit Ihren Anmeldeinformationen an und Sie werden zur Standardseite von PHP Server Monitor weitergeleitet. Machen Sie auch Änderungen an der PHP Server Monitor-Datei config.php rückgängig.

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

19. Um eine neue Website zur Überwachung hinzuzufügen, gehen Sie zu Server -> Neu hinzufügen, füllen Sie die erforderlichen Felder mit Ihren Servereinstellungen aus und klicken Sie auf Speichern.

20. Um den Überwachungsprozess auf allen Servern und Diensten zu starten, klicken Sie auf die Schaltfläche Aktualisieren. Sie werden dann zur Standard-Startseite weitergeleitet, auf der Ihnen der Status Ihrer Websites/Dienste angezeigt wird.

21. Damit PHP Server Monitor den Status Ihrer Server/Dienste in regelmäßigen Zeitabständen automatisch überprüfen kann, müssen Sie einen Cron-Jobplaner auf Ihrem System installieren und eine Überwachungszeit hinzufügen Periodeneintrag in einer Cron-Datei.

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

22. Um einen neuen Eintrag in der Cron-Datei hinzuzufügen, der Ihre Website alle 5 Minuten überprüft, verwenden Sie den Befehl sudo crontab –e, oder, besser, bearbeiten Sie die Root-Cron-Datei in < manuell b>/var/spool/cron/ Verzeichnis, indem Sie den Pfad so anpassen, dass er mit Ihrem PHP Server Monitor-Installationsverzeichnis übereinstimmt. Um alle Crontab-Einträge aufzulisten, verwenden Sie die Befehlszeile sudo crontab -l.

sudo nano /var/spool/cron/root

Fügen Sie den folgenden Eintrag hinzu – passen Sie Zeitraum und Installationspfad entsprechend an

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

Abschluss

Obwohl PHP Server Monitor nicht komplexer wird als andere Überwachungsdienste wie Nagios, Cacti oder Zabbix, ist es tendenziell sehr ressourcenschonend Verbrauch und kann die Aufgabe als Überwachungsplattform erfüllen, indem es so konfiguriert wird, dass E-Mails oder Text-SMS über eine umfangreiche SMS-Gateway-Liste gesendet werden, falls bei Ihren überwachten Websites und Diensten technische Probleme auftreten oder sie ausfallen.

Homepage: PHP Server Monitor