Este paquete Laravel 5 monitoreará periódicamente el estado de su servidor y sitio web. Actualmente, proporciona notificaciones de estado de alarma/salud para el uso del disco, una función de ping HTTP para monitorear el estado de los servicios externos y un monitor de validación/vencimiento para certificados SSL.
Una vez instalado, monitorear su servidor es muy fácil. Simplemente emita este comando artesanal:
php artisan monitor:run
Solo puede ejecutar ciertos monitores a la vez:
php artisan monitor:run HttpPing
php artisan monitor:run SSLCertificate,DiskUsage
Usando el archivo de configuración en su proyecto, se puede configurar cualquier cantidad de monitores para verificar si hay problemas con la configuración de su servidor.
Cuando se ejecuta el comando monitor:run
artisan, ya sea desde la línea de comandos o usando el programador de comandos de Laravel, los monitores se ejecutan y alertan si hay un problema. El estado de alarma es configurable y las alertas se pueden enviar al registro o por correo electrónico, Pushover y Slack.
Los monitores de uso del disco verifican el porcentaje del espacio de almacenamiento que se utiliza en la partición determinada y alertan si el porcentaje excede el porcentaje de alarma configurable.
Los monitores HTTP Ping realizan una solicitud de página simple y alertan si el código de estado HTTP no es 200. Opcionalmente, pueden verificar que una determinada frase esté incluida en el origen de la página.
Los monitores de certificados SSL obtienen el certificado SSL para la URL configurada y se aseguran de que sea válido para esa URL. Se admiten certificados comodín y multidominio.
El monitor avisará si el certificado no es válido o ha caducado, y también avisará cuando se acerque la fecha de caducidad. También es configurable los días en los que avisar antes del vencimiento.
Puede instalar este paquete a través del compositor usando:
composer require ericmakesstuff/laravel-server-monitor
Deberá registrar el proveedor de servicios:
// config/app.php
' providers ' => [
// ...
EricMakesStuff ServerMonitor ServerMonitorServiceProvider::class,
];
Para publicar el archivo de configuración en app/config/server-monitor.php ejecute:
php artisan vendor:publish --provider="EricMakesStuffServerMonitorServerMonitorServiceProvider"
Después de publicar el archivo de configuración, puede editar la sección 'monitors'
de app/config/server-monitor.php.
Las configuraciones predeterminadas del monitor son:
' 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 ],
],
],
Las alertas se pueden registrar en el controlador de registro predeterminado o enviarse por correo electrónico, Pushover o Slack. Los valores permitidos son log
, mail
, pushover
y slack
.
Las configuraciones de alerta predeterminadas son:
' events ' => [
' whenDiskUsageHealthy ' => [ ' log ' ],
' whenDiskUsageAlarm ' => [ ' log ' , ' mail ' ],
' whenHttpPingUp ' => [ ' log ' ],
' whenHttpPingDown ' => [ ' log ' , ' mail ' ],
' whenSSLCertificateValid ' => [ ' log ' ],
' whenSSLCertificateInvalid ' => [ ' log ' , ' mail ' ],
' whenSSLCertificateExpiring ' => [ ' log ' , ' mail ' ],
],
Después de haber realizado la instalación básica, puede comenzar a usar el comando monitor:run. En la mayoría de los casos, querrás programar este comando para no tener que ejecutar monitor:run manualmente cada vez que quieras conocer el estado de tu servidor.
Los comandos pueden, como cualquier otro comando, programarse en el kernel de la consola 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 ();
}
Por supuesto, los horarios utilizados en el código anterior son sólo un ejemplo. Ajústelos a sus propias preferencias.
Ejecute las pruebas con:
vendor/bin/phpunit
Más métricas de seguimiento. ¡No dudes en enviar ideas a través de issues o pull request!
Consulte CONTRIBUCIÓN para obtener más detalles.
Si descubre algún problema relacionado con la seguridad, envíe un correo electrónico a [email protected] en lugar de utilizar el rastreador de problemas.
La Licencia MIT (MIT). Consulte el archivo de licencia para obtener más información.