Εγκατάσταση του εργαλείου "PHP Server Monitor" χρησιμοποιώντας LEMP ή LAMP Stack στο Arch Linux


Το PHP Server Monitor είναι ένα εργαλείο παρακολούθησης διεπαφής ιστού ανοιχτού κώδικα γραμμένο σε PHP, το οποίο μπορεί να επαληθεύσει εάν οι διακομιστές σας (IP, τομείς) ή οι υπηρεσίες σας είναι σε λειτουργία και μπορούν να σας στέλνουν ειδοποιήσεις μέσω υπηρεσιών αλληλογραφίας ή SMS εάν προέκυψε πρόβλημα σε μια παρακολουθούμενη υπηρεσία ή θύρα. Ελέγχει ιστότοπους χρησιμοποιώντας τον κωδικό κατάστασης HTTP, μπορεί να εμφανίσει γραφήματα ιστορικού χρόνου λειτουργίας και καθυστέρησης και μπορεί να χρησιμοποιήσει δύο επίπεδα ελέγχου ταυτότητας (διαχειριστή και κανονικό χρήστη).

Αυτό το σεμινάριο σας παρουσιάζει έναν τρόπο με τον οποίο μπορείτε να εγκαταστήσετε το PHP Server Monitor σε ένα περιβάλλον διακομιστή Arch Linux χρησιμοποιώντας είτε τον Apache ως διακομιστή ή τον διακομιστή ιστού Nginx, Έτσι, μπορείτε να επιλέξετε τη διαδικασία εγκατάστασης που σας ταιριάζει καλύτερα.

Απαιτήσεις παρακολούθησης διακομιστή PHP

Ως γενικές απαιτήσεις για την εγκατάσταση και τη ρύθμιση του PHP Server Monitor για οποιεσδήποτε άλλες πλατφόρμες Linux, ο διακομιστής σας χρειάζεται να εγκατασταθούν τα ακόλουθα πακέτα.

  1. PHP 5.3.7+
  2. Πακέτα PHP: cURL, MySQL
  3. Βάση δεδομένων MySQL
  4. Διακομιστές Ιστού Nginx ή Apache

Απαιτήσεις συστήματος

Για να εγκαταστήσετε το PHP Server Monitor με το Nginx χρησιμοποιήστε τα παρακάτω σεμινάρια ως οδηγούς για τη ρύθμιση της στοίβας LEMP και των εικονικών κεντρικών υπολογιστών στο Arch.

  1. Εγκαταστήστε το LEMP (Linux, Nginx, MySQL, PHP) στο Arch Linux
  2. Δημιουργήστε εικονικούς κεντρικούς υπολογιστές Nginx στο Arch Linux

Για να εγκαταστήσετε το PHP Server Monitor με Apache χρησιμοποιήστε τον ακόλουθο οδηγό για να ρυθμίσετε τη στοίβα LAMP στο Arch Linux.

  1. Εγκαταστήστε το LAMP (Linux, Apache, MySQL, PHP) στο Arch Linux

Βήμα 1: Διαμόρφωση διακομιστή Web Nginx/Apache

1. Πριν ξεκινήσουμε, εάν η ρύθμισή σας χρησιμοποιεί Εικονική φιλοξενία, πρέπει να βεβαιωθείτε ότι έχετε έγκυρη καταχώριση DNS που οδηγεί στον τομέα σας ή χρησιμοποιήστε τοπικό αρχείο κεντρικών υπολογιστών σε περίπτωση που δεν έχετε διακομιστή DNS. Αυτό το σεμινάριο χρησιμοποιεί Εικονική Φιλοξενία και με τους δύο διακομιστές ιστού (Nginx και Apache) που έχουν ρυθμιστεί με ψεύτικο τοπικό τομέα – phpsrvmon.lan – έως αρχείο /etc/hosts.

Δημιουργήστε αρχεία διαμόρφωσης εικονικού κεντρικού υπολογιστή Nginx

