この Laravel 5 パッケージは、サーバーと Web サイトの状態を定期的に監視します。現在、ディスク使用量の健全性/アラーム ステータス通知、外部サービスの健全性を監視する HTTP Ping 機能、SSL 証明書の検証/有効期限モニターを提供しています。
インストールすると、サーバーの監視は非常に簡単になります。この職人コマンドを発行するだけです。
php artisan monitor:run
一度に実行できるのは特定のモニターのみです。
php artisan monitor:run HttpPing
php artisan monitor:run SSLCertificate,DiskUsage
プロジェクト内の構成ファイルを使用すると、サーバー設定の問題をチェックするために任意の数のモニターを構成できます。
コマンドラインまたはLaravelコマンドスケジューラを使用してmonitor:run
armyコマンドを実行すると、モニターが実行され、問題がある場合は警告が表示されます。アラームの状態は構成可能で、アラートはログに送信することも、電子メール、プッシュオーバー、Slack 経由で送信することもできます。
ディスク使用率モニターは、指定されたパーティションで使用されているストレージ領域の割合をチェックし、その割合が構成可能なアラームの割合を超えた場合に警告を発します。
HTTP Ping モニターは単純なページ要求を実行し、HTTP ステータス コードが 200でない場合に警告します。オプションで、ページのソースに特定の語句が含まれているかどうかをチェックできます。
SSL 証明書モニターは、構成された URL の SSL 証明書を取得し、それがその URL に対して有効であることを確認します。ワイルドカード証明書とマルチドメイン証明書がサポートされています。
モニターは、証明書が無効であるか期限切れである場合に警告を発し、有効期限が近づいた場合にも警告を発します。有効期限が切れる前にアラートを送信する日も構成可能です。
次のコマンドを使用して、composer 経由でこのパッケージをインストールできます。
composer require ericmakesstuff/laravel-server-monitor
ServiceProvider を登録する必要があります。
// config/app.php
' providers ' => [
// ...
EricMakesStuff ServerMonitor ServerMonitorServiceProvider::class,
];
構成ファイルを app/config/server-monitor.php に公開するには、次のコマンドを実行します。
php artisan vendor:publish --provider="EricMakesStuffServerMonitorServerMonitorServiceProvider"
構成ファイルを公開した後、app/config/server-monitor.php の'monitors'
セクションを編集できます。
デフォルトのモニター構成は次のとおりです。
' monitors ' => [
/*
* DiskUsage will alert when the free space on the device exceeds the alarmPercentage.
* path is any valid file path, and the monitor will look at the usage of that disk partition.
*
* You may add as many DiskUsage monitors as you require.
*/
' DiskUsage ' => [
[
' path ' => base_path (),
' alarmPercentage ' => 75 ,
],
],
/*
* HttpPing will perform an HTTP request to the configured URL and alert if the response code
* is not 200, or if the optional checkPhrase is not found in the response.
*/
' HttpPing ' => [
[
' url ' => ' http://www.example.com/ ' ,
],
[
' url ' => ' http://www.example.com/ ' ,
' checkPhrase ' => ' Example Domain ' ,
' timeout ' => 10 ,
' allowRedirects ' => false ,
],
],
/*
* SSLCertificate will download the SSL Certificate for the URL and validate that the domain
* is covered and that it is not expired. Additionally, it can warn when the certificate is
* approaching expiration.
*/
' SSLCertificate ' => [
[
' url ' => ' https://www.example.com/ ' ,
],
[
' url ' => ' https://www.example.com/ ' ,
' alarmDaysBeforeExpiration ' => [ 14 , 7 ],
],
],
アラートは、デフォルトのログ ハンドラーに記録することも、電子メール、プッシュオーバー、または Slack 経由で送信することもできます。許可される値は、 log
、 mail
、 pushover
、 slack
です。
デフォルトのアラート構成は次のとおりです。
' events ' => [
' whenDiskUsageHealthy ' => [ ' log ' ],
' whenDiskUsageAlarm ' => [ ' log ' , ' mail ' ],
' whenHttpPingUp ' => [ ' log ' ],
' whenHttpPingDown ' => [ ' log ' , ' mail ' ],
' whenSSLCertificateValid ' => [ ' log ' ],
' whenSSLCertificateInvalid ' => [ ' log ' , ' mail ' ],
' whenSSLCertificateExpiring ' => [ ' log ' , ' mail ' ],
],
基本インストールを実行した後、monitor:run コマンドの使用を開始できます。ほとんどの場合、サーバーの状態を知りたいときに毎回手動でmonitor:runを実行する必要がないように、このコマンドをスケジュールすることができます。
コマンドは、他のコマンドと同様に、Laravel のコンソール カーネルでスケジュールできます。
// app/Console/Kernel.php
protected function schedule ( Schedule $ schedule )
{
$ schedule -> command ( ' monitor:run ' )-> daily ()-> at ( ' 10:00 ' );
$ schedule -> command ( ' monitor:run HttpPing ' )-> hourly ();
}
もちろん、上記のコードで使用されているスケジュールは単なる例です。好みに合わせて調整してください。
以下を使用してテストを実行します。
vendor/bin/phpunit
より多くの監視メトリクス。問題やプル リクエストを通じてアイデアを自由に送信してください。
詳細については、「貢献」を参照してください。
セキュリティ関連の問題を発見した場合は、問題トラッカーを使用する代わりに、[email protected] に電子メールを送信してください。
MIT ライセンス (MIT)。詳細については、ライセンス ファイルを参照してください。