Este pacote Laravel 5 irá monitorar periodicamente a saúde do seu servidor e site. Atualmente, ele fornece notificações de status de integridade/alarme para uso de disco, uma função HTTP Ping para monitorar a integridade de serviços externos e um monitor de validação/expiração para certificados SSL.
Depois de instalado, monitorar seu servidor é muito fácil. Basta emitir este comando artesão:
php artisan monitor:run
Você pode executar apenas determinados monitores por vez:
php artisan monitor:run HttpPing
php artisan monitor:run SSLCertificate,DiskUsage
Usando o arquivo de configuração em seu projeto, qualquer número de monitores pode ser configurado para verificar problemas com a configuração do servidor.
Quando o comando monitor:run
artesão é executado, seja na linha de comando ou usando o agendador de comandos do Laravel, os monitores são executados e alertam se houver um problema. O estado do alarme é configurável e os alertas podem ser enviados para o log ou via e-mail, Pushover e Slack.
Os monitores de uso de disco verificam a porcentagem do espaço de armazenamento usado em determinada partição e alertam se a porcentagem exceder a porcentagem de alarme configurável.
Os monitores HTTP Ping executam uma solicitação de página simples e alertam se o código de status HTTP não for 200. Eles podem opcionalmente verificar se uma determinada frase está incluída na origem da página.
Os monitores de certificado SSL extraem o certificado SSL para o URL configurado e verificam se ele é válido para esse URL. Certificados curinga e de vários domínios são suportados.
O monitor alertará se o certificado for inválido ou expirado e também alertará quando a data de expiração estiver se aproximando. Os dias em que alertar antes da expiração também são configuráveis.
Você pode instalar este pacote via compositor usando:
composer require ericmakesstuff/laravel-server-monitor
Você precisará registrar o ServiceProvider:
// config/app.php
' providers ' => [
// ...
EricMakesStuff ServerMonitor ServerMonitorServiceProvider::class,
];
Para publicar o arquivo de configuração em app/config/server-monitor.php execute:
php artisan vendor:publish --provider="EricMakesStuffServerMonitorServerMonitorServiceProvider"
Depois de publicar o arquivo de configuração, você pode editar a seção 'monitors'
de app/config/server-monitor.php.
As configurações padrão do monitor são:
' 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 ],
],
],
Os alertas podem ser registrados no gerenciador de log padrão ou enviados por e-mail, Pushover ou Slack. Os valores permitidos são log
, mail
, pushover
e slack
.
As configurações de alerta padrão são:
' events ' => [
' whenDiskUsageHealthy ' => [ ' log ' ],
' whenDiskUsageAlarm ' => [ ' log ' , ' mail ' ],
' whenHttpPingUp ' => [ ' log ' ],
' whenHttpPingDown ' => [ ' log ' , ' mail ' ],
' whenSSLCertificateValid ' => [ ' log ' ],
' whenSSLCertificateInvalid ' => [ ' log ' , ' mail ' ],
' whenSSLCertificateExpiring ' => [ ' log ' , ' mail ' ],
],
Depois de executar a instalação básica, você pode começar a usar o comando monitor:run. Na maioria dos casos, você desejará agendar este comando para não precisar executar manualmente monitor:run toda vez que quiser saber a integridade do seu servidor.
Os comandos podem, como qualquer outro comando, ser agendados no kernel do console do Laravel.
// app/Console/Kernel.php
protected function schedule ( Schedule $ schedule )
{
$ schedule -> command ( ' monitor:run ' )-> daily ()-> at ( ' 10:00 ' );
$ schedule -> command ( ' monitor:run HttpPing ' )-> hourly ();
}
Claro, as programações usadas no código acima são apenas um exemplo. Ajuste-os de acordo com suas preferências.
Execute os testes com:
vendor/bin/phpunit
Mais métricas de monitoramento. Sinta-se à vontade para enviar ideias por meio de problemas ou solicitações pull!
Consulte CONTRIBUINDO para obter detalhes.
Se você descobrir algum problema relacionado à segurança, envie um e-mail para [email protected] em vez de usar o rastreador de problemas.
A licença MIT (MIT). Consulte Arquivo de licença para obter mais informações.