2. Για να προσθέσετε έναν νέο εικονικό κεντρικό υπολογιστή Nginx, δημιουργήστε ένα νέο αρχείο διαμόρφωσης στο /etc/nginx/sites-available/ με phpsrvmon.conf όνομα και χρησιμοποιήστε το παρακάτω πρότυπο ως παράδειγμα διαμόρφωσης.

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

Προσθέστε τον ακόλουθο κώδικα στο αρχείο 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. Εάν θέλετε να αποκτήσετε πρόσβαση στην Οθόνη Διακομιστή PHP μέσω ασφαλούς πρωτοκόλλου HTTP, δημιουργήστε το αντίστοιχο αρχείο διαμόρφωσης SSL.

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

Προσθέστε τον ακόλουθο κώδικα στο αρχείο 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. Αφού επεξεργαστείτε τα αρχεία Nginx conf, δημιουργήστε τη διαδρομή Document Root, σε περίπτωση που την αλλάξατε όπως εδώ σε /srv/www/phpsrvmon/, ενεργοποιήστε και τους δύο εικονικούς κεντρικούς υπολογιστές χρησιμοποιώντας n2ensite και επανεκκινήστε το Nginx για να αντικατοπτρίζονται οι αλλαγές.

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

Εάν χρειάζεστε ένα νέο πιστοποιητικό SSL για τον Εικονικό κεντρικό υπολογιστή σας, δημιουργήστε ένα χρησιμοποιώντας την εντολή nginx_gen_ssl με το όνομα τομέα σας και τροποποιήστε το phpsrvmon-ssl.conf ανάλογα.

Δημιουργήστε αρχεία διαμόρφωσης εικονικού κεντρικού υπολογιστή Apache

5. Εάν χρησιμοποιείτε τον Apache ως διακομιστή ιστού, δημιουργήστε ένα νέο αρχείο διαμόρφωσης Virtual Host στο /etc/httpd/conf/sites-available/ με phpsrvmon. conf όνομα και χρησιμοποιήστε τους παρακάτω ορισμούς αρχείων ως πρότυπο.

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

Προσθέστε τον ακόλουθο κώδικα στο αρχείο 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. Εάν, επίσης, χρειάζεστε πρόσβαση στο PHP Server Monitor στο πρωτόκολλο HTTPS, δημιουργήστε ένα νέο αρχείο διαμόρφωσης SSL Virtual Host με τις ακόλουθες δηλώσεις.

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

Προσθέστε τον ακόλουθο ολόκληρο κώδικα στο αρχείο 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. Χρησιμοποιώντας την ίδια διαδικασία όπως για το Nginx, δημιουργήστε τον κατάλογο Document Root, σε περίπτωση που έχει αλλάξει η διαδρομή που εξυπηρετούνται τα αρχεία web, ενεργοποιήστε τους εικονικούς κεντρικούς υπολογιστές Apache χρησιμοποιώντας την εντολή a2ensite και επανεκκινήστε τον δαίμονα στο εφαρμόστε αλλαγές.

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

Για να δημιουργήσετε νέο πιστοποιητικό SSL και κλειδί για αυτόν τον εικονικό κεντρικό υπολογιστή, χρησιμοποιήστε το βοηθητικό πρόγραμμα apache_gen_ssl, προσθέστε το όνομα τομέα σας στο όνομα πιστοποιητικού και τροποποιήστε το /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf , αντικαθιστώντας το παλιό πιστοποιητικό SSL και τη διαδρομή κλειδιού και τα ονόματα με νέα.

Βήμα 2: Επεξεργασία διαμορφώσεων PHP

8. Προκειμένου να αποφευχθούν ορισμένα σφάλματα εγκατάστασης, το PHP Server Monitor θα εμφανίσει όταν επαληθεύσει τις απαιτήσεις συστήματος ανοιχτό αρχείο php.ini και θα κάνει τις ακόλουθες προσαρμογές.

