Я задолбался пропускать падения моих сервисов и написал 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 ))
Жаль, что оно само в календарь не добавляется)
Это дело нескольких секунд.
Разрешите доебаться, сколько народу до сих пор использует Windows xp и Windows 7, в которых lets encrypt не работает?
Без понятия)
Google календарь решает проблему
если ты не присоединился к проекту в середине года, думая, что там сертбот)
А серт бот для многих сертификатов даётся? По-моему, только для Let's encrypt. Понять это легко, прочитав аннотацию.
Не помню, скорее всего только для let’s encrypt. Но было бы здорово, если бы работал и с другими провайдерами
Они же будут присылать счета по форме ПФ-4? :)
Можно прокинуть как-нибудь биллинг аккаунт
Лишить менеджеров работы? :)
Они могут заняться делами поинтересней)
1) Если нужен wildcard-сертификат, то автоматизируется только через сложные костыли. И с кучей ограничений, что управление DNS-записями должно быть делегировано на ограниченный список поддерживаемых площадок.
2) На виртуальных хостингах автообновление сертификата иногда глючит, так что не лишним будет мониторить со своей стороны что все ок
Всегда есть шанс забыть настроить крон) я по крайней мере забывал не раз
Надо сделать тогда чеклист запуска проектов
Хорошая идея, пару раз уже на грабли натыкался одни и те же, надо будет сделать такой