Arch Linux'ta LEMP veya LAMP Stack kullanarak "PHP Server Monitor" Aracını Kurmak


PHP Sunucu Monitörü, sunucularınızın (IP, etki alanları) veya hizmetlerinizin çalışır durumda olup olmadığını doğrulayabilen ve size posta hizmetleri veya SMS yoluyla bildirimler gönderebilen, PHP ile yazılmış bir Açık Kaynak web ön uç izleme aracıdır. izlenen bir hizmette veya bağlantı noktasında bir sorun meydana gelirse. Web sitelerini HTTP durum kodunu kullanarak kontrol eder, çalışma süresi ve gecikmeye ilişkin geçmiş grafiklerini görüntüleyebilir ve iki düzeyde kimlik doğrulama (yönetici ve normal kullanıcı) kullanabilir.

Bu eğitimde, bir sunucu olarak Apache'i mi yoksa Nginx web sunucusunu mu kullanarak, Arch Linux sunucu ortamına PHP Server Monitor'ü kurmanın bir yolu sunulmaktadır. böylece size en uygun kurulum işlemini seçebilirsiniz.

PHP Sunucu Monitörü Gereksinimleri

Diğer Linux platformları için PHP Server Monitor'ü kurmak ve kurmak için genel gereksinimler olarak, sunucunuzda aşağıdaki paketlerin kurulu olması gerekir.

  1. PHP 5.3.7+
  2. PHP paketleri: cURL, MySQL
  3. MySQL Veritabanı
  4. Nginx veya Apache web sunucuları

sistem gereksinimleri

PHP Server Monitor'ü Nginx ile kurmak için, LEMP yığınını ve Arch'ta Sanal Konakları ayarlamak için aşağıdaki eğitimleri kılavuz olarak kullanın.

  1. LEMP'yi (Linux, Nginx, MySQL, PHP) Arch Linux'a yükleyin
  2. Arch Linux'ta Nginx Sanal Konakları Oluşturun

PHP Server Monitor'ü Apache ile kurmak için, Arch Linux'ta LAMP yığınını kurmak için aşağıdaki kılavuzu kullanın.

  1. LAMP'ı (Linux, Apache, MySQL, PHP) Arch Linux'a yükleyin

Adım 1: Nginx/Apache Web Sunucusunu Yapılandırın

1. Başlamadan önce, kurulumunuz Sanal Barındırma kullanıyorsa alanınıza işaret eden geçerli bir DNS girişine sahip olduğunuzdan emin olmanız veya bunu yapmamanız durumunda yerel ana bilgisayarlar dosyasını kullanmanız gerekir. DNS sunucunuz yok. Bu eğitimde, aracılığıyla sahte bir yerel alan adı (phpsrvmon.lan) ile yapılandırılmış her iki web sunucusuyla (Nginx ve Apache) Sanal Barındırma kullanılır. /etc/hosts dosyası.

Nginx Sanal Ana Bilgisayar Yapılandırma Dosyaları Oluşturun

2. Yeni bir Nginx Sanal Ana Bilgisayarı eklemek için /etc/nginx/sites-available/ üzerinde phpsrvmon.conf ile yeni bir yapılandırma dosyası oluşturun. adını verin ve aşağıdaki şablonu yapılandırma örneği olarak kullanın.

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

Aşağıdaki kodu phpsrvmon.conf dosyasına ekleyin.

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 Sunucu Monitörüne güvenli HTTP protokolü aracılığıyla erişmek istiyorsanız, SSL eşdeğeri yapılandırma dosyasını oluşturun.

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

Aşağıdaki kodu phpsrvmon-ssl.conf dosyasına ekleyin.

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 dosyalarını düzenledikten sonra, Belge Kökü yolunu oluşturun, eğer buradaki gibi /srv/www/phpsrvmon/ olarak değiştirdiyseniz, n2ensite yardımcı programını kullanın ve değişiklikleri yansıtmak için Nginx'i yeniden başlatın.

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

