Этот пакет Laravel 5 будет периодически контролировать состояние вашего сервера и веб-сайта. В настоящее время он предоставляет уведомления о состоянии работоспособности/сигнализации для использования диска, функцию HTTP Ping для мониторинга работоспособности внешних служб и монитор проверки/истечения срока действия сертификатов SSL.
После установки мониторинг вашего сервера станет очень простым. Просто введите эту ремесленную команду:
php artisan monitor:run
Одновременно можно запускать только определенные мониторы:
php artisan monitor:run HttpPing
php artisan monitor:run SSLCertificate,DiskUsage
Используя файл конфигурации в вашем проекте, можно настроить любое количество мониторов для проверки проблем с настройкой вашего сервера.
Когда команда artisan monitor:run
выполняется либо из командной строки, либо с помощью планировщика команд Laravel, мониторы запускаются и выдают предупреждение в случае возникновения проблемы. Состояние тревоги можно настраивать, а оповещения можно отправлять в журнал или по электронной почте, через Pushover и Slack.
Мониторы использования диска проверяют процент дискового пространства, используемого в данном разделе, и предупреждают, если этот процент превышает настраиваемый процент сигнала тревоги.
Мониторы HTTP Ping выполняют простой запрос страницы и предупреждают, если код состояния HTTP не равен 200. При желании они могут проверить, включена ли определенная фраза в источник страницы.
Мониторы сертификатов SSL извлекают сертификат SSL для настроенного URL-адреса и проверяют, что он действителен для этого URL-адреса. Поддерживаются групповые и многодоменные сертификаты.
Монитор предупредит, если сертификат недействителен или срок его действия истек, а также предупредит, когда приближается дата истечения срока действия. Дни, в которые следует выдавать оповещения до истечения срока действия, также можно настроить.
Вы можете установить этот пакет через композитор, используя:
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"
После публикации файла конфигурации вы можете редактировать раздел 'monitors'
в файле app/config/server-monitor.php.
Конфигурации монитора по умолчанию:
' 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 ],
],
],
Оповещения могут регистрироваться в обработчике журнала по умолчанию или отправляться по электронной почте, через Pushover или 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). Пожалуйста, смотрите файл лицензии для получения дополнительной информации.