Ce package Laravel 5 surveillera périodiquement la santé de votre serveur et de votre site Web. Actuellement, il fournit des notifications d'état de santé/d'alarme pour l'utilisation du disque, une fonction HTTP Ping pour surveiller la santé des services externes et un moniteur de validation/expiration pour les certificats SSL.
Une fois installé, la surveillance de votre serveur est très simple. Émettez simplement cette commande artisanale :
php artisan monitor:run
Vous ne pouvez exécuter que certains moniteurs à la fois :
php artisan monitor:run HttpPing
php artisan monitor:run SSLCertificate,DiskUsage
À l'aide du fichier de configuration de votre projet, n'importe quel nombre de moniteurs peut être configuré pour vérifier les problèmes liés à la configuration de votre serveur.
Lorsque la commande monitor:run
Artisan est exécutée, soit à partir de la ligne de commande, soit à l'aide du planificateur de commandes Laravel, les moniteurs s'exécutent et alertent en cas de problème. L'état de l'alarme est configurable et les alertes peuvent être envoyées au journal ou par e-mail, Pushover et Slack.
Les moniteurs d'utilisation du disque vérifient le pourcentage d'espace de stockage utilisé sur la partition donnée et alertent si le pourcentage dépasse le pourcentage d'alarme configurable.
Les moniteurs HTTP Ping effectuent une simple requête de page et alertent si le code d'état HTTP n'est pas 200. Ils peuvent éventuellement vérifier qu'une certaine phrase est incluse dans la source de la page.
Les moniteurs de certificat SSL extraient le certificat SSL pour l'URL configurée et s'assurent qu'il est valide pour cette URL. Les certificats génériques et multi-domaines sont pris en charge.
Le moniteur alertera si le certificat est invalide ou expiré, et alertera également lorsque la date d'expiration approche. Les jours d'alerte avant l'expiration sont également configurables.
Vous pouvez installer ce package via composer en utilisant :
composer require ericmakesstuff/laravel-server-monitor
Vous devrez enregistrer le fournisseur de services :
// config/app.php
' providers ' => [
// ...
EricMakesStuff ServerMonitor ServerMonitorServiceProvider::class,
];
Pour publier le fichier de configuration dans app/config/server-monitor.php, exécutez :
php artisan vendor:publish --provider="EricMakesStuffServerMonitorServerMonitorServiceProvider"
Après avoir publié le fichier de configuration, vous pouvez modifier la section 'monitors'
de app/config/server-monitor.php.
Les configurations de moniteur par défaut sont :
' 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 ],
],
],
Les alertes peuvent être enregistrées dans le gestionnaire de journaux par défaut ou envoyées par e-mail, Pushover ou Slack. Les valeurs autorisées sont log
, mail
, pushover
et slack
.
Les configurations d'alerte par défaut sont :
' events ' => [
' whenDiskUsageHealthy ' => [ ' log ' ],
' whenDiskUsageAlarm ' => [ ' log ' , ' mail ' ],
' whenHttpPingUp ' => [ ' log ' ],
' whenHttpPingDown ' => [ ' log ' , ' mail ' ],
' whenSSLCertificateValid ' => [ ' log ' ],
' whenSSLCertificateInvalid ' => [ ' log ' , ' mail ' ],
' whenSSLCertificateExpiring ' => [ ' log ' , ' mail ' ],
],
Après avoir effectué l'installation de base, vous pouvez commencer à utiliser la commande monitor:run. Dans la plupart des cas, vous souhaiterez planifier cette commande afin de ne pas avoir à exécuter manuellement monitor:run chaque fois que vous souhaitez connaître l'état de santé de votre serveur.
Les commandes peuvent, comme toute autre commande, être planifiées dans le noyau de la console de Laravel.
// app/Console/Kernel.php
protected function schedule ( Schedule $ schedule )
{
$ schedule -> command ( ' monitor:run ' )-> daily ()-> at ( ' 10:00 ' );
$ schedule -> command ( ' monitor:run HttpPing ' )-> hourly ();
}
Bien entendu, les plannings utilisés dans le code ci-dessus ne sont qu’un exemple. Ajustez-les selon vos propres préférences.
Exécutez les tests avec :
vendor/bin/phpunit
Plus de mesures de surveillance. N'hésitez pas à soumettre des idées via des tickets ou des pull request !
Veuillez consulter CONTRIBUER pour plus de détails.
Si vous découvrez des problèmes liés à la sécurité, veuillez envoyer un e-mail à [email protected] au lieu d'utiliser le suivi des problèmes.
La licence MIT (MIT). Veuillez consulter le fichier de licence pour plus d'informations.