Laravel 运行状况监控
发布日期:作者: Diaa Fares
互联网已成为不可或缺的一部分,也是许多人的收入来源。对于大多数网络应用程序而言,即使停机几秒钟也是不可接受的。
Spatie 发布了一个非常实用的包,名为 **Laravel 运行状况监控**,它旨在提供一种简单而强大的方式来监控您的网站运行状况和 SSL 证书到期日期;它将使用灵活的 Laravel 5.3 通知系统在您的网站停机时通知您。此外,当您的网站再次恢复运行时,该包将友好地通知并告知您停机时间段。
让我们看看如何设置和使用此包。
安装
首先,通过 Composer 安装 **Laravel 运行状况监控**
composer require spatie/laravel-uptime-monitor
在 **config/app.php** 中添加其服务提供者
'providers' => [ ... Spatie\UptimeMonitor\UptimeMonitorServiceProvider::class,];
然后,要发布配置文件,在您的终端中运行以下命令
php artisan vendor:publish --provider="Spatie\UptimeMonitor\UptimeMonitorServiceProvider"
运行以下命令将 **monitors** 表迁移到数据库
php artisan migrate
最后,打开 **app/Console/Kernel.php** 文件并按如下方式安排 **monitor:check-uptime** 和 **monitor:check-certificate** 命令
protected function schedule(Schedule $schedule){ $schedule->command('monitor:check-uptime')->everyMinute(); $schedule->command('monitor:check-certificate')->daily();}
确保您已在服务器上添加了 Laravel Cron 条目,以使 **Laravel 运行状况监控** 命令能够重复运行
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
使用
安装完该包后,您可以使用 **monitor:create** 命令添加要监控的网站。如果您添加以 **https://** 开头的 URL,该包还将开始监控 SSL 证书
php artisan monitor:create https://news.laravel.net.cn
可选地,它会询问您是否要在网站的响应中查找特定字符串。如果字符串未出现,它将认为运行状况检查失败。
几分钟后,运行 php artisan monitor:list
它将显示所有监控网站的列表以及运行状况和证书检查结果,以及有关 SSL 证书的一些详细信息。
还有一些 **monitor:delete**、**monitor:enable** 和 **monitor:disable** 命令。第一个用于从监控列表中删除网站,另外两个命令用于启用和禁用对所提供网站 URL 的监控
php artisan monitor:delete http://example.comphp artisan monitor:enable http://example.comphp artisan monitor:disable http://example.com
概述
如果您打开 **config/laravel-uptime-monitor.php** 配置文件,您将看到 **Laravel 运行状况监控** 包具有很多配置,并且高度可定制。请注意以下重要选项
- 首先,您可以自定义 **notifications** 选项,为 **Laravel 运行状况监控** 包将触发的每个事件添加您的通知频道(它提供六种不同的事件类型)。您可以轻松地使用 Laravel 5.3 通知系统支持的任何频道,例如 Slack 或邮件等。
- 如果您从多个位置使用 **Laravel 运行状况监控**,您可以使用 **location** 选项区分不同的位置,因为 **location** 将与每个通知一起发送。
- **resend_uptime_check_failed_notification_every_minutes** 选项用于指定在网站停机时发送提醒通知之间的延迟时间;默认值为 60 分钟。
- 然后,有两个选项;一个是用于指定将由该包通知的 **mail**,另一个是用于指定 Slack 的 **webhook_url**(如果您使用了 Slack 通知频道)。
- **run_interval_in_minutes** 选项用于指定运行状况检查之间的延迟时间。请注意,如果运行状况检查失败,该包将忽略此选项并开始每分钟检查该网站。
- **timeout_per_site** 选项用于指定检查过程在放弃之前应等待的秒数,默认值为十秒。
- **fire_monitor_failed_event_after_consecutive_failures** 决定在触发 **Spatie\UptimeMonitor\Events\MonitorFailed** 事件之前失败的运行状况检查次数,默认值为两次。
- 然后,您有 **fire_expiring_soon_event_if_certificate_expires_within_days** 的选项,它将在您的 SSL 证书剩余天数少于您为此选项指定的天数时触发 **SslExpiresSoon** 事件。
如果您想要一种强大的方式来监控网站的运行状况和 SSL 证书到期日期,请尝试使用 Laravel 运行状况监控。