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
를 추가했습니다. start
方法中,我们添加了获取服务器信息的业务逻辑方法addMonitorTask
。
在addMonitorTask
方法中,我们通过WorkermanLibTimer
的add
方法来添加定时任务,用于定时获取服务器的CPU使用率和内存使用情况。在获取到信息后,我们通过echo
语句将信息输出到控制台。
在getCpuUsage
方法中,我们使用sys_getloadavg
函数来获取CPU的使用率。该函数返回一个包含1分钟、5分钟和15分钟内的平均负载的数组。我们取数组的第一个元素,并乘以100来获取百分比形式的CPU使用率。
在getMemoryUsage
方法中,我们使用memory_get_usage
函数来获取内存的使用情况。该函数返回当前脚本使用的内存量。我们将其除以1024再除以1024,可以得到以MB为单位的内存使用情况。
最后,我们创建了一个MonitorServer对象,并调用其start
addMonitorTask
메소드에서는 WorkermanLibTimer
의 add
메소드를 통해 예약된 작업을 추가하는데, 이는 정기적으로 CPU 사용량을 얻고 서버 사용량의 메모리. 정보를 얻은 후 echo
문을 통해 콘솔에 정보를 출력합니다. getCpuUsage
메서드에서는 sys_getloadavg
함수를 사용하여 CPU 사용량을 가져옵니다. 이 함수는 1분, 5분, 15분 동안의 평균 로드를 포함하는 배열을 반환합니다. 배열의 첫 번째 요소에 100을 곱하여 CPU 사용량을 백분율로 얻습니다. 🎜🎜 getMemoryUsage
메서드에서는 memory_get_usage
함수를 사용하여 메모리 사용량을 가져옵니다. 이 함수는 현재 스크립트에서 사용하는 메모리 양을 반환합니다. 이를 1024로 나누어 1024로 나누어 메모리 사용량을 MB 단위로 구합니다. 🎜🎜마지막으로 MonitorServer 개체를 생성하고 start
메서드를 호출하여 서버 모니터링을 시작합니다. 🎜🎜위 코드를 이용하면 서버 모니터링 기능을 쉽게 구현할 수 있습니다. Workerman 프레임워크에서 제공하는 예약된 작업 기능을 통해 정기적으로 서버의 CPU 사용량과 메모리 사용량을 파악하여 그에 따라 처리할 수 있습니다. 이를 통해 실시간으로 서버의 가동 상태를 파악하고, 적시에 문제를 감지해 대처할 수 있습니다. 🎜위 내용은 Workerman 문서의 서버 모니터링 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!