sudo nano /etc/php/php.ini

Εάν η διαδρομή ρίζας εγγράφου Nginx/Apache έχει αλλάξει (η προεπιλογή είναι /srv/http/), χρησιμοποιήστε [Ctrl+w] για να εντοπίσετε το open_basedir δήλωση και προσθέστε τη νέα διαδρομή προσθέτοντας ένα πρόθεμα με άνω και κάτω τελεία « : “ – σε αυτήν την περίπτωση η νέα διαδρομή είναι /srv/www/ – για να μοιάζει με το παρακάτω παράδειγμα.

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

Αναζητήστε και ενεργοποιήστε τις επεκτάσεις PHP pdo, mysqli και curl αφαιρώντας τις σχολιασμό (αφαιρέστε το ερωτηματικό από το μπροστινό μέρος τους).

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

Εντοπίστε τη ζώνη ώρας και ορίστε την τοπική σας ώρα χρησιμοποιώντας αυτήν τη σελίδα.

date.timezone = Continent/City

9. Αφού γίνουν όλες οι αλλαγές, επανεκκινήστε τις υπηρεσίες σας για να εφαρμόσετε αλλαγές.

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

Βήμα 3: Δημιουργήστε βάση δεδομένων MySQL Monitor PHP Server

10. Για να δημιουργήσετε τη βάση δεδομένων που απαιτείται για το PHP Server Monitor για αποθήκευση πληροφοριών, συνδεθείτε στη βάση δεδομένων MySQL/MariaDB και δημιουργήστε μια νέα βάση δεδομένων χρησιμοποιώντας τις ακόλουθες εντολές (αντικαταστήστε τη βάση δεδομένων, τον χρήστη και τον κωδικό πρόσβασης με τα διαπιστευτήρια που προτιμάτε).

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

Εάν έχετε εγκατεστημένο το PhpMyAdmin στο σύστημά σας, μπορείτε να δημιουργήσετε βάση δεδομένων PHP Server Monitor αποκτώντας πρόσβαση στο MySQL/MariaDB από τη διεπαφή ιστού του.

Βήμα 4: Εγκαταστήστε το PHP Server Monitor

11. Πριν προχωρήσετε στη λήψη του εργαλείου PHP Server Monitor, βεβαιωθείτε ότι έχετε εγκαταστήσει την εντολή wget.

sudo pacman -S wget

12. Για να αποκτήσετε την πιο πρόσφατη έκδοση του PHP Server Monitor, μεταβείτε στον παρακάτω σύνδεσμο και κατεβάστε το αρχείο αρχειοθέτησης tar.gz ή χρησιμοποιήστε τον επίσημο σύνδεσμο λήψης του Git που παρέχεται παρακάτω.

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

Εναλλακτικά, μπορείτε επίσης να κάνετε λήψη απευθείας χρησιμοποιώντας την ακόλουθη εντολή wget.

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

13. Αφού κάνετε λήψη της πιο πρόσφατης έκδοσης, εξαγάγετε την με την εντολή tar και αντιγράψτε όλο το εξαγόμενο περιεχόμενο στη διαδρομή ρίζας εγγράφου διακομιστή Web χρησιμοποιώντας τις ακόλουθες εντολές.

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

14. Στη συνέχεια, ανοίξτε ένα πρόγραμμα περιήγησης και μεταβείτε στο όνομα τομέα σας (σε περίπτωση που χρησιμοποιείτε εικονικούς κεντρικούς υπολογιστές όπως παρουσιάζονται σε αυτόν τον οδηγό, διαφορετικά χρησιμοποιήστε τη διεύθυνση IP του διακομιστή σας ) και στη σελίδα χαιρετισμού πατήστε το κουμπί Πάμε.

15. Στην επόμενη οθόνη εισαγάγετε τις πληροφορίες της βάσης δεδομένων MySQL και πατήστε Αποθήκευση διαμόρφωσης.

