У меня много сайтов. И часто я сталкиваюсь с тем, что что-то где-то упало, где-то отвалилась база, где-то просрочился сертификат и т.д.
Ситуацию усложняет и то, что все мои сайты сделаны на python, а значит нужно более детально контролировать вопрос инфраструктуры (бд, redis, контейнеры и прочее). Это вам не просто сайтики на WP.
Конечно же хочется узнавать о падениях и неполадках заранее. Поэтому однажды я собрался с силами и решил настроить себе нормальный мониторинг.
UptimeRobot
Мысль настроить себе мониторинг, естественно, приходила ко мне не раз.
Так, однажды я решил попробовать UptimeRobot в качестве теста и он оказался тем что мне было нужно. Сервис реально неплохой и бесплатного тарифа хватит для большинства простых людей.
Но в какой-то момент UptimeRobot стал меня немного подбешивать (там долгая история, не суть).
Требования к мониторингу
Короче я собрался с силами и пошел искать.
Чтобы что-то решить, надо понять что решаем. От мониторинга я ожидаю:
- наличие уведомлений в Telegram
- возможность добавить много сайтов/мониторов и группировать их
- проверка ssl (сколько дней осталось, послать уведомление если сертификат протух)
- гибкая настройка (что-то мне нужно проверять чаще, что-то реже)
- чтобы все это выглядело красиво
Uptime Kuma
Я не буду проводить сравнение разных сервисов. Их реально дофига. Есть платные, есть бесплатные, есть self-hosted, есть в виде сервисов.
Что касается меня, то я пробовал парочку и остановился на Uptime Kuma.
Это open source self-hosted продукт, который умеет все то что мне нужно и даже больше и выглядит при этом бомбезно.
Демо можно потыкать тут: https://demo.uptime.kuma.pet:27000/
Неплохой обзор и примеры тут:
Цена
Штука бесплатная, но хостить ее нужно будет самому. Поэтому затраты ограничиваются ценой самого дешевого сервера.
Тут лайфхак: можно арендовать vps от Amazon целый год бесплатно. Гуглим amazon free tier. Если у вас еще нет там аккаунта, то для мониторинга это самое то. Прогрессивно и не будет стоить вам ничего.
Если вы задумали использовать self-hosting решение, то его обязательно нужно разворачивать отдельно от сайтов. Иначе когда у вас ляжет основной сервер, вместе с сайтами навернется и мониторинг, но вы об этом не узнаете. Думаю это очевидная мысль.
Соответственно из расходов у нас только отдельный vps. Я взял самый дешевый дроплет на DigitalOcean (5$/месяц).
Процесс установки описывать не буду. Ставим докер и 2мя командами запускаем Uptime Kuma. Детали описаны тут https://github.com/louislam/uptime-kuma#-how-to-install
Как это выглядит у меня.
Бонус. Мониторим купленные ссылки
В процессе использования Uptime Kuma я открыл для себя еще один кейс использования. И это мониторинг купленных ссылок.
Например, вы купили или арендовали ссылку на чужом сайте и было бы круто так же периодически проверять что все купленное стоит на месте. ~~А еще есть лом, где ссылка может пропасть в любой момент... ~~
Благо в Uptime Kuma можно мониторить не только работоспособность сайта, но и наличие текста на странице.
Создаем новый монитор, вешаем на него отдельную метку, чтобы удобно было отслеживать и вуаля.
Итог.
Просто делюсь с вами полезным инструментом, которым пользуюсь сам.
Если вам не подходит self-hosted решение попробуйте UptimeRobot.
Если у вас все еще нет мониторинга, пожалуйста, уделите час времени и сделайте его, это сэкономит вам драгоценные минуты в будущем.
Uptimerobot, кстати, иногда сходит с ума и адово дрочит сайт head запросами, когда тот ложится особенно. По логам смотрел. Спасибо за сервис🤙
Вы пишите про инфраструктуру, но я чот не понял как сервис чекает что допустим пул sql запросов переполнился или redis упал?
Он же не zabbix-лайк.
Нужно писать какой-то закрытый эндпойнт где отображаются сообщения об ошибках, и парсить ответ?