"PHP Server Monitor" įrankio įdiegimas naudojant LEMP arba LAMP Stack "Arch Linux"


PHP Server Monitor yra PHP parašytas atvirojo kodo žiniatinklio sąsajos stebėjimo įrankis, kuris gali patikrinti, ar jūsų serveriai (IP, domenai) ar paslaugos veikia, ir gali jums siųsti pranešimus pašto paslaugomis ar SMS žinutėmis jei stebimoje tarnyboje ar uoste kilo problema. Jis tikrina svetaines naudodamas HTTP būsenos kodą, gali rodyti veikimo laiko ir delsos laiko diagramas ir gali naudoti du autentifikavimo lygius (administratorius ir įprastas vartotojas).

Šioje pamokoje pateikiamas būdas, kaip galite įdiegti PHP Server Monitor į „Arch Linux“ serverio aplinką, naudodami Apache kaip serverį, ar Nginx žiniatinklio serverį, Taigi, galite pasirinkti jums labiausiai tinkantį diegimo procesą.

Kaip bendrieji reikalavimai įdiegti ir nustatyti PHP Server Monitor bet kuriai kitai „Linux“ platformai, jūsų serveryje reikia įdiegti šiuos paketus.

  1. PHP 5.3.7+
  2. PHP paketai: cURL, MySQL
  3. „MySQL“ duomenų bazė
  4. „Nginx“ arba „Apache“ žiniatinklio serveriai

Norėdami įdiegti „PHP Server Monitor“ su „Nginx“, naudokitės šiomis instrukcijomis, kad nustatytumėte LEMP kaminą ir virtualius kompiuterius „Arch“.

  1. Įdiekite LEMP („Linux“, „Nginx“, „MySQL“, PHP) į „Arch Linux“
  2. „Arch Linux“ sukurkite virtualius „Nginx“ kompiuterius

Norėdami įdiegti „PHP Server Monitor“ su „Apache“, naudokite šį vadovą norėdami nustatyti „LAMP“ kaminą „Arch Linux“.

  1. Įdiekite LAMP („Linux“, „Apache“, „MySQL“, PHP) į „Arch Linux“

1 veiksmas: konfigūruokite „Nginx“/„Apache“ serverį

1. Prieš pradėdami, jei jūsų sąrankoje naudojamas virtualusis priegloba, turite įsitikinti, kad turite galiojantį DNS įvestį, nukreipiantį į jūsų domeną, arba naudoti vietinį failą pagrindiniai kompiuteriai , jei neturite DNS serverio. Šioje pamokoje naudojamas virtualusis priegloba su abiem žiniatinklio serveriais ( Nginx ir Apache ), sukonfigūruotais padirbtu vietiniu domenu - phpsrvmon.lan - per /etc/hosts failas.

2. Norėdami pridėti naują „Nginx“ virtualųjį pagrindinį kompiuterį, sukurkite naują konfigūracijos failą /etc/nginx/sites-available/ su pavadinimu phpsrvmon.conf ir naudokite šį šabloną kaip konfigūracijos pavyzdys.

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

Pridėkite šį kodą prie failo 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. Jei norite pasiekti „PHP Sever Monitor“ naudodami saugų HTTP protokolą, sukurkite jo SSL atitikmenį atitinkantį konfigūracijos failą.

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

Pridėkite šį kodą prie failo 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. Redagavę „Nginx conf“ failus, sukurkite dokumento šaknies kelią, jei pakeisite jį kaip čia į /srv/www/phpsrvmon/, suaktyvinkite abu virtualiuosius kompiuterius naudodami n2ensite įrankį ir iš naujo paleiskite „Nginx“, kad atspindėtų pokyčius.

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

Jei virtualiam pagrindiniam kompiuteriui reikia naujo SSL sertifikato, sugeneruokite jį naudodami komandą nginx_gen_ssl su savo domeno vardu ir atitinkamai pakeiskite phpsrvmon-ssl.conf .

5. Jei naudojate „Apache“ kaip žiniatinklio serverį, sukurkite naują virtualaus pagrindinio kompiuterio konfigūracijos failą /etc/httpd/conf/sites-available/ su pavadinimu phpsrvmon.conf ir kaip šabloną naudokite šiuos failų apibrėžimus.

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

Pridėkite šį kodą prie failo 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. Jei jums taip pat reikalingas prieigos PHP serverio stebėjimas naudojant HTTPS protokolą, sukurkite naują „Virtual Host SSL“ konfigūracijos failą su šiais teiginiais.

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

Pridėkite šį visą kodą prie failo 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. Taikydami tą pačią procedūrą kaip ir „Nginx“, sukurkite dokumento šakninį katalogą, jei pasikeitė žiniatinklio failų pateikimo kelias, suaktyvinkite „Apache Virtual Hosts“ naudodami komandą a2ensite ir iš naujo paleiskite demoną, kad pritaikytumėte pakeitimus.

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

Norėdami sukurti naują SSL sertifikatą ir raktą šiam virtualiam pagrindiniam kompiuteriui, naudokite įrankį apache_gen_ssl , pridėkite savo domeno vardą prie sertifikato pavadinimo ir pakeiskite /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf failas, pakeičiantis seną SSL sertifikatą ir rakto kelią bei pavadinimus naujais.

2 žingsnis: Redaguokite PHP konfigūracijas

8. Kad būtų išvengta kai kurių diegimo klaidų, tas PHP serverio stebėtojas, patikrinęs sistemos reikalavimus, išmeta atidarydamas failą php.ini ir atlikdamas šiuos pakeitimus.

