MAATRIX / Блог / VPS для бота-уведомителя: мониторинг и алерты 24/7

VPS для бота-уведомителя: мониторинг и алерты 24/7

Блог MAATRIX · 2026-07-07

Бот-уведомитель следит за сайтами, серверами и метриками и шлёт алерт в Telegram, когда что-то ломается. Такому боту нужен независимый сервер: если он стоит на той же машине, что и объект мониторинга, он умрёт вместе с ней.

Зачем уведомителю отдельный VPS

['Главный принцип мониторинга: наблюдатель должен быть независим от объекта. Если бот, следящий за вашим сайтом, живёт на том же сервере, то при падении сервера вы не получите алерт — упадёт и наблюдатель.', 'Поэтому уведомителя выносят на отдельный дешёвый VPS, желательно в другой локации. Оттуда он пингует ваши сервисы снаружи — ровно так, как их видят пользователи.', '
  • Внешняя точка обзора — видите то же, что и клиенты.
  • Независимость — падение объекта не выключает мониторинг.
  • Дёшево — уведомителю хватает младшего тарифа.
']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для бота-уведомителя

Отправка алерта в Telegram через curl

['Отправить сообщение боту можно одним запросом к Bot API — никакой библиотеки не нужно. Создайте бота у @BotFather, узнайте свой chat_id и проверьте отправку:', '
BOT_TOKEN=\'123456:AA...\'\nCHAT_ID=\'100500\'\ncurl -s "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \\\n  --data-urlencode "chat_id=${CHAT_ID}" \\\n  --data-urlencode "text=Тест: уведомитель на связи"
', 'Этого достаточно, чтобы встроить алерты в любой bash-скрипт мониторинга.']

Скрипт мониторинга сайтов

['Простой health-check: проверяем HTTP-код и шлём алерт только при проблеме. Флаг-файл не даёт спамить одинаковыми сообщениями каждую минуту.', '
#!/usr/bin/env bash\nset -euo pipefail\nsource /opt/notifier/.env   # BOT_TOKEN, CHAT_ID\nURL=\'https://example.com/health\'\nFLAG=\'/tmp/notifier_down\'\n\nnotify() {\n  curl -s "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \\\n    --data-urlencode "chat_id=${CHAT_ID}" \\\n    --data-urlencode "text=$1" >/dev/null\n}\n\ncode=$(curl -s -o /dev/null -w \'%{http_code}\' --max-time 10 "$URL" || echo 000)\nif [ "$code" != "200" ]; then\n  [ -f "$FLAG" ] || notify "🔴 $URL недоступен (код $code)"\n  touch "$FLAG"\nelse\n  if [ -f "$FLAG" ]; then notify "🟢 $URL снова работает"; rm -f "$FLAG"; fi\nfi
', '
sudo mkdir -p /opt/notifier\nsudo mv check.sh /opt/notifier/ && sudo chmod +x /opt/notifier/check.sh
']

Таймер systemd вместо cron

['Таймеры systemd надёжнее cron: у них есть логи, зависимости и защита от наложений запусков. Создаём service и timer:', "
sudo tee /etc/systemd/system/notifier.service >/dev/null <<'EOF'\n[Unit]\nDescription=Site health check\n\n[Service]\nType=oneshot\nExecStart=/opt/notifier/check.sh\nEOF
", "
sudo tee /etc/systemd/system/notifier.timer >/dev/null <<'EOF'\n[Unit]\nDescription=Run health check every minute\n\n[Timer]\nOnBootSec=1min\nOnUnitActiveSec=1min\n\n[Install]\nWantedBy=timers.target\nEOF
", '
sudo systemctl daemon-reload\nsudo systemctl enable --now notifier.timer\nsystemctl list-timers notifier.timer
']

Что ещё стоит мониторить

['Тот же подход расширяется на любые метрики самого сервера — место на диске, память, нагрузку. Пример проверки диска:', '
use=$(df / | awk \'END{gsub("%","",$5); print $5}\')\n[ "$use" -gt 90 ] && notify "⚠️ Диск заполнен на ${use}%"
', '
  • Аптайм сайтов и API — HTTP-код и время ответа.
  • Ресурсы сервера — диск, RAM, load average.
  • Сертификаты TLS — алерт за 14 дней до истечения.
  • SSH-входы — уведомление о новом логине.
']

Где брать сервер и частые ошибки

['Уведомителю нужен минимум ресурсов — младшего тарифа хватает с запасом. На MAATRIX это AMD EPYC + NVMe от $8/мес с ежедневными бэкапами, а две локации (UK и США) позволяют держать мониторинг в другой стране относительно ваших основных серверов — так вы поймаете и региональные сетевые сбои. Оплата картой РФ, СБП, криптой или токеном MAAT.', '
  • Уведомитель на том же сервере — не сообщит о его падении.
  • Нет защиты от повторов — бот засыпет вас алертами каждую минуту.
  • Малый --max-time или его отсутствие — ложные срабатывания на медленном ответе.
  • cron без логов — молчаливые сбои проверки; берите systemd-таймер.
']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для бота-уведомителя

Частые вопросы

Как узнать свой chat_id?

Напишите боту любое сообщение и откройте https://api.telegram.org/bot<ТОКЕН>/getUpdates — в ответе будет поле chat.id.

Таймер systemd или cron?

Таймер systemd предпочтительнее: есть журнал в journalctl, защита от параллельных запусков и привязка к состоянию системы.

Можно ли слать алерты в группу?

Да, добавьте бота в группу и используйте её chat_id (он отрицательный). Для тем супергрупп добавьте параметр message_thread_id.