ArchLinuxでLEMPまたはLAMPスタックを使用して「PHPサーバーモニター」ツールをインストールする


PHP Server Monitor は、PHPで記述されたオープンソースのWebフロントエンド監視ツールです。サーバー(IP、ドメイン)またはサービスが稼働しているかどうかを確認し、メールサービスまたはSMSを介して通知を送信できます。監視対象のサービスまたはポートで問題が発生した場合。 HTTPステータスコードを使用してWebサイトをチェックし、稼働時間と遅延の履歴グラフを表示し、2つのレベルの認証(管理者と通常のユーザー)を使用できます。

このチュートリアルでは、 Apache をサーバーとして使用するか Nginx Webサーバーとして使用するかを使用して、ArchLinuxサーバー環境に PHPサーバーモニターをインストールする方法を紹介します。そのため、自分に最適なインストールプロセスを選択できます。

他のLinuxプラットフォーム用にPHPServer Monitorをインストールおよびセットアップするための一般的な要件として、サーバーには次のパッケージがインストールされている必要があります。

  1. PHP 5.3.7+
  2. PHP packages: cURL, MySQL
  3. MySQL Database
  4. Nginx or Apache web servers

Nginxを使用してPHPサーバーモニターをインストールするには、次のチュートリアルをガイドとして使用して、ArchでLEMPスタックと仮想ホストをセットアップします。

  1. Install LEMP (Linux, Nginx, MySQL, PHP) in Arch Linux
  2. Create Nginx Virtual Hosts in Arch Linux

ApacheでPHPサーバーモニターをインストールするには、次のガイドを使用してArchLinuxでLAMPスタックをセットアップします。

  1. Install LAMP (Linux, Apache, MySQL, PHP) in Arch Linux

ステップ1:Nginx / ApacheWebサーバーを構成する

1.開始する前に、セットアップで仮想ホスティングを使用する場合は、ドメインを指す有効なDNSエントリがあることを確認するか、DNSサーバーがない場合はローカルのホストファイルを使用する必要があります。このチュートリアルでは、ローカルドメインの偽の phpsrvmon.lan –からで構成された両方のWebサーバー( Nginx Apache )で仮想ホスティングを使用します。/etc/hosts ファイル。

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.安全なHTTPプロトコルを介してPHPサーバーモニターにアクセスする場合は、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ファイルを編集した後、ドキュメントルートパスを作成します。ここのように/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 コマンドを使用してSSL証明書を生成し、それに応じて phpsrvmon-ssl.conf を変更します。

5. ApacheをWebサーバーとして使用する場合は、/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 protected]
                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.また、HTTPSプロトコルでPHPサーバーモニターにアクセスする必要がある場合は、次のステートメントを使用して新しい仮想ホストSSL構成ファイルを作成します。

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

次のコード全体を phpsrvmon-ssl.conf ファイルに追加します。

<VirtualHost *:443>
                ServerName phpsrvmon.lan
                DocumentRoot "/srv/www/phpsrvmon"
                ServerAdmin [email protected]
                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の場合と同じ手順を使用して、ドキュメントルートディレクトリを作成します。Webファイルの提供パスが変更された場合は、 a2ensite コマンドを使用してApache仮想ホストをアクティブ化し、デーモンを再起動して変更を適用します。

$ 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サーバーモニターは、システム要件を確認するときにスローし、 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:PHPサーバーモニターMySQLデータベースを作成する

10. PHP Server Monitorが情報を保存するために必要なデータベースを作成するには、MySQL/MariaDBデータベースにログインし、次のコマンドを使用して新しいデータベースを作成します(データベース、ユーザー、およびパスワードを希望の資格情報に置き換えます)。

mysql -u root -p

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

システムにPhpMyAdminがインストールされている場合は、WebインターフェイスからMySQL/MariaDBにアクセスして、PHPサーバーモニターデータベースを作成できます。

ステップ4:PHPサーバーモニターをインストールする

11. PHPサーバーモニターツールのダウンロードに進む前に、wgetコマンドがインストールされていることを確認してください。

$ sudo pacman -S wget

12.最新のPHPServer 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 ファイルを作成し、構成を保存しました

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

17.構成を保存した後、PHP Server Monitorの管理ユーザーを作成して資格情報を選択し、インストールボタンをクリックします。

18.インストールプロセスが完了したら、モニターに移動ボタンを押すと、ログインページにリダイレクトされます。資格情報を使用してログインすると、デフォルトのPHPサーバーモニターページが表示されます。また、PHPサーバーモニターの config.php ファイルへの変更を元に戻します。

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

19.監視用の新しいWebサイトを追加するには、サーバー-> 新規追加に移動し、必要なフィールドにサーバー設定を入力して、保存ボタンをクリックします。 。

20.すべてのサーバーとサービスで監視プロセスを開始するには、[更新]ボタンをクリックすると、デフォルトのホームページにリダイレクトされ、Webサイト/サービスのステータスが表示されます。

21. PHP Server Monitorが定期的にサーバー/サービスのステータスを自動的にチェックするには、システムに Cron ジョブスケジューラをインストールし、監視期間のエントリをcronファイルに追加する必要があります。

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

22. 5分ごとにWebサイトをチェックするcronファイルに新しいエントリを追加するには、 sudo crontab –eコマンドを使用するか、/var/pool /にあるルートcronファイルを手動で編集します。 PHP ServerMonitorのインストールディレクトリに一致するようにパスを調整してcron/ディレクトリを作成します。すべての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 などの他の監視サービスほど複雑にはなりませんが、リソースが非常に少ない傾向があります。監視対象のWebサイトやサービスで技術的な問題が発生したりダウンしたりした場合に備えて、膨大なSMSゲートウェイリストを介して電子メールまたはテキストSMSを送信するように構成することで、監視プラットフォームとしての役割を果たします。

ホームページ:PHPサーバーモニター

全著作権所有。 © Linux-Console.net • 2019-2022