Zoeken op website

Het hulpprogramma "PHP Server Monitor" installeren met LEMP of LAMP Stack in Arch Linux


PHP Server Monitor is een open source webfrontend-monitoringtool geschreven in PHP, die kan verifiëren of uw servers (IP, domeinen) of services actief zijn en u meldingen kan sturen via e-mailservices of sms als er een probleem is opgetreden op een bewaakte service of poort. Het controleert websites met behulp van HTTP-statuscode, kan geschiedenisgrafieken van uptime en latentie weergeven en kan twee authenticatieniveaus gebruiken (beheerder en gewone gebruiker).

Deze tutorial laat u zien hoe u PHP Server Monitor kunt installeren in een Arch Linux-serveromgeving, waarbij u Apache als server of Nginx-webserver kunt gebruiken. U kunt dus het installatieproces kiezen dat het beste bij u past.

Vereisten voor PHP-servermonitoring

Als algemene vereisten voor het installeren en instellen van PHP Server Monitor voor andere Linux-platforms, moet op uw server de volgende pakketten zijn geïnstalleerd.

  1. PHP5.3.7+
  2. PHP-pakketten: cURL, MySQL
  3. MySQL-database
  4. Nginx- of Apache-webservers

systeem vereisten

Om PHP Server Monitor met Nginx te installeren, gebruikt u de volgende tutorials als handleiding voor het instellen van LEMP-stack en virtuele hosts op Arch.

  1. Installeer LEMP (Linux, Nginx, MySQL, PHP) in Arch Linux
  2. Creëer Nginx virtuele hosts in Arch Linux

Om PHP Server Monitor met Apache te installeren, gebruikt u de volgende handleiding om de LAMP-stack op Arch Linux in te stellen.

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

Stap 1: Configureer Nginx/Apache-webserver

1. Voordat we beginnen: als uw installatie gebruikmaakt van virtuele hosting, moet u ervoor zorgen dat u een geldige DNS-invoer heeft die naar uw domein verwijst of het lokale hosts-bestand gebruiken als u dat niet doet. Ik heb geen DNS-server. Deze tutorial maakt gebruik van virtuele hosting met beide webservers (Nginx en Apache) geconfigureerd met een lokaal nep-domein – phpsrvmon.lan – via /etc/hosts bestand.

Maak Nginx virtuele hostconfiguratiebestanden

2. Om een nieuwe Nginx Virtual Host toe te voegen, maakt u een nieuw configuratiebestand op /etc/nginx/sites-available/ met phpsrvmon.conf naam en gebruik de volgende sjabloon als configuratievoorbeeld.

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

Voeg de volgende code toe aan het bestand 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. Als je toegang wilt krijgen tot PHP Sever Monitor via een beveiligd HTTP-protocol, maak dan het SSL-equivalente configuratiebestand aan.

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

Voeg de volgende code toe aan het bestand 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. Nadat u de Nginx-configuratiebestanden hebt bewerkt, maakt u het documenthoofdpad aan. Als u het zoals hier hebt gewijzigd in /srv/www/phpsrvmon/, activeert u beide virtuele hosts met n2ensite hulpprogramma en start Nginx opnieuw om de wijzigingen weer te geven.

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

Als u een nieuw SSL-certificaat nodig heeft voor uw virtuele host, genereer er dan een met de opdracht nginx_gen_ssl met uw domeinnaam en pas phpsrvmon-ssl.conf dienovereenkomstig aan.

Maak Apache Virtual Host-configuratiebestanden

5. Als u Apache als webserver gebruikt, maak dan een nieuw Virtual Host-configuratiebestand op /etc/httpd/conf/sites-available/ met phpsrvmon. conf naam en gebruik de volgende bestandsdefinities als sjabloon.

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

Voeg de volgende code toe aan het bestand 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. Als u ook toegang nodig heeft tot PHP Server Monitor op het HTTPS-protocol, maak dan een nieuw Virtual Host SSL-configuratiebestand met de volgende instructies.

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

Voeg de volgende volledige code toe aan het phpsrvmon-ssl.conf bestand.

<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. Gebruik dezelfde procedure als voor Nginx, maak de documenthoofdmap aan, voor het geval het pad van de webbestanden is gewijzigd, activeer Apache Virtual Hosts met de opdracht a2ensite en start de daemon opnieuw op wijzigingen toepassen.

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

Om een nieuw SSL-certificaat en een nieuwe sleutel voor deze virtuele host te genereren, gebruikt u het hulpprogramma apache_gen_ssl, voegt u uw domeinnaam toe aan de certificaatnaam en wijzigt u /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf -bestand, waarbij het oude SSL-certificaat en sleutelpad en de namen worden vervangen door nieuwe.

Stap 2: PHP-configuraties bewerken

8. Om enkele installatiefouten te voorkomen, zal PHP Server Monitor bij het verifiëren van de systeemvereisten het bestand php.ini openen en de volgende aanpassingen maken.

sudo nano /etc/php/php.ini

