Ricerca nel sito web

Installazione dello strumento "PHP Server Monitor" utilizzando LEMP o LAMP Stack in Arch Linux


PHP Server Monitor è uno strumento di monitoraggio frontend web open source scritto in PHP, in grado di verificare se i tuoi server (IP, domini) o servizi sono attivi e funzionanti e può inviarti notifiche tramite servizi di posta o SMS se si è verificato un problema su un servizio o una porta monitorata. Controlla i siti Web utilizzando il codice di stato HTTP, può visualizzare i grafici storici di uptime e latenza e può utilizzare due livelli di autenticazione (amministratore e utente normale).

Questo tutorial presenta un modo per installare PHP Server Monitor in un ambiente server Arch Linux utilizzando Apache come server o server web Nginx, quindi puoi scegliere il processo di installazione più adatto a te.

Requisiti per il monitoraggio del server PHP

Come requisiti generali per installare e configurare PHP Server Monitor per qualsiasi altra piattaforma Linux, il tuo server necessita dell'installazione dei seguenti pacchetti.

  1. PHP 5.3.7+
  2. Pacchetti PHP: cURL, MySQL
  3. Database MySQL
  4. Server web Nginx o Apache

Requisiti di sistema

Per installare PHP Server Monitor con Nginx utilizzare i seguenti tutorial come guide per configurare lo stack LEMP e gli host virtuali su Arch.

  1. Installa LEMP (Linux, Nginx, MySQL, PHP) in Arch Linux
  2. Crea host virtuali Nginx in Arch Linux

Per installare PHP Server Monitor con Apache utilizzare la seguente guida per configurare lo stack LAMP su Arch Linux.

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

Passaggio 1: configurare il server Web Nginx/Apache

1. Prima di iniziare, se la tua configurazione utilizza l'hosting virtuale devi assicurarti di avere una voce DNS valida che punti al tuo dominio o utilizzare il file hosts locale nel caso in cui non lo fai Non avere un server DNS. Questo tutorial utilizza Hosting Virtuale con entrambi i server web (Nginx e Apache) configurati con un dominio locale falso – phpsrvmon.lan – tramite /etc/hosts.

Crea file di configurazione dell'host virtuale Nginx

2. Per aggiungere un nuovo host virtuale Nginx, crea un nuovo file di configurazione su /etc/nginx/sites-available/ con phpsrvmon.conf nome e utilizzare il modello seguente come esempio di configurazione.

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

Aggiungi il seguente codice al file 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. Se desideri accedere a PHP Sever Monitor tramite il protocollo HTTP sicuro, crea il file di configurazione equivalente SSL.

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

Aggiungi il seguente codice al file 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. Dopo aver modificato i file conf di Nginx, crea il percorso Document Root, nel caso in cui lo hai modificato come qui in /srv/www/phpsrvmon/, attiva entrambi gli host virtuali utilizzando n2ensite e riavviare Nginx per riflettere le modifiche.

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

Se hai bisogno di un nuovo certificato SSL per il tuo host virtuale, generane uno utilizzando il comando nginx_gen_ssl con il tuo nome di dominio e modifica phpsrvmon-ssl.conf di conseguenza.

Crea file di configurazione dell'host virtuale Apache

5. Se utilizzi Apache come server web, crea un nuovo file di configurazione dell'host virtuale su /etc/httpd/conf/sites-available/ con phpsrvmon. conf e utilizza le seguenti definizioni di file come modello.

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

Aggiungi il seguente codice al file 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. Se anche tu hai bisogno di un accesso a PHP Server Monitor sul protocollo HTTPS, crea un nuovo file di configurazione SSL dell'host virtuale con le seguenti istruzioni.

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

Aggiungi il seguente intero codice al file 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. Utilizzando la stessa procedura di Nginx, crea la directory Document Root, nel caso in cui il percorso servito dai file web sia cambiato, attiva Apache Virtual Hosts utilizzando il comando a2ensite e riavvia il demone per applica i cambiamenti.

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

Per generare un nuovo certificato SSL e una nuova chiave per questo host virtuale, utilizza l'utilità apache_gen_ssl, aggiungi il nome del tuo dominio al nome del certificato e modifica /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf file, sostituendo il vecchio certificato SSL, il percorso della chiave e i nomi con quelli nuovi.

Passaggio 2: modifica le configurazioni PHP

8. Per evitare alcuni errori di installazione, PHP Server Monitor emetterà un messaggio quando verifica i requisiti di sistema, apre il file php.ini e apporta le seguenti modifiche.

sudo nano /etc/php/php.ini

