Как настроить уведомления о падении сервера в Telegram
Дата публикации: 18.05.2026

Как настроить уведомления о падении сервера в Telegram

Хочу себе такие же кнопки
ccb9a536

Как настроить уведомления о падении сервера в Telegram

Что вы получите:

  • Автоматическое сообщение в ваш Telegram‑чат в момент, когда ваш VDS‑сервер перестаёт отвечать.
  • Понимание, как работает Telegram Bot API и почему это надёжный способ оповещения.
  • Готовый скрипт, который можно запустить сразу после установки.

1. Почему Telegram — лучший канал оповещения

Плюс Что это значит для вас
Мгновенность Сообщение приходит в секунды после обнаружения проблемы.
Доступность Вы получаете уведомление на любой устройстве: телефон, планшет, ПК.
Никаких расходов Bot‑API бесплатен, не требуется сторонних сервисов.
Гибкость Можно отправлять текст, фото, файлы, даже кнопки‑действия.

Представьте, что ваш сервер — это «дом», а Telegram — это «домофон». Как только в доме появляется непрошенный гость (сервис падает), домофон сразу же сигнализирует вам, чтобы вы могли быстро отреагировать.


2. Что понадобится

Компонент Описание Как получить
Telegram‑бот Программный «посредник», который будет отправлять сообщения. Создаёте через @BotFather.
Токен бота Уникальная строка, позволяющая обращаться к Bot‑API. Выдаётся BotFather после создания бота.
Chat‑ID Идентификатор чата (личного или группы), куда будет приходить сообщение. Узнаётся через простой запрос к API.
Скрипт‑мониторинг Bash‑скрипт, проверяющий доступность сервера и вызывающий API. Пишем вручную, копируем в /usr/local/bin.
cron‑задача Планировщик, который будет запускать скрипт каждые N минут. Настраиваем через crontab -e.

Все эти элементы работают в паре: скриптTelegram Bot APIваш чат.


3. Создаём Telegram‑бота

  1. Откройте диалог с @BotFather в Telegram.
  2. Отправьте команду /newbot.
  3. Введите имя бота, например VDSMonitorBot.
  4. Введите юзернейм, который должен заканчиваться на bot, например vdsmonitor_bot.

BotFather ответит:

Congratulations! Bot was created.
Use this token to access the HTTP API:
123456789:ABCdefGhIJKlmNoPqrSTUvwxYZ

Сохраните токен (строку из цифр и букв). Он понадобится дальше.


4. Узнаём ваш Chat‑ID

Самый простой способ – написать боту любое сообщение, а затем выполнить запрос:

curl "https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates"

Замените <YOUR_TOKEN> на токен из предыдущего шага. В ответе будет JSON, где в поле chat.id находится ваш Chat‑ID. Пример:

{
  "ok": true,
  "result": [
    {
      "update_id": 123456789,
      "message": {
        "message_id": 1,
        "from": { "id": 987654321, "is_bot": false, "first_name": "Иван", "username": "ivan" },
        "chat": { "id": 987654321, "first_name": "Иван", "username": "ivan", "type": "private" },
        "date": 1700000000,
        "text": "Привет"
      }
    }
  ]
}

В данном случае chat.id = 987654321. Если вы хотите получать уведомления в группу, добавьте бота в группу, дайте ему права писать, и выполните тот же запрос – в ответе будет chat.id группы (отрицательное число).


5. Пишем скрипт‑мониторинг

Создайте файл /usr/local/bin/vds_monitor.sh и сделайте его исполняемым:

sudo nano /usr/local/bin/vds_monitor.sh
sudo chmod +x /usr/local/bin/vds_monitor.sh

Содержимое скрипта:

#!/bin/bash

# ==============================
# Конфигурация
# ==============================
BOT_TOKEN="YOUR_TOKEN_HERE"          # замените на ваш токен
CHAT_ID="YOUR_CHAT_ID_HERE"          # замените на ваш chat_id
SERVER_IP="YOUR_SERVER_IP"           # IP или домен вашего VDS
PORT=22                               # порт, который проверяем (по умолчанию SSH)
TIMEOUT=5                             # секунд, сколько ждать ответа

# ==============================
# Функция отправки сообщения в Telegram
# ==============================
send_telegram() {
    local MESSAGE=$1
    curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
        -d chat_id="${CHAT_ID}" \
        -d text="${MESSAGE}" \
        -d parse_mode="HTML"
}

# ==============================
# Проверка доступности сервера
# ==============================
if timeout ${TIMEOUT} bash -c "cat < /dev/null > /dev/tcp/${SERVER_IP}/${PORT}" 2>/dev/null; then
    # Сервер живой – ничего не делаем
    exit 0
else
    # Сервер не отвечает – отправляем уведомление
    MESSAGE="<b>⚠️ Сервер недоступен!</b>%0AIP: ${SERVER_IP}%0APорт: ${PORT}%0AВремя: $(date '+%Y-%m-%d %H:%M:%S')"
    send_telegram "${MESSAGE}"
fi

Пояснения к коду