$ sudo nano /etc/php/php.ini

Jei pakeistas Nginx/Apache dokumento šaknies kelias (numatytasis yra /srv/http/), naudokite [Ctrl + w] , kad surastumėte open_basedir sakinį ir pridėkite naują kelią priešdėdami dvitaškį „: “ - šiuo atveju naujas kelias yra /srv/www/ - kad atrodytų toliau pateiktame pavyzdyje.

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

Ieškokite ir įgalinkite PHP pdo, mysqli ir curl plėtinius, nekomentuodami jų (pašalinkite kabliataškį iš jų priekio).

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

Raskite laiko juostą ir nustatykite vietinį laiką naudodami šį puslapį.

date.timezone = Continent/City

9. Atlikę visus pakeitimus, iš naujo paleiskite savo paslaugas, kad pritaikytumėte pakeitimus.

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

3 žingsnis: sukurkite „PHP Server Monitor MySQL“ duomenų bazę

10. Norėdami sukurti duomenų bazę, reikalingą PHP Server Monitor saugoti informaciją, prisijunkite prie „MySQL/MariaDB“ duomenų bazės ir sukurkite naują duomenų bazę naudodami šias komandas (pakeiskite duomenų bazę, vartotoją ir slaptažodį pageidaujamais kredencialais).

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

Jei jūsų sistemoje yra įdiegta „PhpMyAdmin“, galite sukurti „PHP Server Monitor“ duomenų bazę, naudodamiesi „MySQL/MariaDB“ iš savo žiniatinklio sąsajos.

4 žingsnis: įdiekite PHP Server Monitor

11. Prieš pradėdami atsisiųsti PHP Server Monitor įrankį, įsitikinkite, kad įdiegėte komandą wget.

$ sudo pacman -S wget

12. Norėdami paimti naujausią PHP Server Monitor versiją, eikite į šią nuorodą ir atsisiųskite tar.gz archyvo failą arba naudokite oficialią „Git“ atsisiuntimo nuorodą, pateiktą žemiau.

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

Arba galite atsisiųsti tiesiogiai naudodami šią komandą wget.

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

13. Atsisiuntę naujausią versiją, ištraukite ją naudodami komandą tar ir nukopijuokite visą ištraukiamą turinį į tinklo serverio dokumento šakninį kelią naudodami šias komandas.

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

14. Tada atidarykite naršyklę ir eikite į savo domeno vardą (jei naudojate virtualius pagrindinius kompiuterius, kaip nurodyta šioje pamokoje, kitaip naudokite savo serverio IP adresą) ir sveikinimo puslapyje paspauskite mygtuką „Eikime“.

15. Kitame ekrane įveskite „MySQL“ duomenų bazės informaciją ir spustelėkite Išsaugoti konfigūraciją .

16. Jei gausite klaidą, kuri sako, kad nepavyko parašyti jūsų konfigūracijos failo, naudokite šias komandas, kad sukurtumėte įrašomą failą confing.php ir paspauskite Aš išsaugojau konfigūraciją .

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

17. Išsaugoję konfigūraciją, sukurkite „PHP Server Monitor“ administracinį vartotoją, pasirinkdami savo kredencialus ir paspauskite mygtuką Įdiegti .

18. Baigę diegimo procesą paspauskite mygtuką Eikite į savo monitorių ir būsite nukreipti į prisijungimo puslapį. Prisijunkite naudodami savo kredencialus ir būsite paraginti į numatytąjį PHP Server Monitor puslapį. Taip pat grąžinkite PHP Server Monitor config.php failo pakeitimus.

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

19. Norėdami pridėti naują stebėjimo svetainę, eikite į Serveriai -> Pridėti naują , užpildykite būtinus laukus savo serverio nustatymais ir paspauskite mygtuką Išsaugoti .

20. Norėdami pradėti visų serverių ir paslaugų stebėjimo procesą, paspauskite mygtuką Atnaujinti ir būsite nukreipti į numatytąjį pagrindinį puslapį, kuriame jums bus pateikta jūsų svetainių/paslaugų būsena.

21. Norint, kad PHP Server Monitor automatiškai tikrintų jūsų serverių/paslaugų būseną reguliariais laiko tarpais, turite įdiegti Cron darbo planavimo priemonę savo sistemoje ir pridėti stebėjimo laikotarpio įrašą cron faile.

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

22. Norėdami pridėti naują įrašą „cron“ faile, kuris kas 5 minutes tikrina jūsų svetainę, naudokite sudo crontab –e komandą arba, dar geriau, rankiniu būdu redaguokite root cron failą, esantį /var/spool/cron/ katalogą, pakoreguodamas kelią, kad jis atitiktų jūsų PHP Server Monitor diegimo katalogą. Norėdami išvardyti visus „crontab“ įrašus, naudokite komandų eilutę sudo crontab -l .

$ sudo nano /var/spool/cron/root

Pridėkite šį įrašą - atitinkamai koreguokite laikotarpį ir diegimo kelią

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

Išvada

Nors PHP serverio stebėtojas nėra sudėtingesnis, nes kitos stebėjimo paslaugos, tokios kaip Nagios , Cacti ar Zabbix , jos ištekliai paprastai būna labai lengvi vartojimą ir gali atlikti stebėjimo platformos užduotį sukonfigūruodama siųsti el. laiškus ar trumpąsias SMS žinutes per didžiulį SMS šliuzų sąrašą tuo atveju, jei jūsų stebimose svetainėse ir tarnybose kyla techninių problemų arba jos neveikia.

Pagrindinis puslapis : PHP serverio monitorius