Vyhledávání na webu

Instalace nástroje "PHP Server Monitor" pomocí LEMP nebo LAMP Stack v Arch Linuxu


PHP Server Monitor je open source webový monitorovací nástroj napsaný v PHP, který dokáže ověřit, zda jsou vaše servery (IP, domény) nebo služby v provozu, a může vám zasílat upozornění prostřednictvím e-mailových služeb nebo SMS. pokud došlo k problému na monitorované službě nebo portu. Kontroluje webové stránky pomocí stavového kódu HTTP, může zobrazovat grafy historie dostupnosti a latence a může používat dvě úrovně autentizace (administrátor a běžný uživatel).

Tento tutoriál vám představuje způsob, jak nainstalovat PHP Server Monitor v prostředí serveru Arch Linux pomocí Apache jako serveru nebo webového serveru Nginx, takže si můžete vybrat proces instalace, který vám nejlépe vyhovuje.

Požadavky na PHP Server Monitor

Jako obecné požadavky na instalaci a nastavení PHP Server Monitor pro jakékoli jiné platformy Linuxu vyžaduje váš server nainstalované následující balíčky.

  1. PHP 5.3.7+
  2. PHP balíčky: cURL, MySQL
  3. MySQL databáze
  4. Webové servery Nginx nebo Apache

Požadavky na systém

Chcete-li nainstalovat PHP Server Monitor s Nginx, použijte následující návody jako průvodce nastavením zásobníku LEMP a virtuálních hostitelů na Arch.

  1. Nainstalujte LEMP (Linux, Nginx, MySQL, PHP) v Arch Linuxu
  2. Vytvořte virtuální hostitele Nginx v Arch Linuxu

Chcete-li nainstalovat PHP Server Monitor s Apache, použijte následující průvodce pro nastavení zásobníku LAMP na Arch Linux.

  1. Nainstalujte LAMP (Linux, Apache, MySQL, PHP) v Arch Linuxu

Krok 1: Nakonfigurujte webový server Nginx/Apache

1. Než začneme, pokud vaše nastavení používá virtuální hostování, musíte se ujistit, že máte platný záznam DNS směřující na vaši doménu, nebo použít místní soubor hosts pro případ, že nemáte nemám server DNS. Tento výukový program používá virtuální hosting s oběma webovými servery (Nginx a Apache) nakonfigurovanými s falešnou místní doménou – phpsrvmon.lan – prostřednictvím /etc/hosts.

Vytvořte konfigurační soubory virtuálního hostitele Nginx

2. Chcete-li přidat nového virtuálního hostitele Nginx, vytvořte nový konfigurační soubor na /etc/nginx/sites-available/ pomocí phpsrvmon.conf název a použijte následující šablonu jako příklad konfigurace.

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

Přidejte následující kód do souboru 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. Pokud chcete přistupovat k PHP Sever Monitor prostřednictvím zabezpečeného protokolu HTTP, vytvořte jeho konfigurační soubor ekvivalentní SSL.

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

Přidejte následující kód do souboru 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. Po úpravě souborů Nginx conf vytvořte cestu ke kořenu dokumentu, v případě, že jste ji změnili jako zde na /srv/www/phpsrvmon/, aktivujte oba virtuální hostitele pomocí n2ensite a restartujte Nginx, aby se změny projevily.

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

Pokud pro svého virtuálního hostitele požadujete nový certifikát SSL, vygenerujte jej pomocí příkazu nginx_gen_ssl s názvem vaší domény a podle toho upravte phpsrvmon-ssl.conf.

Vytvořte konfigurační soubory virtuálního hostitele Apache

5. Pokud používáte Apache jako webový server, vytvořte nový konfigurační soubor virtuálního hostitele na /etc/httpd/conf/sites-available/ pomocí phpsrvmon. confjméno a použijte následující definice souborů jako šablonu.

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

Přidejte následující kód do souboru 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. Pokud také potřebujete přístupový PHP Server Monitor na protokolu HTTPS, vytvořte nový konfigurační soubor Virtual Host SSL s následujícími příkazy.

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

Přidejte následující celý kód do souboru 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. Stejným postupem jako pro Nginx vytvořte kořenový adresář dokumentu, v případě, že se změnila cesta k obsluhovaným webovým souborům, aktivujte virtuální hostitele Apache pomocí příkazu a2ensite a restartujte démona, aby aplikuj změny.

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

Chcete-li vygenerovat nový certifikát SSL a klíč pro tohoto virtuálního hostitele, použijte nástroj apache_gen_ssl, připojte název své domény k názvu certifikátu a upravte /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf nahrazující starý certifikát SSL a cestu a názvy klíče novými.

Krok 2: Upravte konfiguraci PHP

8. Aby se předešlo některým chybám při instalaci, tento PHP Server Monitor vyvolá, když ověří systémové požadavky, otevřete soubor php.ini a proveďte následující úpravy.

