Instaliranje alata "PHP Server Monitor" pomoću LEMP ili LAMP Stacka u Arch Linuxu


PHP Server Monitor je alat za nadgledanje internetskog sučelja otvorenog koda napisan na PHP-u, koji može provjeriti rade li vaši poslužitelji (IP, domene) ili usluge i može li vam slati obavijesti putem usluga pošte ili SMS-a ako se problem pojavio na nadziranoj usluzi ili luci. Provjerava web stranice pomoću HTTP statusnog koda, može prikazati povijesne grafikone vremena rada i kašnjenja te može koristiti dvije razine provjere autentičnosti (administrator i redoviti korisnik).

Ovaj vam vodič predstavlja način na koji možete instalirati PHP Server Monitor u Arch Linux poslužiteljsko okruženje koristeći Apache kao poslužitelj ili Nginx web poslužitelj, tako da možete odabrati postupak instalacije koji vam najviše odgovara.

Kao općenite zahtjeve za instaliranje i postavljanje PHP Server Monitor za bilo koju drugu Linux platformu, vaš poslužitelj treba instalirati sljedeće pakete.

  1. PHP 5.3.7+
  2. PHP paketi: cURL, MySQL
  3. MySQL baza podataka
  4. Nginx ili Apache web poslužitelji

Da biste instalirali PHP Server Monitor s Nginxom, upotrijebite sljedeće vodiče kao vodiče za postavljanje LEMP stoga i virtualnih hostova na Arch.

  1. Instalirajte LEMP (Linux, Nginx, MySQL, PHP) u Arch Linux
  2. Stvorite Nginx virtualne hostove u Arch Linuxu

Da biste instalirali PHP Server Monitor s Apacheom, upotrijebite sljedeći vodič za postavljanje LAMP stoga na Arch Linux.

  1. Instalirajte LAMP (Linux, Apache, MySQL, PHP) u Arch Linux

Korak 1: Konfigurirajte Nginx/Apache web poslužitelj

1. Prije nego što započnemo, ako vaša postavka koristi virtualni hosting, morate osigurati da imate valjani DNS unos koji pokazuje na vašu domenu ili upotrijebiti lokalnu datoteku domaćini u slučaju da nemate DNS poslužitelj. Ovaj se vodič koristi virtualnim hostingom s oba web poslužitelja ( Nginx i Apache ) konfiguriranim s lažnom lokalnom domenom - phpsrvmon.lan - do /etc/hosts datoteka.

2. Da biste dodali novi Nginx virtualni host, stvorite novu konfiguracijsku datoteku na /etc/nginx/sites-available/ s imenom phpsrvmon.conf i koristite sljedeći predložak kao primjer konfiguracije.

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

Dodajte sljedeći kod u datoteku 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. Ako želite pristupiti PHP Sever Monitoru putem sigurnog HTTP protokola, stvorite njegovu SSL ekvivalentnu konfiguracijsku datoteku.

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

Dodajte sljedeći kod u datoteku 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. Nakon uređivanja Nginx conf datoteka, stvorite korijensku putanju dokumenta, u slučaju da ste je promijenili kao ovdje /srv/www/phpsrvmon/, aktivirajte oba virtualna hosta pomoću uslužnog programa n2ensite i ponovno pokrenite Nginx kako bi odražavao promjene.

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

Ako vam je potreban novi SSL certifikat za vaš virtualni host, generirajte ga pomoću naredbe nginx_gen_ssl s imenom domene i u skladu s tim izmijenite phpsrvmon-ssl.conf .

5. Ako Apache koristite kao web poslužitelj, stvorite novu konfiguracijsku datoteku virtualnog hosta na /etc/httpd/conf/sites-available/ s imenom phpsrvmon.conf i koristite sljedeće definicije datoteka kao predložak.

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

Dodajte sljedeći kod u datoteku 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. Ako vam također treba pristupni PHP Server Monitor na HTTPS protokolu, stvorite novu konfiguracijsku datoteku virtualnog hosta sa sljedećim izjavama.

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

Dodajte sljedeći cijeli kôd u datoteku 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. Koristeći isti postupak kao i za Nginx, izradite root direktorij dokumenta, u slučaju da se promijenila put posluživanja web datoteka, aktivirajte Apache virtualne hostove pomoću naredbe a2ensite i ponovo pokrenite demon da primijenite promjene.

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

Da biste generirali novi SSL certifikat i ključ za ovaj virtualni host, upotrijebite uslužni program apache_gen_ssl , dodajte naziv domene imenu certifikata i izmijenite /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf datoteku, zamjenjujući stari put i imena SSL certifikata i ključeva novim.

Korak 2: Uredite PHP konfiguracije

8. Da bi se izbjegle neke instalacijske pogreške, PHP Server Monitor će baciti datoteku php.ini kada provjeri sistemske zahtjeve i izvršiti sljedeće prilagodbe.

$ sudo nano /etc/php/php.ini

Ako je promijenjena korijenska staza dokumenta Nginx/Apache (zadana je /srv/http/), upotrijebite [Ctrl + w] da biste pronašli open_basedir naredbu i dodajte novu stazu dodavanjem prefiksa sa dvotačkom ": " - u ovom slučaju nova je staza /srv/www/ - kako bi izgledalo u primjeru u nastavku.

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

