{"id":14268,"url":"\/distributions\/14268\/click?bit=1&hash=1e3309842e8b07895e75261917827295839cd5d4d57d48f0ca524f3f535a7946","title":"\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c \u0438\u0433\u0440\u0430\u0442\u044c \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043c\u0435\u0441\u0442\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f71e1caf-7964-5525-98be-104bb436cb54"}

Я задолбался пропускать падения моих сервисов и написал 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
Автор

Без понятия)

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