Als het hoofdpad van het Nginx/Apache-document is gewijzigd (de standaard is /srv/http/), gebruik dan [Ctrl+w] om open_basedir te vinden statement en voeg het nieuwe pad toe door er een dubbele punt aan toe te voegen “ : “ – in dit geval is het nieuwe pad /srv/www/ – zoals in het onderstaande voorbeeld.

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

Zoek en schakel PHP pdo-, mysqli- en curl-extensies in door ze te verwijderen (verwijder puntkomma van de voorkant).

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

Zoek de tijdzone en stel uw lokale tijd in via Deze pagina.

date.timezone = Continent/City

9. Nadat alle wijzigingen zijn aangebracht, start u uw services opnieuw op om de wijzigingen toe te passen.

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

Stap 3: Maak een PHP Server Monitor MySQL-database

10. Om de database te creëren die nodig is voor PHP Server Monitor om informatie op te slaan, logt u in op de MySQL/MariaDB-database en maakt u een nieuwe database met behulp van de volgende opdrachten (vervang database, gebruiker en wachtwoord door de inloggegevens van uw voorkeur).

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

Als PhpMyAdmin op uw systeem is geïnstalleerd, kunt u een PHP Server Monitor-database maken door MySQL/MariaDB te openen via de webinterface.

Stap 4: Installeer PHP Server Monitor

11. Voordat u doorgaat met het downloaden van de PHP Server Monitor-tool, moet u ervoor zorgen dat u de wget-opdracht hebt geïnstalleerd.

sudo pacman -S wget

12. Om de nieuwste PHP Server Monitor-versie te downloaden, gaat u naar de volgende link en downloadt u het tar.gz-archiefbestand of gebruikt u de officiële Git-downloadlink hieronder.

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

Als alternatief kunt u ook rechtstreeks downloaden met de volgende wget-opdracht.

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

13. Nadat u de nieuwste versie heeft gedownload, pakt u deze uit met de opdracht tar en kopieert u alle uitgepakte inhoud naar het hoofdpad van het webserverdocument met behulp van de volgende opdrachten.

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

14. Open vervolgens een browser en navigeer naar uw domeinnaam (in het geval dat u virtuele hosts gebruikt zoals gepresenteerd in deze tutorial, gebruik anders het IP-adres van uw server) en klik op de welkomstpagina op de knop Laten we gaan.

15. Op het volgende scherm voert u uw MySQL-databasegegevens in en klikt u op Configuratie opslaan.

16. Als u een foutmelding krijgt dat uw configuratiebestand niet geschreven kon worden, gebruikt u de volgende opdrachten om een beschrijfbaar confing.php-bestand te maken en klikt u op I heb de configuratie opgeslagen.

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

17. Nadat u de configuratie heeft opgeslagen, maakt u een beheerder aan voor PHP Server Monitor, kiest u uw inloggegevens en klikt u op de knop Installeren.

18. Nadat het installatieproces is voltooid, klikt u op de knop Ga naar uw monitor en u wordt doorgestuurd naar de inlogpagina. Log in met uw inloggegevens en u wordt gevraagd naar de standaard PHP Server Monitor-pagina. Zet ook wijzigingen in het PHP Server Monitor config.php bestand terug.

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

19. Om een nieuwe website voor monitoring toe te voegen, gaat u naar Servers -> Nieuwe toevoegen, vult u de verplichte velden in met uw serverinstellingen en klikt u op Opslaan.

20. Om het monitoringproces op alle servers en services te starten, klikt u op de knop Update. U wordt doorgestuurd naar de standaardstartpagina waar u de status van uw websites/services te zien krijgt.

21. Om PHP Server Monitor de status van uw servers/services automatisch met regelmatige tussenpozen te laten controleren, moet u een Cron taakplanner op uw systeem installeren en een monitoringtijd toevoegen periode-invoer in een cron-bestand.

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

22. Om een nieuw item toe te voegen aan het cron-bestand dat uw website elke 5 minuten controleert, gebruikt u de opdracht sudo crontab –e, of, beter nog, bewerkt u handmatig het root-cron-bestand dat zich in < b>/var/spool/cron/ map door het pad aan te passen zodat het overeenkomt met uw PHP Server Monitor-installatiemap. Om alle crontab-items weer te geven, gebruikt u de opdrachtregel sudo crontab -l.

sudo nano /var/spool/cron/root

Voeg het volgende item toe – pas de tijdsperiode en het installatiepad dienovereenkomstig aan

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

Conclusie

Hoewel PHP Server Monitor niet in complexiteit toeneemt zoals andere monitoringdiensten zoals Nagios, Cacti of Zabbix, heeft het de neiging erg weinig middelen te gebruiken verbruik en kan de taak vervullen als monitoringplatform door te configureren om e-mails of sms-berichten te verzenden via een uitgebreide sms-gatewaylijst, voor het geval uw bewaakte websites en services technische problemen ondervinden of niet beschikbaar zijn.

Startpagina: PHP-servermonitor