bpmconcept / ping-this
v2.0
2020-05-03 10:59 UTC
Requires
- php: >=7.2.0
- symfony/expression-language: ~5.0
Requires (Dev)
- geerlingguy/ping: ~1.1
- phpunit/phpunit: ~8.0
- symfony/browser-kit: ~5.0
- symfony/http-client: ~5.0
Suggests
- ext-pdo: Required by DatabasePing
- geerlingguy/ping: Required by NetworkPing
- symfony/browser-kit: Required by WebScraperPing
- symfony/http-client: Required by WebScraperPing
This package is auto-updated.
Last update: 2024-09-13 22:56:33 UTC
README
PingThis 是一个轻量级的 PHP 7.2+ 工具,用于构建简单但功能齐全的无头监控系统。
示例
use PingThis\Daemon; use PingThis\Alarm\PhpEmailAlarm; use PingThis\Ping\NetworkPing; use PingThis\Ping\WebScraperPing; use PingThis\Ping\DatabasePing; use PingThis\Ping\TlsCertificateExpirationPing; $daemon = new Daemon(); // Check if the host correctly answers to ping every 10 seconds $daemon->registerPing(new NetworkPing(10, 'domain.com')); // Check if a webserver responds correctly to a HTTP request every 30 seconds $daemon->registerPing(new WebScraperPing(30, 'GET', 'http://domain.com', 'response.getStatusCode() == 200')); $daemon->registerPing(new WebScraperPing(30, 'GET', 'http://domain.com', 'content.filter(".css").count()')); // Or equivalently using any PHP callable $daemon->registerPing(new WebScraperPing(30, 'GET', 'http://domain.com', function ($response, $content) { return $response->getStatus() < 400 && $content->filter('.element')->text() === "Hello"; })); // Check every day that a certificate won't expire during the next week $daemon->registerPing(new TlsCertificateExpirationPing(86400, 'domain.com', 443, TlsCertificateExpirationPing::IMPLICIT_TLS, '+7 days')); // Check if a remote SQL server is still up every 10 seconds $daemon->registerPing(new DatabasePing(10, 'mysql:host=my.sql.server', 'login', 'password')); // Otherwise send an email to alert an admin $daemon->registerAlarm(new PhpEmailAlarm('your@email.com')); $daemon->run();
快速描述
PingThis 的目的是提供一个简单而有效的方式来监控您想要的任何东西。配置一个带有单个警报和一个或多个ping的守护进程。守护进程定期验证每个ping,如果失败,则触发警报。任何类都可以充当警报或ping,只要它分别实现了AlarmInterface
或PingInterface
。
内置的ping依赖于Symfony的表达式语言组件,以便快速轻松地构建触发逻辑,但也可以用PHP可调用函数等效地替换。
内置的ping
网络
Web
邮件
其他服务
内置警报
安装
推荐通过Composer安装PingThis
composer require bpmconcept/ping-this
PingThis 并不打算提供一款开箱即用的完整功能的守护进程。您仍然负责编写一个配置好的守护进程,就像上一个例子中那样。之后,可以将真实的守护进程注册到您喜欢的初始化系统,例如systemd、upstart或supervisor。