Telegram-бот

Мониторинг сайта с уведомлением в Telegram

Сервис проверяет сайт с интервалом от 1 минуты, а бот @linkodium_monitor_bot пишет в Telegram, когда сайт не отвечает дольше заданного порога и когда снова заработал.

Почему Telegram, а не только почта

Письмо о том, что сайт упал, может пролежать во входящих до вечера: почту проверяют пачками, а уведомления почтового приложения многие отключают. Сообщение в Telegram приходит на телефон с тем же звуком, что и сообщения от людей, и его видно на экране блокировки. Для сбоя, который стоит денег каждую минуту, это разница между «узнал сразу» и «узнал от клиента».

При этом Telegram здесь дополняет почту, а не заменяет её. Каналы включаются независимо: можно получать о падении и туда, и туда, а о восстановлении только в Telegram.

Что присылает бот

СобытиеЧто в сообщенииКогда
Сайт недоступенНазвание, адрес и причина: таймаут, код ответа, ошибка соединения, не найдена строка на страницеКогда сайт не отвечает дольше порога уведомления
Сайт восстановленНазвание, адрес и длительность простоя в минутахПри первой успешной проверке после сбоя, о котором пришло сообщение
Медленный откликВремя ответа и заданный порог в миллисекундахЕсли задан порог отклика; не чаще раза в час для сайта
SSL-сертификат истекаетСколько дней осталось или сколько прошло после окончанияЗа выбранное число дней, затем раз в неделю
Срок домена истекаетСколько дней осталось до окончания регистрацииЗа выбранное число дней, затем раз в неделю

Сообщения о падении и восстановлении управляются двумя галками для каждого сайта: «О падениях» и «О восстановлении». Предупреждения о медленном отклике, сертификате и домене идут по галке «О падениях»: если сайт молчит о сбоях, он молчит и о них.

Команда /status

В любой момент можно отправить боту /status и получить список всех своих сайтов с текущим состоянием: работает, недоступен или на паузе, и время последней проверки по московскому времени. Удобно, когда нужно быстро ответить коллеге «всё ли в порядке» без входа в кабинет.

Как бот проверяет доступность

Сам бот сайт не проверяет: этим занимается сервис мониторинга, а бот только доставляет результат. Проверка устроена так:

  • Интервал задаётся для каждого сайта от 1 до 60 минут. По умолчанию 5 минут, и умолчание меняется в настройках аккаунта.
  • Что считается сбоем. Сервер не ответил за 30 секунд, не удалось соединиться, вернулся не тот код ответа, который вы ожидаете (по умолчанию 200), или на странице не нашлась заданная строка. Последний режим ловит ситуации, когда сервер отвечает «200», но вместо страницы показывает ошибку базы данных.
  • Метод запроса GET, HEAD или POST, можно передать свои HTTP-заголовки, например для закрытого паролем стенда. Редиректы по умолчанию проходятся до конечной страницы.
  • Ошибки DNS перепроверяются повторной попыткой, прежде чем проверка будет засчитана как неудачная: так меньше ложных тревог из-за разового сбоя резолвера.
  • Порог уведомления от 1 до 60 минут: сообщение уходит, только если сайт недоступен дольше. Если сбой закончился раньше порога, не будет ни сообщения о падении, ни сообщения о восстановлении.

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

Как подключить Telegram-бот

  1. Войдите в кабинет по Email: на почту придёт код, пароль не нужен.
  2. Откройте «Настройки» и в блоке Telegram нажмите «Получить токен».
  3. Откройте бота @linkodium_monitor_bot и отправьте ему команду, которую покажет кабинет: /start и токен через пробел.
  4. Бот ответит, что Telegram привязан к вашему аккаунту. Теперь у сайтов работают галки уведомлений для Telegram; умолчания для новых сайтов задаются там же, в настройках.

Токен одноразовый: после привязки он гаснет. Если он попал в чужие руки до использования, создайте новый, и старый перестанет работать. Отвязать чат можно кнопкой «Отвязать» в настройках.

Групповой чат для команды

Если о сбоях должны знать несколько человек, добавьте бота в группу и отправьте команду привязки прямо в ней. К аккаунту привязывается один чат, поэтому групповой заменит личный. Для более сложной маршрутизации, например разных чатов для разных проектов, есть Webhook: сервис отправит событие на ваш адрес, а дальше его можно направить куда угодно.

Другие каналы

Кроме Telegram, уведомления приходят на Email: письмо о сбое и восстановлении, а также еженедельный или ежемесячный дайджест по всем сайтам. Для интеграций есть Webhook с событиями о падении, восстановлении, медленном отклике и сроках SSL и домена; запросы можно подписать секретом (HMAC SHA-256 в заголовке X-Webhook-Signature). Если вы хотите показать состояние сайта клиентам, включите публичную страницу статуса.

Вопросы и ответы

Сколько стоит бот?

Ничего. Уведомления в Telegram входят в базовый тариф без оплаты, как и Email и Webhook. Подробнее на странице тарифов.

Почему не пришло сообщение о коротком сбое?

Сработал порог уведомления: сообщение уходит, только если сайт недоступен дольше заданного числа минут (от 1 до 60, по умолчанию 5). Сбой короче порога виден в истории проверок, но не будит вас.

Сколько сообщений придёт, если сайт лежит несколько часов?

Одно о падении и одно о восстановлении с длительностью простоя. Повторов каждые несколько минут нет.

Можно ли получать уведомления в групповой чат?

Да. Добавьте бота в группу и отправьте там команду /start с токеном из настроек. К аккаунту привязывается один чат: личный или групповой.

Можно ли получать только сообщения о падении?

Да. У каждого сайта две галки для Telegram: «О падениях» и «О восстановлении». Снимите вторую, и бот будет писать только о сбоях и предупреждениях.

Подключите мониторинг за минуту

Вход по коду из письма, без пароля и банковской карты. До 10 сайтов бесплатно.

Начать мониторинг