Система предназначена для регулярного мониторинга доступности веб-сайтов. При обнаружении недоступности сайта система отправляет уведомление в Telegram, а при восстановлении доступа также отправляет соответствующее уведомление.
Особенностью системы является использование Google Apps Script для обеспечения стабильного расписания проверок, что решает проблему задержек при использовании встроенного планировщика GitHub Actions.
Функциональность
Мониторинг нескольких сайтов — одновременная проверка нескольких доменов
Уведомления в Telegram — мгновенные оповещения о недоступности и восстановлении сайтов
Стабильное расписание — точные интервалы проверок благодаря Google Apps Script
Гибкая настройка — легкое добавление и удаление сайтов через переменные GitHub
Ведение логов — подробное логирование всех проверок и их результатов
Автоматическая очистка — удаление старых запусков для экономии места
Без серверная архитектура — работает полностью на GitHub Actions
Архитектура
Система состоит из следующих компонентов:
GitHub Actions Workflow — выполняет проверку доступности сайтов
Bash-скрипт — основная логика проверки сайтов и отправки уведомлений
Google Apps Script — обеспечивает стабильное расписание запусков
Telegram Bot — канал для отправки уведомлений
Процесс работы:
Google Apps Script запускает GitHub Actions Workflow по расписанию
Workflow запускает bash-скрипт для проверки сайтов
Скрипт проверяет доступность каждого сайта и сравнивает с предыдущим статусом
При изменении статуса отправляется уведомление в Telegram
Результаты проверок сохраняются в логах
Workflow автоматически очищает старые запуски
Настройка
Настройка GitHub Repository
Клонируйте репозиторий:
git clone https://github.com/ваше_имя/check-sites.git
cd check-sites
Настройте переменные репозитория:
Перейдите в настройки репозитория: Settings → Secrets and variables → Actions
На вкладке “Secrets” добавьте:
TELEGRAM_BOT_TOKEN — токен вашего Telegram бота
CHAT_ID — ID чата для отправки уведомлений
ACTIONS_DELETE_TOKEN — Personal Access Token с правами repo и workflow
На вкладке “Variables” добавьте:
SITES — список доменов через пробел (например: example.com site2.org site3.net)
🌐 Система мониторинга сайтов
Автоматизированная система мониторинга доступности сайтов с уведомлениями в Telegram и стабильным расписанием проверок через Google Apps Script.
Содержание
Обзор
Система предназначена для регулярного мониторинга доступности веб-сайтов. При обнаружении недоступности сайта система отправляет уведомление в Telegram, а при восстановлении доступа также отправляет соответствующее уведомление.
Особенностью системы является использование Google Apps Script для обеспечения стабильного расписания проверок, что решает проблему задержек при использовании встроенного планировщика GitHub Actions.
Функциональность
Архитектура
Система состоит из следующих компонентов:
Процесс работы:
Настройка
Настройка GitHub Repository
Клонируйте репозиторий:
Настройте переменные репозитория:
TELEGRAM_BOT_TOKEN— токен вашего Telegram ботаCHAT_ID— ID чата для отправки уведомленийACTIONS_DELETE_TOKEN— Personal Access Token с правамиrepoиworkflowSITES— список доменов через пробел (например:example.com site2.org site3.net)Настройка Google Apps Script
Создайте новый проект на script.google.com
Вставьте следующий код:
Настройте триггер:
triggerGitHubWorkflowНастройка Telegram бота
https://api.telegram.org/bot<ваш_токен>/getUpdateschat.idв ответеИспользование
После настройки система будет автоматически проверять доступность указанных сайтов каждые 5 минут.
Добавление новых сайтов для мониторинга
Чтобы добавить новые сайты для мониторинга:
SITESРучной запуск проверки
Вы можете запустить проверку вручную:
Логи и мониторинг
Система ведет два основных лог-файла:
Логи автоматически обновляются в репозитории после каждой проверки.
Устранение неполадок
Проверка не запускается по расписанию
Уведомления не приходят в Telegram
Ошибки в логах
Если в логах появляются ошибки:
SITESкорректен (домены через пробел)Лицензия
MIT