Строка Что делает
timeout ${TIMEOUT} bash -c "cat < /dev/null > /dev/tcp/${SERVER_IP}/${PORT}" Пытается открыть TCP‑соединение к указанному IP и порту. Если успевает — сервер живой.
send_telegram() Оборачивает вызов Bot‑API, позволяет легко менять формат сообщения.
MESSAGE="<b>⚠️ Сервер недоступен!</b>..." Форматируем HTML‑сообщение (жирный шрифт, эмодзи).
exit 0 Если всё в порядке, скрипт завершается без ошибок, чтобы cron не посылал лишние письма.

Важно: замените YOUR_TOKEN_HERE, YOUR_CHAT_ID_HERE и YOUR_SERVER_IP на реальные значения.


6. Тестируем скрипт вручную

/usr/local/bin/vds_monitor.sh
  • Если сервер доступен, ничего не произойдёт.
  • Если вы умышленно отключите порт (например, sudo ufw deny 22), в Telegram придёт сообщение.

Проверьте, что сообщение выглядит так:

⚠️ Сервер недоступен!
IP: 123.45.67.89
Порт: 22
Время: 2026-05-17 14:32:10

Если всё работает – переходим к автоматизации.


7. Автоматизируем проверку с помощью cron

Откройте таблицу cron для пользователя root (или вашего пользователя, если скрипт находится в его домашней папке):

sudo crontab -e

Добавьте строку:

*/5 * * * * /usr/local/bin/vds_monitor.sh >/dev/null 2>&1

Эта запись означает: каждые 5 минут запускать скрипт. Вывод отправляется в /dev/null, чтобы не заполнять журнал.

Совет: если у вас несколько сервисов (HTTP, MySQL, Redis) – создайте отдельные функции в скрипте или отдельные скрипты, каждый со своим портом, и добавьте их в cron.


8. Расширяем функционал (по желанию)

Возможность Как добавить
Отправка скриншота Сохраните вывод top в файл, отправьте через sendDocument.
Кнопка «Перезапустить» Добавьте inline_keyboard в параметр reply_markup. При нажатии ваш сервер получит callback‑запрос, который можно обработать отдельным скриптом.
Множественные получатели Укажите несколько chat_id, разделяя запятой, или создайте группу и добавьте туда всех участников.

Эти возможности позволяют превратить простое уведомление в полноценную панель управления.


9. Полезные ссылки

Помните: все ссылки, ведущие на vdsina.ru, должны завершаться ?partner=5095. Если вы хотите добавить ссылку на наш сервис, используйте: https://vdsina.ru?partner=5095


Практика для закрепления

  1. Создайте собственного бота и получите токен. Проверьте, что бот может отправлять простое сообщение в ваш чат.
  2. Измените скрипт так, чтобы он проверял не только порт 22, но и HTTP‑сервис на порту 80, отправляя отдельные сообщения для каждого.
  3. Настройте cron так, чтобы проверка происходила каждые 2 минуты, а не каждые 5. Убедитесь, что в журнале нет ошибок.
  4. Сымитируйте падение: временно заблокируйте порт 22 (sudo ufw deny 22) и проверьте, что в Telegram пришло уведомление. Затем разблокируйте и убедитесь, что уведомление больше не приходит.
  5. Добавьте кнопку «Перезапустить» в сообщение. При её нажатии скрипт должен выполнить sudo systemctl restart sshd. Опишите, какие шаги нужны для обработки callback‑запроса (можно использовать nginx + php или python‑скрипт).

Выполняя эти упражнения, вы полностью освоите процесс настройки уведомлений о падении сервера в Telegram и сможете адаптировать его под любые свои задачи. Удачной автоматизации!


Английский видеочат для путешествий
CamZamZam - онлайн фото с вебкамеры с эффектами
Чат рулетка 2026: Интерактивные элементы
Чат-рулетка: случайный собеседник в одно нажатие
Чат рулетка в 2026: будущие функции
Интерьер с использованием текстиля
Как настроить бэкапы для вашего сайта на хостинге Host.bg
Как настроить SSL-сертификат для сайта на Host.bg
Как обновить PHP на хостинге Host.bg
Как решить проблемы с загрузкой сайта на Host.bg
Какие бывают ЛОР болезни у детей
Калькулятор зарплаты SEO-оптимизатора
Кассовые терминалы с оплатой картами
Монетизация через платные услуги
Мск: ИП или ООО — лучший старт для бизнеса?
Общение в интернете без риска
Общение вживую через экран
Онлайн-связь
Оптимизация производительности баз данных на хостинге Host.bg
Ошибки при настройке хостинга и их решения
Проблемы с доменами и их решения на хостинге Host.bg
Сколько стоит биткоин
Сравнение ценовых диапазонов хостинга Host.bg
Сумки с бусинами
Техника для строительства загородных трасс
Трубная продукция для трубопроводных конструкций
Узбекские фильмы фэнтези
Видео рулетка 18+
Видеочат с случайным собеседником онлайн
Видеообщения по всему миру
рейтинг хостингов 2026 Быстрые VDS серверы