Sanal Ana Makineniz için yeni bir SSL sertifikasına ihtiyacınız varsa, alan adınızla nginx_gen_ssl komutunu kullanarak bir tane oluşturun ve phpsrvmon-ssl.conf dosyasını buna göre değiştirin.

Apache Sanal Ana Bilgisayar Yapılandırma Dosyaları Oluşturun

5. Apache'yi bir web sunucusu olarak kullanıyorsanız, /etc/httpd/conf/sites-available/ üzerinde phpsrvmon.dll ile yeni bir Sanal Ana Bilgisayar yapılandırma dosyası oluşturun. conf adını kullanın ve aşağıdaki dosya tanımlarını şablon olarak kullanın.

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

Aşağıdaki kodu phpsrvmon.conf dosyasına ekleyin.

<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. Ayrıca, HTTPS protokolü üzerinde PHP Sunucu Monitörüne erişime ihtiyacınız varsa, aşağıdaki ifadeleri içeren yeni bir Sanal Ana Bilgisayar SSL yapılandırma dosyası oluşturun.

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

Aşağıdaki kodun tamamını phpsrvmon-ssl.conf dosyasına ekleyin.

<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 ile aynı prosedürü kullanarak, Belge Kök dizinini oluşturun, web dosyalarının sunulan yolunun değişmesi durumunda, a2ensite komutunu kullanarak Apache Sanal Konaklarını etkinleştirin ve arka plan programını yeniden başlatın. değişiklikleri uygula.

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

Bu Sanal Ana Bilgisayar için yeni SSL Sertifikası ve Anahtarı oluşturmak için apache_gen_ssl yardımcı programını kullanın, alan adınızı Sertifika adına ekleyin ve /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf dosyasını değiştirin dosyasında, eski SSL Sertifikası ve Anahtar yolu ve adları yenileriyle değiştiriliyor.

Adım 2: PHP yapılandırmalarını düzenleyin

8. Bazı kurulum hatalarını önlemek için, PHP Sunucu Monitörü sistem gereksinimlerini doğruladığında atacak php.ini dosyasını açın ve aşağıdaki ayarlamaları yapın.

sudo nano /etc/php/php.ini

