Я задолбался пропускать падения моих сервисов и написал HealthCheck-бота
Пишешь боту имя своего домена и бот проверяет его раз в минуту.
К идее создания бота я пришёл при запуске другого продукта для проверки резюме на английском -
В день запуска всё пошло не так😎
Ошибка #1
Большинство сервисов работали на одном сервере, а это
Запускал я довольно требовательный сервис к ресурсам - используется OCR (распознавание символов на pdf файле), алгоритм категоризации, нейронная сеть для определения насколько резюме соответствует профессии найденной по ключевым словам. В общем жирный сервис, который ест много ресурсов процессора и при превышении лимитов - он зависает намертво вместе с сервером.
Ошибка #2
После запуска я не особо следил за сервисом, занимался своими делами.
В итоге проблему с виртуальной машиной, где крутятся все мои сервисы я заметил только по комментариям от пользователей на ProductHunt.
А завис не только сервис, а вообще всё!
Приходилось перезагружать сервер и поднимать все сервисы, чтобы они ожили. Спасибо боту @IsBotDownBot - я понимал когда падали мои боты😂
Ошибка #3
В сервисе не было ограничений на количество загрузок резюме - в итоге кто-то отчаянно пытался получить высокий балл от https://checkcv.info/ и загружал резюме около сотни раз, это нагружало сервер и тоже приводило к падению сервера.
Решение
После 5 падений сервиса (довольно позорно, но что поделать) я начал искать быстрое решение для мониторинга, желательно бесплатное.
Небольшой ресерч не дал простого и быстрого решения, чтобы проверять свои сервисы по доменному имени, поэтому я написал своё решение - https://t.me/YourDomainHealthCheckBot
Просто отправляешь боту свой домен - например checkcv.info - бот сам определяет доступен ли сервис по HTTPS или HTTP и начинает его пинговать раз в минуту.
В случае ошибки или недоступности сайта - бот отправит сообщение об ошибке.
Как только сервис вернется к жизни - бот сообщит и об этом.
Вот в общем-то и все, так же можно редактировать свой список сайтов.
Ещё можно пингануть сайт один раз.
Кто-то подсказал, что этим ботом можно поднимать свои Heroku-сервисы к жизни.
С тех пор как запустил бота сервис пока не падал, но если упадёт узнаю об этом в течение минуты (если не упадёт сервер с ботом😏).
Буду рад услышать фидбек или предложения по улучшению -
Как бы вот https://uptimerobot.com/ В бесплатном режиме вроде 50 сайтов и пинг раз в 5 минут. Плюс вебхуки (для Слака например). Если раз в минуту - 7$/месяц (плюсом проверка ssl и т.д.) Скрин из Слака
Мне важна была частота раз в минуту, про вебхуки хорошая затея, спасибо!
Всегда пожалуйста. Вообще, если внедрить еще в Ваш бот проверку на ssl, оповещения о необходимости продлить домен и выбор страны прокси сервера, с которого идет проверка на доступность, а также чекать, если редиректит на другой домен, было бы очень круто.
Да, обновление сертификатов вечная тема, про которую забываешь. Спасибо за идею, записал в беклог
Но есть же certbot который делает это автоматом по крону. Проблемы настроить один раз?
А если платный сертификат?
То тут повод уже задуматься
Вот как раз с платным сертом беда была
Разрешите доебаться, а почему платный?
Потому что энтерпрайз
Должны страдать
вот так всегда:(
На деле вариантов всегда есть несколько. :) Openssl, если что, умеет выводить данные по дате окончания ключа.
Да это понятно, но чем сложнее путь что-то сделать, тем больше шансов это не сделать. С сертификатами всегда почему-то руки часто не доходят настроить мониторинг или вовремя обновить
Смотри второй мой комментарий. Простой и действенный. У меня так был календарик забит похожим... разорял Atlassian ))
Жаль, что оно само в календарь не добавляется)
Это дело нескольких секунд.