Workerman は、高性能 PHP 開発フレームワークであり、開発者によるサーバーの監視と管理を容易にする、シンプルで強力なサーバー監視の実装方法を提供します。この記事では、Workerman を使用してサーバー監視を実装する方法を詳しく紹介し、具体的なコード例を示します。
始める前に、Workerman フレームワークをインストールする必要があります。 Composer を通じてインストールできます。次のコマンドを実行してインストールを完了します:
composer require workerman/workerman
次に、簡単な例を使用して、サーバー監視を実装する方法を示します。サーバー監視システムがあり、サーバーの CPU 使用率とメモリ使用率を取得する必要があるとします。
まず、Workerman の Worker クラスを継承する MonitorServer クラスを作成します。コンストラクターでは、リスニング ポートとプロトコルを設定できます。 start メソッドでは、サーバー情報を取得するための特定のビジネス ロジックを追加できます。コードは次のとおりです。
<?php require_once __DIR__ . '/vendor/autoload.php'; use WorkermanWorker; class MonitorServer extends Worker { public function __construct($protocol, $socket_name) { parent::__construct($protocol, $socket_name); $this->name = 'MonitorServer'; } public function start() { parent::start(); // 添加获取服务器信息的业务逻辑 $this->addMonitorTask(); } private function addMonitorTask() { $interval = 1; // 设置监控间隔,单位为秒 $this->timer_id = WorkermanLibTimer::add($interval, function() { $cpu_usage = $this->getCpuUsage(); $memory_usage = $this->getMemoryUsage(); echo "CPU Usage: $cpu_usage% "; echo "Memory Usage: $memory_usage MB "; }); } private function getCpuUsage() { $cpu_info = sys_getloadavg(); return $cpu_info[0] * 100; } private function getMemoryUsage() { $memory_info = memory_get_usage(true); return round($memory_info / 1024 / 1024, 2); } } $monitor_server = new MonitorServer('tcp://0.0.0.0:1234'); $monitor_server->start();
上記のコードでは、Workerman の Worker クラスを継承する MonitorServer という名前のクラスを定義します。コンストラクターでは、リスニング ポートを 1234 に設定し、プロトコルを TCP として指定しました。 start
メソッドに、サーバー情報を取得するためのビジネス ロジック メソッド addMonitorTask
を追加しました。
addMonitorTask
メソッドでは、サーバーの CPU を定期的に取得するために使用される WorkermanLibTimer
の add
メソッドを通じてスケジュールされたタスクを追加します。使用量とメモリ使用量。情報を取得したら、echo
ステートメントを通じてコンソールに情報を出力します。
getCpuUsage
メソッドでは、sys_getloadavg
関数を使用して CPU 使用率を取得します。この関数は、1 分、5 分、15 分の負荷平均を含む配列を返します。配列の最初の要素を取得して 100 を掛けて、CPU 使用率をパーセンテージとして取得します。
getMemoryUsage
メソッドでは、memory_get_usage
関数を使用してメモリ使用量を取得します。この関数は、スクリプトによって現在使用されているメモリの量を返します。これを 1024 × 1024 で割って、メモリ使用量を MB 単位で取得します。
最後に、MonitorServer オブジェクトを作成し、その start
メソッドを呼び出してサーバーの監視を開始します。
上記のコードを使用すると、サーバー監視機能を簡単に実装できます。 Workermanフレームワークが提供するスケジュールタスク機能により、サーバーのCPU使用率やメモリ使用量を定期的に取得し、それに応じた処理を行うことができます。これにより、サーバーの稼働状況をリアルタイムで把握し、問題を適時に検出して対処することができます。
以上がWorkerman ドキュメントのサーバー監視の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。