16. Εάν λάβετε ένα σφάλμα που λέει ότι το αρχείο διαμόρφωσής σας δεν ήταν δυνατό να γραφτεί, χρησιμοποιήστε τις ακόλουθες εντολές για να δημιουργήσετε ένα εγγράψιμο αρχείο confing.php και πατήστε I έχουν αποθηκεύσει τη διαμόρφωση.

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

17. Αφού αποθηκεύσετε τη διαμόρφωση, δημιουργήστε έναν διαχειριστή χρήστη για το PHP Server Monitor επιλέγοντας τα διαπιστευτήριά σας και πατήστε το κουμπί Εγκατάσταση.

18. Αφού ολοκληρωθεί η διαδικασία εγκατάστασης, πατήστε το κουμπί Μετάβαση στην οθόνη σας και θα ανακατευθυνθείτε στη σελίδα σύνδεσης. Συνδεθείτε με τα διαπιστευτήριά σας και θα σας ζητηθεί η προεπιλεγμένη σελίδα Παρακολούθησης διακομιστή PHP. Επαναφέρετε επίσης τις αλλαγές στο αρχείο PHP Server Monitor config.php.

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

19. Για να προσθέσετε έναν νέο ιστότοπο για παρακολούθηση, μεταβείτε στους Διακομιστές -> Προσθήκη νέου, συμπληρώστε τα απαιτούμενα πεδία με τις ρυθμίσεις του διακομιστή σας και πατήστε Αποθήκευση.

20. Για να ξεκινήσετε τη διαδικασία παρακολούθησης σε όλους τους διακομιστές και τις υπηρεσίες, πατήστε το κουμπί Ενημέρωση και θα ανακατευθυνθείτε στην προεπιλεγμένη αρχική σελίδα όπου θα εμφανιστεί η κατάσταση των ιστότοπων/υπηρεσιών σας.

21. Προκειμένου το PHP Server Monitor να ελέγχει αυτόματα την κατάσταση των διακομιστών/υπηρεσιών σας σε τακτά χρονικά διαστήματα, πρέπει να εγκαταστήσετε έναν προγραμματιστή εργασιών Cron στο σύστημά σας και να προσθέσετε έναν χρόνο παρακολούθησης καταχώρηση περιόδου σε αρχείο cron.

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

22. Για να προσθέσετε μια νέα καταχώριση στο αρχείο cron που ελέγχει τον ιστότοπό σας κάθε 5 λεπτά, χρησιμοποιήστε την εντολή sudo crontab –e ή, καλύτερα, επεξεργαστείτε μη αυτόματα το αρχείο root cron που βρίσκεται στο < b>/var/spool/cron/, προσαρμόζοντας τη διαδρομή ώστε να ταιριάζει με τον κατάλογο εγκατάστασης του PHP Server Monitor. Για να παραθέσετε όλες τις καταχωρήσεις crontab χρησιμοποιήστε τη γραμμή εντολών sudo crontab -l.

sudo nano /var/spool/cron/root

Προσθέστε την ακόλουθη καταχώριση – προσαρμόστε ανάλογα τη χρονική περίοδο και τη διαδρομή εγκατάστασης

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

συμπέρασμα

Αν και το PHP Server Monitor δεν αυξάνεται σε πολυπλοκότητα όπως άλλες υπηρεσίες παρακολούθησης όπως οι Nagios, Cacti ή Zabbix, τείνει να είναι πολύ ελαφρύ σε πόρους κατανάλωση και μπορεί να εκπληρώσει τη δουλειά ως πλατφόρμα παρακολούθησης διαμορφώνοντας τις παραμέτρους για αποστολή email ή SMS μέσω μιας τεράστιας λίστας πυλών SMS, σε περίπτωση που οι παρακολουθούμενοι ιστότοποι και οι υπηρεσίες σας αντιμετωπίζουν τεχνικά προβλήματα ή είναι εκτός λειτουργίας.

Αρχική σελίδα: Παρακολούθηση διακομιστή PHP