Dieses Laravel 5-Paket überwacht regelmäßig den Zustand Ihres Servers und Ihrer Website. Derzeit bietet es Fehler-/Alarmstatusbenachrichtigungen für die Festplattennutzung, eine HTTP-Ping-Funktion zur Überwachung des Zustands externer Dienste und einen Validierungs-/Ablaufmonitor für SSL-Zertifikate.
Nach der Installation ist die Überwachung Ihres Servers sehr einfach. Geben Sie einfach diesen Handwerkerbefehl aus:
php artisan monitor:run
Sie können jeweils nur bestimmte Monitore ausführen:
php artisan monitor:run HttpPing
php artisan monitor:run SSLCertificate,DiskUsage
Mithilfe der Konfigurationsdatei in Ihrem Projekt können beliebig viele Monitore konfiguriert werden, um nach Problemen mit Ihrem Server-Setup zu suchen.
Wenn der Befehl monitor:run
artisan“ ausgeführt wird, entweder über die Befehlszeile oder mithilfe des Laravel-Befehlsplaners, werden die Monitore ausgeführt und warnen, wenn ein Problem vorliegt. Der Alarmstatus ist konfigurierbar und Warnungen können an das Protokoll oder per E-Mail, Pushover und Slack gesendet werden.
Festplattennutzungsmonitore prüfen den Prozentsatz des Speicherplatzes, der auf der angegebenen Partition verwendet wird, und geben eine Warnung aus, wenn der Prozentsatz den konfigurierbaren Alarmprozentsatz überschreitet.
HTTP-Ping-Monitore führen eine einfache Seitenanforderung durch und geben eine Warnung aus, wenn der HTTP-Statuscode nicht 200 ist. Sie können optional überprüfen, ob eine bestimmte Phrase in der Quelle der Seite enthalten ist.
SSL-Zertifikatmonitore rufen das SSL-Zertifikat für die konfigurierte URL ab und stellen sicher, dass es für diese URL gültig ist. Es werden Wildcard- und Multi-Domain-Zertifikate unterstützt.
Der Monitor warnt, wenn das Zertifikat ungültig oder abgelaufen ist, und warnt auch, wenn das Ablaufdatum näher rückt. Die Tage, an denen vor Ablauf eine Benachrichtigung erfolgen soll, sind ebenfalls konfigurierbar.
Sie können dieses Paket über Composer installieren mit:
composer require ericmakesstuff/laravel-server-monitor
Sie müssen den ServiceProvider registrieren:
// config/app.php
' providers ' => [
// ...
EricMakesStuff ServerMonitor ServerMonitorServiceProvider::class,
];
Um die Konfigurationsdatei in app/config/server-monitor.php zu veröffentlichen, führen Sie Folgendes aus:
php artisan vendor:publish --provider="EricMakesStuffServerMonitorServerMonitorServiceProvider"
Nachdem Sie die Konfigurationsdatei veröffentlicht haben, können Sie den Abschnitt 'monitors'
von app/config/server-monitor.php bearbeiten.
Die Standardmonitorkonfigurationen sind:
' 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 ],
],
],
Warnungen können im Standardprotokollhandler protokolliert oder per E-Mail, Pushover oder Slack gesendet werden. Zulässige Werte sind log
, mail
, pushover
und slack
.
Die Standardwarnungskonfigurationen sind:
' events ' => [
' whenDiskUsageHealthy ' => [ ' log ' ],
' whenDiskUsageAlarm ' => [ ' log ' , ' mail ' ],
' whenHttpPingUp ' => [ ' log ' ],
' whenHttpPingDown ' => [ ' log ' , ' mail ' ],
' whenSSLCertificateValid ' => [ ' log ' ],
' whenSSLCertificateInvalid ' => [ ' log ' , ' mail ' ],
' whenSSLCertificateExpiring ' => [ ' log ' , ' mail ' ],
],
Nachdem Sie die Grundinstallation durchgeführt haben, können Sie mit dem Befehl „monitor:run“ beginnen. In den meisten Fällen möchten Sie diesen Befehl planen, damit Sie „monitor:run“ nicht jedes Mal manuell ausführen müssen, wenn Sie den Zustand Ihres Servers wissen möchten.
Die Befehle können, wie ein anderer Befehl, im Konsolenkernel von Laravel geplant werden.
// app/Console/Kernel.php
protected function schedule ( Schedule $ schedule )
{
$ schedule -> command ( ' monitor:run ' )-> daily ()-> at ( ' 10:00 ' );
$ schedule -> command ( ' monitor:run HttpPing ' )-> hourly ();
}
Natürlich sind die im obigen Code verwendeten Zeitpläne nur Beispiele. Passen Sie sie an Ihre eigenen Vorlieben an.
Führen Sie die Tests aus mit:
vendor/bin/phpunit
Weitere Überwachungsmetriken. Reichen Sie Ideen gerne über Issues oder Pull Requests ein!
Weitere Informationen finden Sie unter BEITRAGEN.
Wenn Sie sicherheitsrelevante Probleme entdecken, senden Sie bitte eine E-Mail an [email protected], anstatt den Issue-Tracker zu verwenden.
Die MIT-Lizenz (MIT). Weitere Informationen finden Sie in der Lizenzdatei.