vanKazaov/ping-monitoring-tool
PHP上的Ping监控工具
v0.8.0
2023-09-10 15:05 UTC
Requires
- php: >=7.2
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- ext-pdo: *
- ext-sqlite3: *
Requires (Dev)
- phpunit/phpunit: ^9.5
README
通过定时执行ping操作并保存累积统计数据来监控Web资源的可用性。
如果资源不可用或恢复可用,将向配置中指定的电子邮件地址发送相应的通知。每周发送一次累积统计数据。
系统要求
PHP > 7, PDO, SQLite3, Curl
安装
可以通过Composer安装
composer require vankazaov/ping-monitoring-tool
用法
为了配置工具,需要
- 将
/vendor/vankazaov/ping-monitoring-tool/src目录中的config-example.ini和cron-run.php文件复制到您的工作目录。 - 将
config-example.ini重命名为config.ini - 在配置文件中指定您的数据。
- 以CLI模式启动
cron-run.php文件
首次启动时,将创建数据库并从配置文件中加载设置。当配置文件中的设置更改时,它们将在数据库中自动重新加载。
配置文件设置
- 在
[mailer]部分中,指定主SMTP服务器smtp_host_base,该服务器将通过php-函数mail()发送通知,如果主服务器不可用,则指定备用地址。 - 假设该脚本将在不同的服务器上有多个副本。为了知道邮件来自哪个服务器,请设置
from和from_server标题。 - 默认情况下,每60分钟重复一次关于服务器不可用的通知。参数
repeat_down和repeat_down_every_minutes。 - 指定将发送消息的用户:每个新用户应有一行新格式
recipients[] = "user1@example.com"。 - 在
[monitoring]部分中,指定需要监控的服务器:servers[] = "https://www.yandex.ru"。 - 您还可以设置从多少次失败的尝试开始发送关于服务器不可用的通知:
failed_attempts["https://www.mera-device1.ru"] = 5。默认情况下,在第二次失败的尝试时发送通知。 - 使用CRON设置
cron-run.php脚本的运行频率。
cron-run.php文件
为了测试,您可以配置Logger类的对象
$logger = new Logger('prod', 1, $repository);
第一个参数是工作模式:prod\debug。
第二个参数是注册消息的级别:0, 1, 2。
在任何模式下,错误都记录在数据库中。
如果注册错误的级别为0,则只有错误记录在日志中。
如果级别大于0,则记录所有消息。
如果级别大于1且模式为debug,则整个日志输出到控制台。
如果您想打印数据库表的内容,则取消以下行注释
//$printer = new PrintDb(); //$printer->printConsole('logs');
您可以选择打印任何现有表:monitoring, stats, config, logs。
CONTRIBUTING
这是一个教学项目,不打算进行进一步的开发和维护。
LICENSE
BSD-3-Clause许可