{"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 и т.д.) Скрин из Слака

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

+1 - есть несколько десятков таких сервисов, наиболее продвинутые из них умеют проверять текст ответа, время ответа и т.д.

Ответить
Развернуть ветку
1 комментарий
dx3756

Есть хорошая бесплатная selfhosted альтернатива - Uptime Kuma.

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

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

Ответить
Развернуть ветку
30 комментариев
Дмитрий

А для поклонников отечественного https://effro.ru , почти тоже только еще и в телегу шлют алерты

Ответить
Развернуть ветку
1 комментарий
Nikita Rogatov

Есть же нормальные решения по мониторингу, зачем бот?

Ответить
Развернуть ветку
Роман Рабочий

сейчас боты в моде просто.
а так да, их примерно миллион.

Ответить
Развернуть ветку
1 комментарий
Вячеслав Гримальский

задолбался просто

Ответить
Развернуть ветку
1 комментарий
Коммунист

Ну основная задача - быстро уведомить ответственных, что нужно их внимание.

Что может подойти лучше, чем мессенджер? Слак и прочие рабочие мессенджеры используются в рабочее время.
Почта - ну вы понели.
СМС - сложнее, надо дополнительно проверять баланс, да и многие уже смс игнорируют.
Звонить - то же самое.

Из мессенджеров которые используют айти специалисты - это телеграм без вариантов.

Так что как ни посмотри, алерт в телеге - это самый простой и быстрый способ.

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

Есть конечно, но тут не надо париться с настройкой, регистрацией и т.п., отправил сайт, который хочешь чекать и всё

Ответить
Развернуть ветку
2 комментария
Alex Chernyshev

Автор, тема мониторинга работоспособности обширна и огромна, то что вы сделали это метрика из серии 'средней температуры по больнице'.

Если делать по-серьезному - нужно учитывать редиректы, зеркала, анти-DDOS системы вроде Cloudflare, нужно делать проверки из разных ЦОДв на разных континентах: из одной точки сайт может работать а из другой - нет.

Нужно сам контент проверяемой страницы уметь обрабатывать на предмет ошибок, тк очень во многих случаях ваша пинговалка будет получать 200 ОК а сам сайт работать не будет.

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

вы всё это ожидаете в бесплатном боте в телеге?)

Ответить
Развернуть ветку
4 комментария
phpony

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

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

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

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

В том и дело, что изнутри смотреть надо. Тем более на энетерпрайзе. Там вообще можно творить чудеса с Prometeus, ELK (да-да по аномалиям логов можно многое интересное видеть).

Ответить
Развернуть ветку
17 комментариев
Роман Рабочий

Хотите я вам паранои добавлю.
Пользователям вашего бота нужно еще пингать и бота в том числе.

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

Всегда можно добавить моего бота в @IsBotDownBot 😂

Ответить
Развернуть ветку
7 комментариев
Konstantin T.

Автору было лень сходить в Гугл, но не лень изобрести велосипед в 2021 )

Тут бы построить локальную систему мониторинга и автоперезапуска + прикрутить асинхронные очереди, чтобы не перегружать систему большим числом параллельных OCRов. Но мысль полетела в другом направлении...

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

Тут бы построить локальную систему мониторинга и автоперезапуска + прикрутить асинхронные очереди — и через 10 лет что-то запустить?)

Ответить
Развернуть ветку
5 комментариев
Aleksei Novikov

Hetrix

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

Это сервис мониторинга?

Ответить
Развернуть ветку
2 комментария
Artem B.
Ответить
Развернуть ветку
Роман Рабочий

а потом из 10 минутных тасков в итоге накапливается месяц...?

Ответить
Развернуть ветку
2 комментария
Аккаунт удален

Комментарий недоступен

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

А в чём проблема использовать Zabbix? Нормальные графики, эвенты

Ответить
Развернуть ветку
7 комментариев
Аккаунт удален

Комментарий недоступен

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

Время ответа уже добавил:) спасибо за фидбек

Ответить
Развернуть ветку
Denis
А ещё можно написать демона, который будет мониторить отдельные процессы в ОС и в случае чего перезагружать их

Kubernetes и хелс пробы

Ответить
Развернуть ветку
1 комментарий
Leonid Dubov