sudo nano /etc/php/php.ini

Pokud byla změněna kořenová cesta dokumentu Nginx/Apache (výchozí je /srv/http/), použijte [Ctrl+w] k nalezení open_basedir a přidejte novou cestu předponou dvojtečkou „ : “ – v tomto případě je nová cesta /srv/www/ – vypadá jako v příkladu níže.

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

Vyhledejte a povolte rozšíření PHP pdo, mysqli a curl jejich zrušením komentáře (odstraňte středník z jejich přední strany).

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

Vyhledejte časové pásmo a nastavte místní čas pomocí této stránky.

date.timezone = Continent/City

9. Po provedení všech změn restartujte služby, aby se změny projevily.

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

Krok 3: Vytvořte databázi PHP Server Monitor MySQL

10. Chcete-li vytvořit databázi potřebnou pro PHP Server Monitor k ukládání informací, přihlaste se k databázi MySQL/MariaDB a vytvořte novou databázi pomocí následujících příkazů (nahraďte databázi, uživatele a heslo vámi preferovanými přihlašovacími údaji).

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

Pokud máte na svém systému nainstalovaný PhpMyAdmin, můžete vytvořit databázi PHP Server Monitor přístupem k MySQL/MariaDB z jejího webového rozhraní.

Krok 4: Nainstalujte PHP Server Monitor

11. Než budete pokračovat ve stahování nástroje PHP Server Monitor, ujistěte se, že máte nainstalovaný příkaz wget.

sudo pacman -S wget

12. Chcete-li získat nejnovější verzi PHP Server Monitor, přejděte na následující odkaz a stáhněte si archivní soubor tar.gz nebo použijte oficiální odkaz ke stažení Git uvedený níže.

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

Případně můžete také stáhnout přímo pomocí následujícího příkazu wget.

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

13. Po stažení nejnovější verze ji rozbalte pomocí příkazu tar a zkopírujte veškerý extrahovaný obsah do kořenové cesty dokumentu webového serveru pomocí následujících příkazů.

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

14. Poté otevřete prohlížeč a přejděte na název své domény (v případě, že používáte virtuální hostitele, jak je uvedeno v tomto návodu, jinak použijte IP adresu svého serveru) a na uvítací stránce stiskněte tlačítko Pojďme.

15. Na další obrazovce zadejte informace o databázi MySQL a klikněte na Uložit konfiguraci.

16. Pokud se zobrazí chyba, že váš konfigurační soubor nelze zapsat, použijte následující příkazy k vytvoření zapisovatelného souboru confing.php a stiskněte I uložili konfiguraci.

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

17. Po uložení konfigurace vytvořte administrátora pro PHP Server Monitor, vyberte své přihlašovací údaje a stiskněte tlačítko Instalovat.

18. Po dokončení procesu instalace stiskněte tlačítko Přejít na monitor a budete přesměrováni na přihlašovací stránku. Přihlaste se pomocí svých přihlašovacích údajů a budete vyzváni k zobrazení výchozí stránky PHP Server Monitor. Také vrátit změny v souboru PHP Server Monitor config.php.

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

19. Chcete-li přidat nový web pro monitorování, přejděte na Servery -> Přidat nový, vyplňte požadovaná pole nastavením serveru a stiskněte Uložit.

20. Chcete-li zahájit proces monitorování na všech serverech a službách, stiskněte tlačítko Aktualizovat a budete přesměrováni na výchozí domovskou stránku, kde se zobrazí stav vašich webových stránek/služeb.

21. Aby PHP Server Monitor automaticky kontroloval stav vašich serverů/služeb v pravidelných časových intervalech, musíte si do systému nainstalovat plánovač úloh Cron a přidat čas sledování záznam období v souboru cron.

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

22. Chcete-li přidat nový záznam do souboru cron, který každých 5 minut kontroluje váš web, použijte příkaz sudo crontab –e nebo, lépe, ručně upravte kořenový soubor cron umístěný v < b>/var/spool/cron/ úpravou cesty tak, aby odpovídala vašemu instalačnímu adresáři PHP Server Monitor. Chcete-li zobrazit všechny položky crontab, použijte příkazový řádek sudo crontab -l.

sudo nano /var/spool/cron/root

Přidejte následující položku – podle toho upravte časové období a cestu instalace

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

Závěr

Přestože PHP Server Monitor není tak složitý jako ostatní monitorovací služby jako Nagios, Cacti nebo Zabbix, má tendenci být velmi nenáročný na zdroje. spotřebu a může plnit úlohu monitorovací platformy konfigurací pro odesílání e-mailů nebo textových SMS prostřednictvím rozsáhlého seznamu SMS bran v případě, že vaše monitorované webové stránky a služby narazí na technické problémy nebo jsou mimo provoz.

Domovská stránka: PHP Server Monitor