vankazaov/ping-monitoring-tool

Ping Monitoring Tool on PHP

v0.8.0 2023-09-10 15:05 UTC

This package is auto-updated.

Last update: 2024-11-15 10:11:50 UTC


README

Производит мониторинг доступности веб-ресурса выполняя пинг по крону и сохраняя накопленную статистику.

В случае недоступности ресурса/восстановлении доступа к ресурсу, на указанные в настройках электронные адреса направляются соответствующие уведомления. Раз в неделю отправляется накопленная статистика.

System requirements

PHP > 7, PDO, SQLite3, Curl

Installation

Можно установить через Composer:

composer require vankazaov/ping-monitoring-tool

USAGE

Для настройки утилиты, необходимо:

  1. Скопировать из директории /vendor/vankazaov/ping-monitoring-tool/src в вашу рабочую папку файлы config-example.ini и cron-run.php.
  2. Переименовать config-example.ini в config.ini
  3. Указать свои данные в конфигурационном файле.
  4. Запустить в CLI-режиме файл cron-run.php

При первом запуске будет создана база данных и загружены настройки из конфигурационного файла. При изменении настроек конфигурационного файла в базе данных они перезагрузятся автоматически.

Настройка конфигурационного файла

  1. В секции [mailer] укажите основной почтовый сервер smtp_host_base через который скрипт будет отправлять уведомления используя php-функцию mail() и резервный адрес, если основной будет недоступен.
  2. Предполагается, что будут несколько копий данного скрипта на разных серверах. Чтобы видить с какого сервера пришло письмо настройте заголовки from и from_server.
  3. По-умолчанию, включен режим повтора уведомлений о недоступности сервера каждые 60 минут. Параметры repeat_down и repeat_down_every_minutes.
  4. Укажите каким пользователям будут высылаться сообщения: на каждого нового пользователя должна быть новая строка вида recipients[] = "user1@example.com".
  5. В секции [monitoring] укажите сервера, которые необходимо мониторить: servers[] = "https://www.yandex.ru".
  6. Вы также можете настроить количество неудачных попыток достучаться до сервера, с которых начнется отправка уведомления о недоступности: failed_attempts["https://www.mera-device1.ru"] = 5. По-умолчанию, уведомление отправляется при второй неудачной попытки.
  7. Используя 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