company_banner

Мониторинг через UptimeRobot


    Любому сайту нужен мониторинг, не существует такого ресурса, о даунтайме которого владелец предпочел бы не знать. Забавно, что многие разработчики не мониторят свои пет-проекты, а фрилансеры вообще почти никогда не заморачиваются проверкой доступности, хотя это как правило не сложнее чем подключить какую-нибудь аналитику и может сэкономить много нервов.

    Существует не один десяток сервисов для мониторинга сайтов, большинство из них полностью платные или сильно урезанные в бесплатной версии. Особняком от них стоит UptimeRobot, который предоставляет огромный функционал бесплатно и позволяет гибко настраивать платную подписку под свои нужды.

    В большинстве случаев UptimeRobot шлёт HTTP-запросы на указанный адрес и по заголовкам ответа определяет его доступность (2хх — всё ок, 4хх/5хх — в течение 30 секунд обстреливает повторными запросами из других точек, если ответ снова отрицательный, засчитывается downtime).

    Бесплатно


    • 50 мониторов с частотой обновления от 5 минут
    • HTTP(S)-запросы по любым адресам
    • Поиск ключевого слова на странице
    • Ping (ICMP-запросы)
    • Проверка портов
    • Оповещения по почте, вебхуками, сообщениями в Twitter, Telegram, Slack и в других сервисах
    • Статистика по времени отклика
    • Подробные логи за два месяца
    • Возможность публиковать статистику на общедоступную страницу (пример)
    • Открытый API

    Платно


    • До 10000 мониторов с минутным интервалом обновления
    • Отслеживание срока годности SSL-сертификата и мониторинг проблем с HTTPS
    • Разнообразная логика оповещений (с установкой интервалов и прочим)
    • Кастомизация HTTP-запросов (в том числе заголовки и статусы)
    • Heartbeat мониторинг (мониторинг серверов за NATом)
    • Оповещения смсками/звонками (до 900 в месяц)
    • Доступны логи за два года

    Как видно, бесплатных ништяков у сервиса даже больше чем покупных, и скорее всего именно это принесло UptimeRobot популярность и признание. Хотя, спустя несколько редизайнов, его всё ещё ругают за ужасный интерфейс.

    image

    Ключевые слова


    Если используете какой-нибудь компонент с условной отрисовкой (например, плашка о технических работах), с помощью поиска по keyword’ам можете отслеживать его состояние. Вообще у этой штуки много крутых вариантов использования: так как для каждого запроса сохраняется время отклика, можно замерять отрисовку разных частей приложения “со стороны” — запросы отправляются из разных точек мира и могут давать совершенно разную картину. Можно настроить алерты на появление нежелательного содержимого на странице и наоборот, проверять наличие нужного текста. Моё любимое — в два клика делается напоминалка, которая срабатывает, когда определенная статья на Хабре выходит в топ за день/неделю/etc:

    image
    image
    image

    Оповещения настраиваются в интерфейсе без каких-либо проблем:

    image

    API


    UptimeRobot предоставляет простой API в XML/JSON/JSON-P, полностью дублирующий функционал веб-версии. Подробное описание методов и параметров находится на странице API, вкратце — можно считывать статистику и логи, создавать/удалять/редактировать/сбрасывать мониторы и управлять пользователями.

    Есть интересный гайд Automating uptime monitoring on Kubernetes with UptimeRobot, клиент на Go, Python и ещё куча интерпретаций под другие языки, панелек и кастомных status pages.

    Heartbeat


    Для мониторинга серверов, недоступных напрямую, в платной версии доступны heartbeat-мониторы. При создании такого, генерируется уникальная ссылка, на которой сервис UptimeRobot слушает периодические входящие запросы от удаленного сервера. Если запросы перестали поступать, засчитывается downtime.

    Что можно сделать прямо сейчас


    На один бесплатный аккаунт полагается 50 мониторов, чего обычно вполне хватает для покрытия личных сайтов и проектов. Если у вы еще не подключили везде халявный мониторинг — самое время это сделать. За 5 минут и без малейшего вмешательства в код. А если требуется более глубокая интеграция мониторинга в проект, изучите API. Только не забудьте сначала поискать готовые решения для вашего стека, их наверняка навалом.



    RUVDS.com
    VDS/VPS-хостинг. Скидка 10% по коду HABR

    Комментарии 7

      +2
      вставлю свои 2 копейки:
      1) есть модулёк для ансибла:
      github.com/felipesantiago/ansible-uptimerobot
      2) устройства, находящиеся за натом(задохлые iiot-устройства, роутеры и тд) мониторить невозможно на бесплатном тарифе(см пункт в статье про Heartbeat), для этого был написан простой kv с экспайром ключей для heroku на бесплатный тариф. устройства за натом по крону раз в минуту дергают kv на heroku сообщая о том, что они живы(keepalive). uptimerobot, в свою очередь, проверяет что ключ есть и живой. если за время TTL(я поставил 2 минуты) устройство не посылает запросы, то считается что померло.
      github.com/hackruu/simple-kv-nodejs-http-ttl
      3) первое совмещается со вторым и получается весьма ок, все хосты, которые есть в инвентори начинают мониториться через uptimerobot. ииот-хосты заводятся аналогично, но нужно немного поменять ансибл-роль.
      +1
      Я, кстати, недавно нашел новый способ использования uptimerobots — отслеживаю поступления в нужных мне магазинах используя keyword :) Работает просто замечательно.
        0
        Вот все отлично, только подскажите, коллеги — какой сервис будет мониторить доступнось из всех локаций сразу? В парралель, а не по алгоритму как здесь ( Увы, он далеко не всегда походит
          0
          Я больше предпочитаю hetrixtools.com
          интервал 1 минута, мониторинг из 4-х разных локаций, только там 15 мониторов в бесплатной версии, но мне хватает. Уже 3 года пользуюсь полет отличный.
            0

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

              0
              UpTimeRobot умеет и в Telegram слать оповещения на бесплатном тарифе.

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

              Самое читаемое