昶萌

Laravel 网站和 SSL(HTTPS 认证过期) 监控
如今,互联网已成为大多数人不可或缺的收入来源。对于大部分 web 应用来说,即使是几秒钟,宕机也是不可接受的。Sp...
扫描右侧二维码阅读全文
25
2018/04

Laravel 网站和 SSL(HTTPS 认证过期) 监控

laravel-ssl.png

如今,互联网已成为大多数人不可或缺的收入来源。对于大部分 web 应用来说,即使是几秒钟,宕机也是不可接受的。

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"

再运行下面这条命令来迁移监控器表到数据库:

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 入口 以使运行时间监控器周期性的运行:

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

使用

安装完这个包以后,你就可以通过 monitor:create 命令来添加要监控的网站了。如果你添加的网站是以 https:// 开头的,此包还会监听其 SSL 证书:

php artisan monitor:create https://laravel-news.com

还有一个可选项,它会询问你是否需要在该网站的响应中查找特定字符串,如果没有找到该字符串,那么它就会认为检查正常运行时间失败了。

稍后,再运行命令 php artisan monitor:list。

它会展示一个所有被监控网站的清单,它们的运行时间,以及带有 SSL 证书详细信息的证书检查结果。

还有 monitor:delete,monitor:enable 和 monitor:disable 这些命令。第一条命令把网站从监控列表中移除,其他两条分别对应启用和禁用对指定网站的监控:

php artisan monitor:delete http://example.com
php artisan monitor:enable http://example.com
php artisan monitor:disable http://example.com

概览

如果你打开 config/laravel-uptime-monitor.php 这个配置文件,那么你就会看到 Laravel 运行时间监控器这个包有很多配置项,并且是高度可定制的。请特别注意以下重点配置项:

  • 首先,你可以通过自定义 options 选项来给本包将会触发的事件(它提供了六种不同的事件类型)添加通知发送频道。你可以轻松的使用任何频道,只要它是 Laravel 5.3 的通知系统所支持的,像 Slack 或者邮件,等等。
  • 如果你在多个地方使用了 Laravel 运行时间监控器,那么你可以使用 location 选项来区分不同的位置, 因为位置将随通知一起发送。
  • resend_uptime_check_failed_notification_every_minutes 选项指定了网站宕机时发送通知的时间间隔,默认是 60 分钟。
  • 然后,还有两个选项,一个用于指定将被包通知的邮件,另一个则用于指定 Slack 的 webhook_url,如果你是使用 Slack 做为通知发送频道的话。

  • run_interval_in_minutes 选项用于指定运行时间的检查间隔。 但是要记住一点,那就是:一旦运行时间检查失败,本包将会忽略这个选项,并且开始每分钟做一次检查。
  • timeout_per_site 选项用于指定检查进程在中断前应该等待的秒数,默认十秒。
  • fire_monitor_failed_event_after_consecutive_failures 选项决定了在触发 SpatieUptimeMonitorEventsMonitorFailed 事件之前,需要进行失败运行时间检查的次数, 默认为2。
  • 还有 fire_expiring_soon_event_if_certificate_expires_within_days 这个选项,它会在你的 SSL 证书到期时间少于配置的这个值时触发 SslExpiresSoon 事件。

如果你想用一种强大的方式来监控你网站的运行时间和 SSL 证书过期时间,那就试试 Laravel Uptime Monitor

这首先出现在 Laravel News 上。

原文地址:https://laravel-news.com/uptime-monitor

Last modification:April 25th, 2018 at 05:42 pm

Leave a Comment