Het hulpprogramma "PHP Server Monitor" installeren met LEMP of LAMP Stack in Arch Linux
PHP Server Monitor is een open source webfrontend-monitoringtool geschreven in PHP, die kan verifiëren of uw servers (IP, domeinen) of services actief zijn en u meldingen kan sturen via e-mailservices of sms als er een probleem is opgetreden op een bewaakte service of poort. Het controleert websites met behulp van HTTP-statuscode, kan geschiedenisgrafieken van uptime en latentie weergeven en kan twee authenticatieniveaus gebruiken (beheerder en gewone gebruiker).
Deze tutorial laat u zien hoe u PHP Server Monitor kunt installeren in een Arch Linux-serveromgeving, waarbij u Apache als server of Nginx-webserver kunt gebruiken. U kunt dus het installatieproces kiezen dat het beste bij u past.
Vereisten voor PHP-servermonitoring
Als algemene vereisten voor het installeren en instellen van PHP Server Monitor voor andere Linux-platforms, moet op uw server de volgende pakketten zijn geïnstalleerd.
- PHP5.3.7+
- PHP-pakketten: cURL, MySQL
- MySQL-database
- Nginx- of Apache-webservers
systeem vereisten
Om PHP Server Monitor met Nginx te installeren, gebruikt u de volgende tutorials als handleiding voor het instellen van LEMP-stack en virtuele hosts op Arch.
- Installeer LEMP (Linux, Nginx, MySQL, PHP) in Arch Linux
- Creëer Nginx virtuele hosts in Arch Linux
Om PHP Server Monitor met Apache te installeren, gebruikt u de volgende handleiding om de LAMP-stack op Arch Linux in te stellen.
- Installeer LAMP (Linux, Apache, MySQL, PHP) in Arch Linux
Stap 1: Configureer Nginx/Apache-webserver
1. Voordat we beginnen: als uw installatie gebruikmaakt van virtuele hosting, moet u ervoor zorgen dat u een geldige DNS-invoer heeft die naar uw domein verwijst of het lokale hosts-bestand gebruiken als u dat niet doet. Ik heb geen DNS-server. Deze tutorial maakt gebruik van virtuele hosting met beide webservers (Nginx en Apache) geconfigureerd met een lokaal nep-domein – phpsrvmon.lan – via /etc/hosts bestand.
Maak Nginx virtuele hostconfiguratiebestanden
2. Om een nieuwe Nginx Virtual Host toe te voegen, maakt u een nieuw configuratiebestand op /etc/nginx/sites-available/ met phpsrvmon.conf naam en gebruik de volgende sjabloon als configuratievoorbeeld.
sudo nano /etc/nginx/sites-available/phpsrvmon.conf
Voeg de volgende code toe aan het bestand 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. Als je toegang wilt krijgen tot PHP Sever Monitor via een beveiligd HTTP-protocol, maak dan het SSL-equivalente configuratiebestand aan.
sudo nano /etc/nginx/sites-available/phpsrvmon-ssl.conf
Voeg de volgende code toe aan het bestand 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. Nadat u de Nginx-configuratiebestanden hebt bewerkt, maakt u het documenthoofdpad aan. Als u het zoals hier hebt gewijzigd in /srv/www/phpsrvmon/, activeert u beide virtuele hosts met n2ensite hulpprogramma en start Nginx opnieuw om de wijzigingen weer te geven.
sudo mkdir -p /srv/www/phpsrvmon/
sudo n2ensite phpsrvmon
sudo n2ensite phpsrvmon-ssl
sudo systemctl restart nginx
Als u een nieuw SSL-certificaat nodig heeft voor uw virtuele host, genereer er dan een met de opdracht nginx_gen_ssl met uw domeinnaam en pas phpsrvmon-ssl.conf dienovereenkomstig aan.
Maak Apache Virtual Host-configuratiebestanden
5. Als u Apache als webserver gebruikt, maak dan een nieuw Virtual Host-configuratiebestand op /etc/httpd/conf/sites-available/ met phpsrvmon. conf naam en gebruik de volgende bestandsdefinities als sjabloon.
sudo nano /etc/httpd/conf/sites-available/phpsrvmon.conf
Voeg de volgende code toe aan het bestand 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. Als u ook toegang nodig heeft tot PHP Server Monitor op het HTTPS-protocol, maak dan een nieuw Virtual Host SSL-configuratiebestand met de volgende instructies.
sudo nano /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf
Voeg de volgende volledige code toe aan het phpsrvmon-ssl.conf bestand.
<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. Gebruik dezelfde procedure als voor Nginx, maak de documenthoofdmap aan, voor het geval het pad van de webbestanden is gewijzigd, activeer Apache Virtual Hosts met de opdracht a2ensite en start de daemon opnieuw op wijzigingen toepassen.
sudo mkdir -p /srv/www/phpsrvmon/
sudo a2ensite phpsrvmon
sudo a2ensite phpsrvmon-ssl
sudo systemctl restart httpd
Om een nieuw SSL-certificaat en een nieuwe sleutel voor deze virtuele host te genereren, gebruikt u het hulpprogramma apache_gen_ssl, voegt u uw domeinnaam toe aan de certificaatnaam en wijzigt u /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf -bestand, waarbij het oude SSL-certificaat en sleutelpad en de namen worden vervangen door nieuwe.
Stap 2: PHP-configuraties bewerken
8. Om enkele installatiefouten te voorkomen, zal PHP Server Monitor bij het verifiëren van de systeemvereisten het bestand php.ini openen en de volgende aanpassingen maken.
sudo nano /etc/php/php.ini
Als het hoofdpad van het Nginx/Apache-document is gewijzigd (de standaard is /srv/http/), gebruik dan [Ctrl+w] om open_basedir te vinden statement en voeg het nieuwe pad toe door er een dubbele punt aan toe te voegen “ : “ – in dit geval is het nieuwe pad /srv/www/ – zoals in het onderstaande voorbeeld.
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/srv/www/
Zoek en schakel PHP pdo-, mysqli- en curl-extensies in door ze te verwijderen (verwijder puntkomma van de voorkant).
extension=curl.so
extension=mysqli.so
extension=pdo_mysql.so
Zoek de tijdzone en stel uw lokale tijd in via Deze pagina.
date.timezone = Continent/City
9. Nadat alle wijzigingen zijn aangebracht, start u uw services opnieuw op om de wijzigingen toe te passen.
sudo systemctl restart php-fpm
sudo systemctl restart nginx
sudo systemctl restart httpd
Stap 3: Maak een PHP Server Monitor MySQL-database
10. Om de database te creëren die nodig is voor PHP Server Monitor om informatie op te slaan, logt u in op de MySQL/MariaDB-database en maakt u een nieuwe database met behulp van de volgende opdrachten (vervang database, gebruiker en wachtwoord door de inloggegevens van uw voorkeur).
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
Als PhpMyAdmin op uw systeem is geïnstalleerd, kunt u een PHP Server Monitor-database maken door MySQL/MariaDB te openen via de webinterface.
Stap 4: Installeer PHP Server Monitor
11. Voordat u doorgaat met het downloaden van de PHP Server Monitor-tool, moet u ervoor zorgen dat u de wget-opdracht hebt geïnstalleerd.
sudo pacman -S wget
12. Om de nieuwste PHP Server Monitor-versie te downloaden, gaat u naar de volgende link en downloadt u het tar.gz-archiefbestand of gebruikt u de officiële Git-downloadlink hieronder.
- http://www.phpservermonitor.org/download/
- https://github.com/phpservermon/phpservermon
Als alternatief kunt u ook rechtstreeks downloaden met de volgende wget-opdracht.
wget http://downloads.sourceforge.net/project/phpservermon/phpservermon/PHP%20Server%20Monitor%20v3.0.1/phpservermon-v3.0.1.tar.gz
13. Nadat u de nieuwste versie heeft gedownload, pakt u deze uit met de opdracht tar en kopieert u alle uitgepakte inhoud naar het hoofdpad van het webserverdocument met behulp van de volgende opdrachten.
tar xfvz phpservermon-v3.0.1.tar.gz
sudo cp -r phpservermon/* /srv/www/phpsrvmon/
14. Open vervolgens een browser en navigeer naar uw domeinnaam (in het geval dat u virtuele hosts gebruikt zoals gepresenteerd in deze tutorial, gebruik anders het IP-adres van uw server) en klik op de welkomstpagina op de knop Laten we gaan.
15. Op het volgende scherm voert u uw MySQL-databasegegevens in en klikt u op Configuratie opslaan.
16. Als u een foutmelding krijgt dat uw configuratiebestand niet geschreven kon worden, gebruikt u de volgende opdrachten om een beschrijfbaar confing.php-bestand te maken en klikt u op I heb de configuratie opgeslagen.
su -c “> /srv/www/phpsrvmon/config.php”
sudo chmod 777 /srv/www/phpsrvmon/config.php
17. Nadat u de configuratie heeft opgeslagen, maakt u een beheerder aan voor PHP Server Monitor, kiest u uw inloggegevens en klikt u op de knop Installeren.
18. Nadat het installatieproces is voltooid, klikt u op de knop Ga naar uw monitor en u wordt doorgestuurd naar de inlogpagina. Log in met uw inloggegevens en u wordt gevraagd naar de standaard PHP Server Monitor-pagina. Zet ook wijzigingen in het PHP Server Monitor config.php bestand terug.
sudo chmod 754 /srv/www/phpsrvmon/config.php
19. Om een nieuwe website voor monitoring toe te voegen, gaat u naar Servers -> Nieuwe toevoegen, vult u de verplichte velden in met uw serverinstellingen en klikt u op Opslaan.
20. Om het monitoringproces op alle servers en services te starten, klikt u op de knop Update. U wordt doorgestuurd naar de standaardstartpagina waar u de status van uw websites/services te zien krijgt.
21. Om PHP Server Monitor de status van uw servers/services automatisch met regelmatige tussenpozen te laten controleren, moet u een Cron taakplanner op uw systeem installeren en een monitoringtijd toevoegen periode-invoer in een cron-bestand.
sudo pacman -S cronie
sudo systemctl start cronie
sudo systemctl enable cronie
22. Om een nieuw item toe te voegen aan het cron-bestand dat uw website elke 5 minuten controleert, gebruikt u de opdracht sudo crontab –e, of, beter nog, bewerkt u handmatig het root-cron-bestand dat zich in < b>/var/spool/cron/ map door het pad aan te passen zodat het overeenkomt met uw PHP Server Monitor-installatiemap. Om alle crontab-items weer te geven, gebruikt u de opdrachtregel sudo crontab -l.
sudo nano /var/spool/cron/root
Voeg het volgende item toe – pas de tijdsperiode en het installatiepad dienovereenkomstig aan
*/5 * * * * /usr/bin/php /srv/www/phpsrvmon/cron/status.cron.php
Conclusie
Hoewel PHP Server Monitor niet in complexiteit toeneemt zoals andere monitoringdiensten zoals Nagios, Cacti of Zabbix, heeft het de neiging erg weinig middelen te gebruiken verbruik en kan de taak vervullen als monitoringplatform door te configureren om e-mails of sms-berichten te verzenden via een uitgebreide sms-gatewaylijst, voor het geval uw bewaakte websites en services technische problemen ondervinden of niet beschikbaar zijn.
Startpagina: PHP-servermonitor