vankazaov / ping-monitoring-tool
Ping Monitoring Tool on PHP
Installs: 37
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 0
Type:project
Requires
- php: >=7.2
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- ext-pdo: *
- ext-sqlite3: *
Requires (Dev)
- phpunit/phpunit: ^9.5
README
Производит мониторинг доступности веб-ресурса выполняя пинг по крону и сохраняя накопленную статистику.
В случае недоступности ресурса/восстановлении доступа к ресурсу, на указанные в настройках электронные адреса направляются соответствующие уведомления. Раз в неделю отправляется накопленная статистика.
System requirements
PHP > 7, PDO, SQLite3, Curl
Installation
Можно установить через Composer:
composer require vankazaov/ping-monitoring-tool
USAGE
Для настройки утилиты, необходимо:
- Скопировать из директории
/vendor/vankazaov/ping-monitoring-tool/src
в вашу рабочую папку файлыconfig-example.ini
иcron-run.php
. - Переименовать
config-example.ini
вconfig.ini
- Указать свои данные в конфигурационном файле.
- Запустить в CLI-режиме файл
cron-run.php
При первом запуске будет создана база данных и загружены настройки из конфигурационного файла. При изменении настроек конфигурационного файла в базе данных они перезагрузятся автоматически.
Настройка конфигурационного файла
- В секции
[mailer]
укажите основной почтовый серверsmtp_host_base
через который скрипт будет отправлять уведомления используя php-функциюmail()
и резервный адрес, если основной будет недоступен. - Предполагается, что будут несколько копий данного скрипта на разных серверах. Чтобы видить с какого сервера пришло письмо настройте заголовки
from
иfrom_server
. - По-умолчанию, включен режим повтора уведомлений о недоступности сервера каждые 60 минут. Параметры
repeat_down
иrepeat_down_every_minutes
. - Укажите каким пользователям будут высылаться сообщения: на каждого нового пользователя должна быть новая строка вида
recipients[] = "user1@example.com"
. - В секции
[monitoring]
укажите сервера, которые необходимо мониторить:servers[] = "https://www.yandex.ru"
. - Вы также можете настроить количество неудачных попыток достучаться до сервера, с которых начнется отправка уведомления о недоступности:
failed_attempts["https://www.mera-device1.ru"] = 5
. По-умолчанию, уведомление отправляется при второй неудачной попытки. - Используя CRON настройте нужную периодичность запуска скрипта
cron-run.php
.
файл cron-run.php
Для тестирования, вы можете настроить объект класса Logger:
$logger = new Logger('prod', 1, $repository);
Первым параметром идет режим работы: prod\debug
.
Вторым параметром идёт уровень регистрируемых сообщений: 0, 1, 2.
В любом режиме в базе данных регистрируются ошибки.
Если уровень регистрируемых ошибок равен 0, то в лог попадают только ошибки.
Если уровень больше 0, то регистрируются все сообщения.
Если уровень больше 1 и режим debug
, то весь лог выводится в консоль.
Если вы хотите распечатать содержимое таблицы в базе данных, то раскомментируйте следующие строки
//$printer = new PrintDb(); //$printer->printConsole('logs');
Вы можете распечатать любую существующую таблицу: monitoring, stats, config, logs.
CONTRIBUTING
Проект учебный, дальнейшая разработка и поддержка не предполагается.
LICENSE
BSD-3-Clause license