Антон Рябов bio photo

Антон Рябов

Не люблю бриться и у меня умный взгляд.

Email Twitter Github RSS

Бесплатный мониторинг для сайта

Обзор

Фото Hal Gatewood

Допустим, вы запустили сайт. Возможно личный блог, портал сообщества, продающий лендинг, сайт-резюме или хобби проект. У вас появилось небольшое количество пользователей. Несмотря на то, что вы никому ничего не обещали в плане доступности, постоянным посетителям вашего сайта будет обидно, если они не смогут к нему обратиться. Скорее всего будет обидно и вам.

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

Проект у вас небольшой, тратить N-денег в месяц на платный сервис не хочется, поэтому будем рассматривать бесплатные варианты. Недавно я проходил через этот процесс и хочу поделиться информацией. Я выбрал и сравнил 4 сервиса, плюсы и минусы которых расскажу в этой статье.

Требования

В начале про мои требования:

  • полностью бесплатный тариф, сервисы с триалом но без free не подходят
  • простой и понятный интерфейс
  • custom webhook

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

Простой и понятный интерфейс

Я знаю насколько сложными могут быть интерфейсы систем мониторинга. Большая функциональность может быть удобной когда мониторинг используется компанией с несколькими десятками сайтов, разными командами и т.д. Но в случае хобби проекта, мы будем работать с интерфейсом нечасто. Между настройкой и срабатыванием алерта, может пройти год или даже больше. Интерфейс должен быть простым и понятным, чтобы зайдя в него, мы легко могли определить причину недоступности и не было необходимости кликать на десятки кнопок.

Custom Webhook

У многих систем, о которых идет речь, есть достаточно много интеграций. Например с Slack и Telegram. Но Slack не очень подходит для личного использования, это все-таки командный инструмент. А вот Telegram выглядит очень привлекательным, но интеграция у каждой системы работает через собственного бота. У меня уже была интеграция Gitlab c Telegram. И чтобы не получать уведомления из нескольких мест, я решил что буду все нотификации заводить в один сервис, который будет их парсить и в моем личном формате отправлять в специальный мониторинговый чат.

Нашел 5 сервисов, подходящих под мои требования:

  • UptimeRobot - 50 мониторов, мин. интервал 5 минут, 2 месяца данных
  • StatusCake - 10 тестов, мин. интервал 5 минут, хранение данных не указано (или не увидел)
  • Freshping - 50 чеков, мин. интервал 1 минута, 6 месяцев данных
  • WebGazer - 1 газер, мин. интервал 5 минут, хранение данных не указано (или не увидел)
  • CULA - 50 урлов, мин. интервал 2 минуты, 180 дней данных

CULA

Функциональность бесплатного тарифа выглядит очень привлекательно, но сразу после регистрации и взгляда на панель управления, понял что не буду пользоваться этим сервисом. Интерфейс тяжелый, переусложнен, а цвета заставили мои глаза слезиться. В дальнейшем тестировании сервис не участвовал.

UptimeRobot

Этот сервис мы давно используем для мониторинга ИСБИС и там настроена интеграция с нашим Slack. Интервал проверок 5 минут и 2 месяца данных на бесплатном тарифе вполне хватает. Интерфейс немного староват и не “пиксель перфект”, но зато простой и понятный, дашборд информативный и элементы не прыгают туда сюда.

Вебхук реализован немного странно, пришлось с ним повозиться. По умолчанию присылает данные в GET-параметрах, но его можно настроить, поменять на POST запрос с JSON данными, причем содержимое можно настроить с помощью переменных. Несмотря на интервал опроса в 5 минут, реагирует на падения сервис довольно быстро и на этапе тестирования одним из первых присылал алерты.

Freshping

Вообще Fresping это только один инструмент от компании Freshworks, у них там и CRM и еще куча всего. Интерфейс современный, не сложный, напомнил Pingdom. На бесплатном тарифе доступен мощный функционал. Тут и проверки раз в минуту, и целых 6 месяцев данных, мониторинг http/tcp/icmp/dns, Apdex Score в общем богато, по сравнению с остальными.

Вебхук конфигурируется одним параметром - URL, и когда только начал тестировать их сервис, кнопка Test для вебхука не работала. После общения в чате, оказалось что у них были проблемы и потом все заработало.

StatusCake

Про этот сервис я узнал когда Pingdom (мы используем его в OneTwoTrip!) закрыл свой бесплатный тариф. StatusCake тогда особо пиарился как замена Pingdom. У них даже есть кнопка в панели, чтобы перенести конфигурацию.

Если с CULA было сразу все понятно, то тут я долго был в сомнениях. Интерфейс с одной стороны похож на Pingdom, с другой перегружен и откровенно тормозной. Особенно бесят баннеры Try Free Trial и Upgrade to save 15%. Много кнопок и ссылок замьючены, чтобы ты чувствовал себя ущербным если не платишь. Чтобы добраться до нужной тебе информации или настройки приходится сделать кучу кликов.

К моему удивлению, custom вебхук настраивается не в панели интеграций, а в настройках группы нотификаций, рядом с e-mail. Вы итоге я решил дать этому сервису шанс, ведь первоочередное это мониторинг.

WebGazer

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

По умолчанию добавлен e-mail алерт и при попытке добавить вебхук, ничего не происходит. Пару минут я не мог понять что делаю не так, потом полез в консоль разработчика и увидел там 403 на создание алерта и еще через пару минут дошло, что в бесплатном тарифе доступен только один алерт и придется выбирать каким он будет e-mail или webhook. В общем неплохо было бы ребятам ошибки нормально отображать.

Про методологию тестирования

Сначала я добавил основной домен doam.ru, но понял, что тушить блог ради проверки системы мониторинга так себе идея и сделал отдельный домен, который можно было безопасно выключать.

Итак, методология:

  • поставил специальный тестовый домен на мониторинг во всех тестируемых системах.

  • настроил в них вебхук в свой сервис, который пересылает их в единый Telegram канал

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

Финальные результаты:

Самое интересное - результаты тестирования. Я уже упоминал, что UptimeRobot реагировал быстрее всего. Почти не отставал от него Freshping, хотя это немного странно что сервис с интервалом проверок в 5 минут реагирует быстрее, чем с интервалом в 1 минуту.

С WebGazer получилось странно, толи я неправильно что-то настроил, толи у них не работали вебхуки, но от них я не получил ничего, но так как допускаю свою ошибку просто исключил сервис из тестирования, потому что ограничения бесплатного тарифа слишком жесткие и одновременно алертить и в e-mail и вебхуком нельзя.

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

Свой выбор я в итоге остановил на Freshping как основной системе и UptimeRobot в качестве запасной, в которой будут настроены только основные чеки. Надеюсь этот материал будет кому-нибудь полезен, а если у вас есть вопросы или предложения по данной теме, можете смело их задавать мне в Twitter или почту (ссылки слева под аватаркой).

#Monitoring #Observability #DevOps