{"id":14270,"url":"\/distributions\/14270\/click?bit=1&hash=a51bb85a950ab21cdf691932d23b81e76bd428323f3fda8d1e62b0843a9e5699","title":"\u041b\u044b\u0436\u0438, \u043c\u0443\u0437\u044b\u043a\u0430 \u0438 \u0410\u043b\u044c\u0444\u0430-\u0411\u0430\u043d\u043a \u2014 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0433\u043e\u0440\u0435","buttonText":"\u041d\u0430 \u043a\u0430\u043a\u043e\u0439?","imageUuid":"f84aced9-2f9d-5a50-9157-8e37d6ce1060"}

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

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

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

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

Ошибка #1

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

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

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

Ошибка #2

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

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

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

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

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

Ошибка #3

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

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

Решение

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

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

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

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

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

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

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

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

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

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

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

Просто ответ 200 еще не гарантия, что сервис работает. Продвинутые инструменты обычно предлагают проверять отдаваемый контент по паттерну или искать определённое слово.

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

Для сервисов выставленных наружу - в большинстве кейсов 200-го кода будет достаточно, чтобы понять работает ли веб сервер

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

Но работа веб сервера еще не означает работу веб сервиса 😉 Периодически прилегающий Озон с пустой главной страницей, состоящей только из шапки и подвала - яркий тому пример.

Но так-то конечно да, большинство "цельнолитых" на бэке решений такая проверка покроет.

Ответить
Развернуть ветку
Anton T.

Тссс, не говорите ему про заббих!

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

Из пушки по воробьям

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

Когда мониторинг дороже сервера и затрат на проект👹

Ответить
Развернуть ветку
Anton T.

Достойный и праведный человек и так имеет заббих-сервер, и им мониторит все свои проекты. Сильно экономит усилия, кмк.

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

Это если у человека есть свитер и красные глаза.

Ответить
Развернуть ветку
Anton T.

или если у человека есть работа / деньги

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

Ага, если ему платят за поднятие заббиксов

Ответить
Развернуть ветку
Anton T.

Так-то, думаю, по нынешним временам не самый плохой расклад это )

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

Свитера нет, но глаза красные, шо делать

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

Ну вы уже на шатком пути

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

Шаткий путь к своему заббиксу

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

(Писать ботов)

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

заббикс для простенького проекта? вот уж нет)

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