Nginx/Apache Belge Kök yolu değiştirilmişse (varsayılan yol /srv/http/'dir) open_ Basedir'i bulmak için [Ctrl+w] kullanın. ifadesini kullanın ve yeni yolu iki nokta üst üste " : " ile önek ekleyerek ekleyin - bu durumda yeni yol /srv/www/ olur - aşağıdaki örnekte olduğu gibi görünür.

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

PHP pdo, mysqli ve curl uzantılarını açıklamalarını kaldırarak arayın ve etkinleştirin (önlerindeki noktalı virgülleri kaldırın).

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

Saat dilimini bulun ve yerel saatinizi Bu Sayfayı kullanarak ayarlayın.

date.timezone = Continent/City

9. Tüm değişiklikler yapıldıktan sonra değişiklikleri uygulamak için hizmetlerinizi yeniden başlatın.

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

Adım 3: PHP Sunucu Monitörü MySQL Veritabanını Oluşturun

10. PHP Server Monitor'ün bilgileri depolaması için gereken veritabanını oluşturmak için, MySQL/MariaDB veritabanına giriş yapın ve aşağıdaki komutları kullanarak yeni bir veritabanı oluşturun (veritabanı, kullanıcı ve şifreyi tercih ettiğiniz kimlik bilgileriyle değiştirin).

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

Sisteminizde PhpMyAdmin kurulu ise MySQL/MariaDB'ye web arayüzünden erişerek PHP Server Monitor veritabanı oluşturabilirsiniz.

Adım 4: PHP Server Monitor'ü yükleyin

11. PHP Sunucu Monitörü aracını indirmeye devam etmeden önce wget komutunu yüklediğinizden emin olun.

sudo pacman -S wget

12. En son PHP Server Monitor sürümünü edinmek için aşağıdaki bağlantıya gidin ve tar.gz arşiv dosyasını indirin veya aşağıda verilen resmi Git indirme bağlantısını kullanın.

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

Alternatif olarak aşağıdaki wget komutunu kullanarak da doğrudan indirebilirsiniz.

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

13. En son sürümü indirdikten sonra tar komutuyla çıkartın ve aşağıdaki komutları kullanarak çıkartılan tüm içeriği Web Sunucusu Belge Kök yoluna kopyalayın.

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

14. Ardından bir tarayıcı açın ve alan adınıza gidin (bu eğitimde sunulduğu gibi sanal ana bilgisayarlar kullanıyorsanız, aksi takdirde sunucunuzun IP adresini kullanın) ve karşılama sayfasında Hadi gidelim düğmesine basın.

15. Sonraki ekranda MySQL veritabanı bilgilerinizi girin ve Yapılandırmayı kaydet'e basın.

16. Yapılandırma dosyanızın yazılamadığını belirten bir hata alırsanız, yazılabilir bir confing.php dosyası oluşturmak için aşağıdaki komutları kullanın ve I'ye basın. yapılandırmayı kaydettiniz.

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

17. Yapılandırmayı kaydettikten sonra, kimlik bilgilerinizi seçerek PHP Server Monitor için bir yönetici kullanıcı oluşturun ve Yükle düğmesine basın.

18. Kurulum işlemi tamamlandıktan sonra Monitörünüze gidin düğmesine basın, Giriş sayfasına yönlendirileceksiniz. Kimlik bilgilerinizle giriş yaptığınızda varsayılan PHP Sunucu Monitörü sayfasına yönlendirileceksiniz. Ayrıca PHP Server Monitor config.php dosyasındaki değişiklikleri de geri alın.

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

19. İzleme amacıyla yeni bir web sitesi eklemek için Sunucular -> Yeni ekle'ye gidin, gerekli alanları sunucu ayarlarınızla doldurun ve Kaydet düğmesine basın.

20. Tüm sunucularda ve hizmetlerde izleme işlemini başlatmak için Güncelle düğmesine basın; web sitelerinizin/hizmetlerinizin durumunun size sunulacağı varsayılan ana sayfaya yönlendirileceksiniz.

21. PHP Sunucu Monitörü'nün sunucularınızın/hizmetlerinizin durumunu düzenli zaman aralıklarında otomatik olarak kontrol etmesi için sisteminize bir Cron iş planlayıcı kurmanız ve bir izleme süresi eklemeniz gerekir. Bir cron dosyasındaki dönem girişi.

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

22. Web sitenizi her 5 dakikada bir kontrol eden cron dosyasına yeni bir giriş eklemek için sudo crontab –e komutunu kullanın veya daha iyisi, < konumunda bulunan kök cron dosyasını manuel olarak düzenleyin. b>/var/spool/cron/ dizinini, yolu PHP Sunucu Monitörü kurulum dizininize uyacak şekilde ayarlayarak değiştirin. Tüm crontab girişlerini listelemek için sudo crontab -l komut satırını kullanın.

sudo nano /var/spool/cron/root

Aşağıdaki girişi ekleyin – süreyi ve kurulum yolunu buna göre ayarlayın

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

Çözüm

PHP Server Monitor'ün karmaşıklığı Nagios, Cacti veya Zabbix gibi diğer izleme hizmetleri kadar artmasa da kaynak açısından çok hafif olma eğilimindedir. izlenen web sitelerinizin ve hizmetlerinizin teknik sorunlarla karşılaşması veya kapanması durumunda, geniş bir SMS ağ geçidi listesi aracılığıyla e-posta veya metin SMS'i gönderecek şekilde yapılandırarak izleme platformu olarak görevi yerine getirebilir.

Anasayfa: PHP Sunucu Monitörü