Se il percorso della radice del documento Nginx/Apache è stato modificato (quello predefinito è /srv/http/) utilizza [Ctrl+w] per individuare open_basedir e aggiungi il nuovo percorso prefissando i due punti " : " – in questo caso il nuovo percorso è /srv/www/ – per assomigliare all'esempio seguente.

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

Cerca e abilita le estensioni PHP pdo, mysqli e curl decommentandole (rimuovi il punto e virgola dalla parte anteriore).

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

Individua il fuso orario e imposta l'ora locale utilizzando questa pagina.

date.timezone = Continent/City

9. Dopo aver apportato tutte le modifiche, riavvia i servizi per applicare le modifiche.

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

Passaggio 3: creare il server PHP per monitorare il database MySQL

10. Per creare il database necessario affinché PHP Server Monitor memorizzi le informazioni, accedi al database MySQL/MariaDB e crea un nuovo database utilizzando i seguenti comandi (sostituisci database, utente e password con le tue credenziali preferite).

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

Se hai PhpMyAdmin installato sul tuo sistema puoi creare il database PHP Server Monitor accedendo a MySQL/MariaDB dalla sua interfaccia web.

Passaggio 4: installa PHP Server Monitor

11. Prima di procedere con il download dello strumento PHP Server Monitor, assicurati di aver installato il comando wget.

sudo pacman -S wget

12. Per ottenere l'ultima versione di PHP Server Monitor, vai al seguente collegamento e scarica il file di archivio tar.gz o utilizza il collegamento per il download ufficiale Git fornito di seguito.

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

In alternativa, puoi anche scaricare direttamente utilizzando il seguente comando wget.

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

13. Dopo aver scaricato la versione più recente, estraila con il comando tar e copia tutto il contenuto estratto nel percorso Document Root del server Web utilizzando i seguenti comandi.

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

14. Quindi apri un browser e vai al tuo nome di dominio (nel caso in cui utilizzi host virtuali come presentato in questo tutorial, altrimenti utilizza l'indirizzo IP del tuo server) e nella pagina di saluto premi il pulsante Andiamo.

15. Nella schermata successiva inserisci le informazioni del tuo database MySQL e premi su Salva configurazione.

16. Se ricevi un errore che indica che non è stato possibile scrivere il file di configurazione, utilizza i seguenti comandi per creare un file confing.php scrivibile e premi I ho salvato la configurazione.

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

17. Dopo aver salvato la configurazione, crea un utente amministrativo per PHP Server Monitor scegliendo le tue credenziali e premi il pulsante Installa.

18. Una volta completato il processo di installazione, premi il pulsante Vai al tuo monitor e verrai reindirizzato alla pagina di accesso. Accedi con le tue credenziali e ti verrà richiesta la pagina predefinita di PHP Server Monitor. Ripristina anche le modifiche al file config.php di PHP Server Monitor.

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

19. Per aggiungere un nuovo sito web da monitorare vai su Server -> Aggiungi nuovo, compila i campi richiesti con le impostazioni del tuo server e premi Salva.

20. Per avviare il processo di monitoraggio su tutti i server e servizi, premi il pulsante Aggiorna e verrai reindirizzato alla home page predefinita dove ti verrà presentato lo stato dei tuoi siti web/servizi.

21. Affinché PHP Server Monitor possa controllare automaticamente lo stato dei tuoi server/servizi a intervalli di tempo regolari, devi installare un job scheduler Cron sul tuo sistema e aggiungere un tempo di monitoraggio voce del periodo in un file cron.

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

22. Per aggiungere una nuova voce nel file cron che controlla il tuo sito web ogni 5 minuti usa sudo crontab –e comando, o, meglio, modifica manualmente il file cron root situato in < b>/var/spool/cron/ modificando il percorso in modo che corrisponda alla directory di installazione di PHP Server Monitor. Per elencare tutte le voci crontab utilizzare la riga di comando sudo crontab -l.

sudo nano /var/spool/cron/root

Aggiungi la seguente voce: modifica di conseguenza il periodo di tempo e il percorso di installazione

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

Conclusione

Anche se PHP Server Monitor non aumenta in complessità come altri servizi di monitoraggio come Nagios, Cacti o Zabbix, tende ad avere poche risorse consumo e può svolgere il lavoro come piattaforma di monitoraggio configurandosi per inviare e-mail o SMS attraverso un vasto elenco di gateway SMS, nel caso in cui i siti Web e i servizi monitorati incontrino problemi tecnici o siano inattivi.

Home page: Monitoraggio del server PHP