Обзор
Допустим, вы запустили сайт. Возможно личный блог, портал сообщества, продающий лендинг, сайт-резюме или хобби проект. У вас появилось небольшое количество пользователей. Несмотря на то, что вы никому ничего не обещали в плане доступности, постоянным посетителям вашего сайта будет обидно, если они не смогут к нему обратиться. Скорее всего будет обидно и вам.
Сайт может стать недоступен по многим причинам и вам, как владельцу, захочется знать если он вдруг перестанет работать и желательно по какой причине. Поэтому рано или поздно, встанет вопрос мониторинга доступности.
Проект у вас небольшой, тратить 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 или почту (ссылки слева под аватаркой).