Мне страшно пользоваться для мониторинга вашим сервисом, после того как вы рассказали, как вы сервисы запускаете. А по существу - выглядит как 3-колесный велосипед, в мире где существует Тесла. Нормальный мониторинг сервиса нормального сервиса на порядок сложнее.

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

тесла стоит дорого, у вас есть тесла?)

Ответить
Развернуть ветку
4 комментария
Алексей Гарниш

Zabbix всё это позволяет. С уведомлениями там тоже более всё чем в порядке, тот же телеграм.
А если в заббиксе вдруг нет какого-то подходящего для вас шаблона, всегда можно написать свой скрипт и подключить его.
Ну и естественно что система мониторинга должна быть на отдельной машине

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

Но я же вот взял и написал свой скрипт, обернутый немного в бота. Это правда не супер много кода

Ответить
Развернуть ветку
2 комментария
Аккаунт удален

Комментарий недоступен

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

Ну, тут и устанавливать ничего не надо)

Ответить
Развернуть ветку
2 комментария
kiriharu

Комментарии не читал.

А почему бы просто не поднять какой-то Zabbix или Grafana + Prometheus и мониторить не только сайты, но и вообще любые другие сервисы, в том числе и бота? Я задаю вопрос скорее в контексте проблем автора, а не нужности юзерам.

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

А если серверов 15 и ещё шаред хостингов в 3 раза больше? Спросите сеошников, они расскажут, какие у них проблемы. Они и слов таких не знают, как Прометеус

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

Я не такой большой, чтобы поднимать себе свой заббикс)

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

"Я задолбался" - старо как мир, креативнее, товарищи, креативнее

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

вроде всего 4-5 месяцев популярен заголовок)

Ответить
Развернуть ветку
2 комментария
PiFagor

Вижу "я задолбался" в заголовке и автоматом ставлю диз. Автору пора сменить шаблон своих заголовков.

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

Да, пусть уходит отсюда и учится использовать свой невыдающийся талант на женщинах, расширяя окружность их познаний и углубляя их внутренний мир! Ему многое предстоит открыть и познать. Но ему не дадут овладеть.

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

чем вас не устраивает заголовок?)

Ответить
Развернуть ветку
1 комментарий
Дима Смирнов

Норм, мы такую штуку называли Пингер)
Хорошо, что развертывать теперь не надо ничего для такой мелочи) Спасибо)

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

Приятно слышать, пользуйтесь:)

Ответить
Развернуть ветку
 Anatoly Bereznyak

Есть приложение «Net Status», которое пингует вообще что угодно какими угодно (сетевыми) протоколами.
И поддерживать не надо.

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

Но приложение же нужно где-то держать запущенным и оно наверное под определённую ОС заточено

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

Чувак, если у тебя падают серваки, то может тебе попросить специалиста, чтобы оптимизировал код? Мало ли что ты там накалякал)

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

что "накалякал" сам и исправлю)

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

Я правильно понимаю, что вместо решения проблем из-за которых сервис постоянно падает, автор запилил мониторинг и рад?)

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

Спасибо, сервис уже не падает) сервис мониторинга сделал уже после, но я и правда рад)

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

Пролистал ветку... можно то, можно это... Из разряда очень интересно, но ничего не понял.
Я - это ЦА вашего бота. Нихера не понимаю в серверах, но пользуюсь ими на уровне интуиции. Ваш бот - то, что нужно. Никаких новых сервисов, инструкций, аккаунтов, вечеров в гугле.
Добавил сайт и спишь спокойно. Спасибо за сервис! Надеюсь проживет долго.

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

спасибо большое за отзыв! Да, я тоже добавил все свои сайты и сплю спокойно :)

Ответить
Развернуть ветку
Игорь Куприков

Prometheus + blackbox exporter
Помимо простого сайта, можно хоть умный чайник мониторить, отличное решение

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

но эта настройка будет прибита к сконфигурированным мной хостам только, чтобы добавить сайт нужно будет ручками лазить конфиг менять

Ответить
Развернуть ветку
2 комментария
Артем Денисов

https://healthchecks.io
Гениальная вещь для мониторинга чего угодно. Открытый исходный код, возможность установки на свои сервера.

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

только эта штука так устроена, что это приложение должно отправлять каждый раз туда запрос. Что делать, если сайт упал, а запрос на этот сервис улетел?

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