CLIЗавершён2024

Website Accessibility Monitor

Высокопроизводительный асинхронный сервис непрерывного мониторинга доступности веб-сайтов и серверов на Rust (HTTP/HTTPS, ICMP-пинг без Root/Admin, Telegram-алерты).

WebsiteAccessibilityMonitor (WAM) — высокопроизводительный асинхронный сервис непрерывного мониторинга доступности веб-ресурсов и серверов на языке Rust.

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

Ключевые возможности: - Параллельный опрос сотен ресурсов: асинхронный конвейер на базе Tokio и пула соединений Reqwest. - ICMP Ping без Root/Admin: использование нативного Windows IcmpSendEcho API для отправки ICMP эхо-запросов без raw socket привилегий. - Детальная метрика производительности: фиксация DNS lookup time, TCP connect time, TLS handshake, TTFB и общего времени ответа. - Оповещения в реальном времени: мгновенная отправка алертов о падениях и восстановлении сайтов в Telegram-боты и вебхуки. - Логирование и отчёты: экспорт структурированных отчётов в JSON и CSV с подсчётом процента аптайма (SLA 99.9%).

Главное

  • Параллельный опрос сотен ресурсов в секунду на базе Tokio и Reqwest
  • ICMP Ping без Root/Admin прав через нативный Windows IcmpSendEcho API
  • Детальные сетевые метрики: DNS lookup, TCP connect, TLS handshake, TTFB
  • Мгновенные Telegram-оповещения об инцидентах и восстановлении сайтов
  • Экспорт структурированных отчетов в JSON/CSV и подсчет SLA аптайма (99.9%)

Технический обзор

Архитектура и ключевые особенности

WebsiteAccessibilityMonitor (WAM) — высокопроизводительный сервис непрерывного мониторинга доступности веб-ресурсов и серверов на языке Rust.

Сервис решает задачу мониторинга SLA и быстрого обнаружения инцидентов для инфраструктурных сервисов и веб-сайтов. Благодаря многопоточному асинхронному рантайму Tokio достигается параллельный опрос сотен ресурсов в секунду при минимальном потреблении оперативной памяти и процессорного времени.

Отличительной особенностью является нативный ICMP-пинг без административных прав в Windows через специализированные системные вызовы Win32 IcmpSendEcho.

Спецификация и характеристики

Язык программирования
Rust 2024 (1.80+)
Асинхронный рантайм
Tokio 1.38+
Сетевой стек
Reqwest 0.12 (Connection Pooling, Keep-Alive, HTTP/2)
ICMP Драйвер
WinPing / Native Windows IcmpSendEcho API (No Root/Admin)
Метрики задержки
DNS lookup, TCP connect, TLS handshake, TTFB, Total Duration
Оповещения
Telegram Bot API, HTTP Webhooks
Форматы отчетов
JSON, CSV, расчёт SLA (99.9% аптайм)
Поддерживаемые ОС
Windows x64 / Linux / macOS
Лицензия
MIT

Конфигурация (config.json)

config.json

{
  "check_interval_seconds": 30,
  "timeout_seconds": 5,
  "retry_count": 2,
  "telegram_alerts": {
    "enabled": true,
    "bot_token": "YOUR_BOT_TOKEN",
    "chat_id": "YOUR_CHAT_ID"
  },
  "targets": [
    {
      "name": "PortalSHVK Main",
      "url": "https://порталшвк.рф",
      "expected_status": 200,
      "ping_enabled": true
    }
  ]
}

Сборка и запуск

Terminal

# Клонирование и сборка релиза
git clone https://github.com/ServChan/WebsiteAccessibilityMonitor.git
cd WebsiteAccessibilityMonitor
cargo build --release

# Запуск на Windows через готовый батник
.\Start.bat

Файлы для загрузки и репозиторий