Pretražite i omogućite PHP pdo, mysqli i curl ekstenzije tako što ćete ih komentirati (uklonite zarez s njihove prednje strane).

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

Pronađite vremensku zonu i postavite svoje lokalno vrijeme kako koristite ovu stranicu.

date.timezone = Continent/City

9. Nakon što se izvrše sve promjene, ponovo pokrenite svoje usluge da biste primijenili promjene.

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

Korak 3: Stvorite bazu podataka MySQL za nadgledanje PHP poslužitelja

10. Da biste stvorili bazu podataka potrebnu za PHP Server Monitor za pohranu podataka, prijavite se na MySQL/MariaDB bazu podataka i stvorite novu bazu podataka pomoću sljedećih naredbi (zamijenite bazu podataka, korisnika i lozinku željenim vjerodajnicama).

mysql -u root -p

MariaDB > create database phpsrvmon;
MariaDB > create user [email  identified by "user_password";
MariaDB > grant all privileges on phpsrvmon.* to [email ;
MariaDB > flush privileges;
MariaDB > quit

Ako je na vašem sustavu instaliran PhpMyAdmin, možete stvoriti bazu podataka PHP Server Monitor pristupom MySQL/MariaDB iz njegovog web sučelja.

Korak 4: Instalirajte PHP Server Monitor

11. Prije nastavka s preuzimanjem alata PHP Server Monitor, provjerite jeste li instalirali naredbu wget.

$ sudo pacman -S wget

12. Da biste preuzeli najnoviju verziju PHP Server Monitora, idite na sljedeću vezu i preuzmite tar.gz arhivsku datoteku ili upotrijebite službenu vezu za preuzimanje Git-a koja je navedena u nastavku.

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

Alternativno, možete preuzeti i izravno pomoću sljedeće naredbe wget.

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

13. Nakon preuzimanja najnovije verzije, izvadite je naredbom tar i kopirajte sav izvađeni sadržaj na korijensku stazu dokumenta web poslužitelja pomoću sljedećih naredbi.

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

14. Zatim otvorite preglednik i dođite do imena svoje domene (u slučaju da koristite virtualne hostove kako je prikazano u ovom vodiču, inače koristite IP adresu poslužitelja) i na pozdravnoj stranici pritisnite gumb Idemo.

15. Na sljedećem zaslonu unesite podatke o MySQL bazi podataka i pritisnite Spremi konfiguraciju .

16. Ako dobijete pogrešku koja kaže da se vaša konfiguracijska datoteka ne može napisati, upotrijebite sljedeće naredbe za stvaranje datoteke confing.php koja se može zapisati i pritisnite Spremila sam konfiguraciju .

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

17. Nakon spremanja konfiguracije stvorite administrativnog korisnika za PHP Server Monitor odabirom vaših vjerodajnica i pritisnite gumb Instaliraj .

18. Nakon završetka instalacijskog postupka pritisnite gumb Idite na svoj monitor i bit ćete preusmjereni na stranicu za prijavu. Prijavite se sa svojim vjerodajnicama i zatražit će se od vas zadana stranica PHP Server Monitor. Također vratite promjene u datoteku config.php programa PHP Server Monitor.

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

19. Da biste dodali novo web mjesto za nadzor, idite na Poslužitelji -> Dodaj novo , ispunite potrebna polja postavkama poslužitelja i pritisnite gumb Spremi .

20. Za početak postupka praćenja na svim poslužiteljima i uslugama pritisnite gumb Ažuriraj i bit ćete preusmjereni na zadanu početnu stranicu na kojoj će vam biti predstavljeni status vaših web stranica/usluga.

21. Kako bi PHP Server Monitor automatski provjeravao status vaših poslužitelja/usluga u redovitim vremenskim intervalima, morate instalirati planer posla Cron u svoj sustav i dodati unos vremenskog razdoblja praćenja u cron datoteku.

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

22. Da biste dodali novi unos u cron datoteku koja provjerava vašu web stranicu svakih 5 minuta, upotrijebite naredbu sudo crontab –e ili, bolje, ručno uredite root cron datoteku koja se nalazi u /var/spool/cron/ direktorij prilagodbom puta koji odgovara vašem instalacijskom direktoriju PHP Server Monitor. Za popis svih crontab unosa koristite naredbeni redak sudo crontab -l .

$ sudo nano /var/spool/cron/root

Dodajte sljedeći unos - prilagodite vremensko razdoblje i put instalacije u skladu s tim

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

Zaključak

Iako se PHP Server Monitor ne povećava složenost kao druge usluge praćenja poput Nagios , Cacti ili Zabbix , on ima tendenciju da ima vrlo malo resursa Potrošnja i može ispuniti posao kao platforma za praćenje konfiguriranjem slanja e-pošte ili SMS-ova putem golemog popisa SMS pristupnika, u slučaju da vaše nadgledane web stranice i usluge nailaze na tehničke probleme ili ne rade.

Početna stranica : Monitor PHP poslužitelja