{"id":14279,"url":"\/distributions\/14279\/click?bit=1&hash=4408d97a995353c62a7353088166cda4ded361bf29df096e086ea0bbb9c1b2fc","title":"\u0427\u0442\u043e \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435: \u0432\u044b\u0435\u0445\u0430\u0442\u044c \u043f\u043e\u0437\u0436\u0435 \u0438\u043b\u0438 \u0437\u0430\u0435\u0445\u0430\u0442\u044c \u0440\u0430\u043d\u044c\u0448\u0435?","buttonText":"","imageUuid":""}

Я задолбался пропускать падения моих сервисов и написал HealthCheck-бота

Пишешь боту имя своего домена и бот проверяет его раз в минуту.

К идее создания бота я пришёл при запуске другого продукта для проверки резюме на английском -

В день запуска всё пошло не так😎

Ошибка #1

Большинство сервисов работали на одном сервере, а это

Запускал я довольно требовательный сервис к ресурсам - используется OCR (распознавание символов на pdf файле), алгоритм категоризации, нейронная сеть для определения насколько резюме соответствует профессии найденной по ключевым словам. В общем жирный сервис, который ест много ресурсов процессора и при превышении лимитов - он зависает намертво вместе с сервером.

Не кладите яйца в одну корзину

Ошибка #2

После запуска я не особо следил за сервисом, занимался своими делами.

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

А завис не только сервис, а вообще всё!

Приходилось перезагружать сервер и поднимать все сервисы, чтобы они ожили. Спасибо боту @IsBotDownBot - я понимал когда падали мои боты😂

Кот из дома - мыши в пляс!

Ошибка #3

В сервисе не было ограничений на количество загрузок резюме - в итоге кто-то отчаянно пытался получить высокий балл от https://checkcv.info/ и загружал резюме около сотни раз, это нагружало сервер и тоже приводило к падению сервера.

Берегись козла спереди, лошади сзади, а лихого человека со всех сторон.

Решение

После 5 падений сервиса (довольно позорно, но что поделать) я начал искать быстрое решение для мониторинга, желательно бесплатное.

Небольшой ресерч не дал простого и быстрого решения, чтобы проверять свои сервисы по доменному имени, поэтому я написал своё решение - https://t.me/YourDomainHealthCheckBot

Просто отправляешь боту свой домен - например checkcv.info - бот сам определяет доступен ли сервис по HTTPS или HTTP и начинает его пинговать раз в минуту.

В случае ошибки или недоступности сайта - бот отправит сообщение об ошибке.

Как только сервис вернется к жизни - бот сообщит и об этом.

Вот в общем-то и все, так же можно редактировать свой список сайтов.

Ещё можно пингануть сайт один раз.

Кто-то подсказал, что этим ботом можно поднимать свои Heroku-сервисы к жизни.

С тех пор как запустил бота сервис пока не падал, но если упадёт узнаю об этом в течение минуты (если не упадёт сервер с ботом😏).

Буду рад услышать фидбек или предложения по улучшению -

0
190 комментариев
Написать комментарий...
RM

Как бы вот https://uptimerobot.com/ В бесплатном режиме вроде 50 сайтов и пинг раз в 5 минут. Плюс вебхуки (для Слака например). Если раз в минуту - 7$/месяц (плюсом проверка ssl и т.д.) Скрин из Слака

Ответить
Развернуть ветку
Alex Fedorov
Автор

Мне важна была частота раз в минуту, про вебхуки хорошая затея, спасибо!

Ответить
Развернуть ветку
RM

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

Ответить
Развернуть ветку
Alex Fedorov
Автор

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

Ответить
Развернуть ветку
Yury Grinev

Но есть же certbot который делает это автоматом по крону. Проблемы настроить один раз?

Ответить
Развернуть ветку
RM

А если платный сертификат?

Ответить
Развернуть ветку
Yury Grinev

То тут повод уже задуматься

Ответить
Развернуть ветку
Alex Fedorov
Автор

Вот как раз с платным сертом беда была

Ответить
Развернуть ветку
Yury Grinev

Разрешите доебаться, а почему платный?

Ответить
Развернуть ветку
Alex Fedorov
Автор

Потому что энтерпрайз

Ответить
Развернуть ветку
Sergei Timofeyev

Должны страдать

Ответить
Развернуть ветку
Alex Fedorov
Автор

вот так всегда:(

Ответить
Развернуть ветку
Sergei Timofeyev

На деле вариантов всегда есть несколько. :) Openssl, если что, умеет выводить данные по дате окончания ключа.

Ответить
Развернуть ветку
Alex Fedorov
Автор

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

Ответить
Развернуть ветку
Sergei Timofeyev

Смотри второй мой комментарий. Простой и действенный. У меня так был календарик забит похожим... разорял Atlassian ))

Ответить
Развернуть ветку
Alex Fedorov
Автор

Жаль, что оно само в календарь не добавляется)

Ответить
Развернуть ветку
Sergei Timofeyev

Это дело нескольких секунд.

Ответить
Развернуть ветку
Андрей Макарушин

Разрешите доебаться, сколько народу до сих пор использует Windows xp и Windows 7, в которых lets encrypt не работает?

Ответить
Развернуть ветку
Alex Fedorov
Автор

Без понятия)

Ответить
Развернуть ветку
Sergei Timofeyev

Google календарь решает проблему

Ответить
Развернуть ветку
Alex Fedorov
Автор

если ты не присоединился к проекту в середине года, думая, что там сертбот)

Ответить
Развернуть ветку
Sergei Timofeyev

А серт бот для многих сертификатов даётся? По-моему, только для Let's encrypt. Понять это легко, прочитав аннотацию.

Ответить
Развернуть ветку
Alex Fedorov
Автор

Не помню, скорее всего только для let’s encrypt. Но было бы здорово, если бы работал и с другими провайдерами

Ответить
Развернуть ветку
Sergei Timofeyev

Они же будут присылать счета по форме ПФ-4? :)

Ответить
Развернуть ветку
Alex Fedorov
Автор

Можно прокинуть как-нибудь биллинг аккаунт

Ответить
Развернуть ветку
Sergei Timofeyev

Лишить менеджеров работы? :)

Ответить
Развернуть ветку
Alex Fedorov
Автор

Они могут заняться делами поинтересней)

Ответить
Развернуть ветку
Дмитрий Александрович

1) Если нужен wildcard-сертификат, то автоматизируется только через сложные костыли. И с кучей ограничений, что управление DNS-записями должно быть делегировано на ограниченный список поддерживаемых площадок.
2) На виртуальных хостингах автообновление сертификата иногда глючит, так что не лишним будет мониторить со своей стороны что все ок

Ответить
Развернуть ветку
Alex Fedorov
Автор

Всегда есть шанс забыть настроить крон) я по крайней мере забывал не раз

Ответить
Развернуть ветку
Yury Grinev

Надо сделать тогда чеклист запуска проектов

Ответить
Развернуть ветку
Alex Fedorov
Автор

Хорошая идея, пару раз уже на грабли натыкался одни и те же, надо будет сделать такой

Ответить
Развернуть ветку
187 комментариев
Раскрывать всегда