jeffersonsimaogoncalves / cakephp-server-monitor
使用 CakePHP 3 构建的 Server Monitor
Requires
- php: >=7.0
- cakephp/cakephp: ^3.6
Requires (Dev)
- phpunit/phpunit: ^5.7|^6.0
README
CakePHP 3 服务器状态监控插件
安装
-
要安装 CakeServerMonitor 插件,您可以使用 composer。从您的应用程序根目录(位于 composer.json 文件所在的目录)运行以下命令
composer require jeffersonsimaogoncalves/cakephp-server-monitor
-
您需要将以下行添加到应用程序的
config/bootstrap.php
文件中Plugin::load('JeffersonSimaoGoncalves/CakeServerMonitor',['bootstrap' => true]);
通知
CakeServerMonitor 目前支持通过电子邮件进行通知。您可以在应用程序的 'config/bootstrap.php' 文件中配置收件人的电子邮件地址,通过覆盖 CakeServerMonitor.email.recipients 键
Configure::write( 'CakeServerMonitor.email.recipients', ['my-first-email@address.com','my-second-email@address.com'] );
定时任务
使此功能生效的最后一步是添加一个 cron 任务。您可以通过向系统 crontab 文件添加类似以下行来完成此操作。请记住更新您自己的项目路径。以下 cron 任务每天凌晨 1 点运行,您可以将其更改为您自己的偏好。
* 1 * * * cd path && bin/cake monitor run
自定义
CakeServerMonitor 提供了一些自定义选项。
- 更改电子邮件配置文件
默认情况下,CakeServerMonitor 使用 default 配置文件发送电子邮件。您可以使用 CakeServerMonitor.email.profile 键将其更改为您自己的偏好。
Configure::write( 'CakeServerMonitor.email.profile', 'debug' );
- 更改检查的统计信息
默认情况下,CakeServerMonitor 检查以下统计信息
- 磁盘空间
- MySql 进程
- Nginx 进程
在幕后,每个检查器实际上都是 JeffersonSimaoGoncalves 命名空间下的一个类。您可以通过覆盖 CakeServerMonitor.commands 键来指定要运行的检查器。
Configure::write( 'CakeServerMonitor.commands', [ 'disk_space' => 'JeffersonSimaoGoncalves\CakeServerMonitor\CommandDefinition\DiskSpace', 'mysql' => 'JeffersonSimaoGoncalves\CakeServerMonitor\CommandDefinition\MySql', 'nginx' => 'JeffersonSimaoGoncalves\CakeServerMonitor\CommandDefinition\Nginx', ] );
您可以删除上述任何检查器,以便它不会运行。
- 创建自己的检查器
如您所猜测的,您可以创建自己的检查器来扩展 CakeServerMonitor 的功能。为此,创建一个从 JeffersonSimaoGoncalves\CakeServerMonitor\CommandDefinition\CommandDefinition 抽象类扩展的类,并实现其定义的抽象方法。
之后,将您自己的检查器添加到 CakeServerMonitor.commands 键,如前文所述。
辅助方法
查看当前服务器统计信息
bin/cake monitor view
致谢
这项工作是基于 watchowl 的代码 分支出来的。