Разместить Healthchecks, ничего не устанавливая
Мониторинг наоборот: задача сама сообщает об успехе, а тревогу вызывает именно тишина.
От 8,99 €/месяц
Обзор
Healthchecks — установка, обновления и резервные копии на нас, на машине во Франции. Следит за вашими запланированными задачами и оповещает вас, когда одна из них не выполнилась. Незаменимое дополнение к резервному копированию: вы будете знать, если оно остановится. Вы ничего не устанавливаете и не настраиваете сервер: приложение появляется в сети через несколько минут после заказа и оформлено на вас.
Ему подходит тариф «Приложение Комфорт» за 8,99 €/месяц с налогом — 4 ГБ памяти. Получить сигнал — самая лёгкая операция в каталоге: один HTTP-запрос, одна строка в базе. Место занимает то, что хранится вокруг — Healthchecks сохраняет историю последних ста сигналов каждой задачи вместе с выводом, который передал скрипт, до десяти килобайт на вызов, а цикл, решающий, оповещать или нет, постоянно просыпается, чтобы сравнить каждый срок с текущим временем. С несколькими десятками задач и их журналами база спокойно растёт, а запас избавляет от необходимости наводить порядок.
Здесь заменяют Cronitor, Dead Man's Snitch или размещённую версию того же программного обеспечения. Миграция состоит не в переносе данных, а в смене адреса: каждая задача получает URL сигнала, и вы заменяете старый на новый в своих скриптах и crontab. API позволяет создать задачи серией, если их шестьдесят, и перечитать их для проверки. Скрипт сообщает об успехе одной строкой curl; если ему разрешено вызывать /start до начала и /fail в случае ошибки, вы дополнительно получаете длительность выполнения и причину сбоя. А когда наблюдаемая машина не может выйти по HTTP, обычное письмо на адрес задачи выполняет роль сигнала.
Что меняет управляемое размещение
Тревогу вызывает именно отсутствие новостей
У каждой задачи есть период и время на отставание. Пока сигнал приходит в это окно, ничего не происходит; по истечении срока уходит оповещение. Это единственная схема, которая ловит остановленный бэкап, выключенный сервер или стёртый crontab — три сбоя, которых классический мониторинг не видит.
Вывод скрипта сохраняется вместе с сигналом
Вызов /start в начале обработки измеряет длительность, вызов /fail сообщает о сбое, а код возврата команды можно передать как есть. Стандартный вывод, пришедший вместе с сигналом, сохраняется: когда бэкап падает, сообщение об ошибке уже в интерфейсе.
Расписание, как в cron
Задача может объявляться каждые шесть часов, а также «с понедельника по пятницу в 3:15», с указанием часового пояса. Healthchecks тогда вычисляет реальный следующий срок вместо простого подсчёта интервала, что избавляет от ложных тревог по выходным и при переводе часов.
Оповещения по тому каналу, который вы уже читаете
Электронная почта, webhook, Slack, Discord, Telegram, Matrix, Mattermost, ntfy, Gotify, Pushover, PagerDuty, Opsgenie. У каждой задачи есть также значок статуса в виде изображения, который можно публично показать на странице статуса, не открывая доступ к остальному.
Почему доверить это нам, а не устанавливать самим
Бэкап, остановившийся в марте
Классический случай: диск заполнен, пароль изменён, и скрипт молча прерывается. Это обнаруживают в день, когда нужно восстановление. С сигналом в конце скрипта оповещение приходит на следующее утро, а не через шесть месяцев.
Выставление счетов 1-го числа месяца
Задача, которая запускается лишь раз в месяц, — та, про которую забывают проверить. Объявленная своим cron-выражением, она отслеживается точно так же остальные одиннадцать месяцев, без лишних мыслей об этом.
Подрядчик, управляющий сорока задачами
Один проект на клиента, отдельные ключи API и публичная страница статуса для каждого проекта благодаря значкам. Клиент видит, что его резервная копия прошла этой ночью, не имея доступа к остальным.
Датчик, который должен подавать сигнал каждые пять минут
Датчик температуры, показания счётчика, блок в техническом помещении: пока он шлёт сигнал, он жив. Когда он замолкает, дело в самом устройстве, и это становится известно сразу.
Продление сертификата
Автоматическое продление работает два года, а затем незаметно ломается. Мониторинг самой задачи, а не даты истечения, предупреждает за три недели до того, как браузер покажет предупреждение.
Размещено во Франции
В нашем собственном датацентре в Новой Аквитании, которым мы управляем сами. Полезный мониторинг — это мониторинг не у того же поставщика, что и то, что он наблюдает, а на телефоне отвечает тот, кто говорит на вашем языке.
Частые вопросы
Переносить историю не нужно, и это к лучшему: важен список задач и их сроки. Вы создаёте их заново здесь — вручную, если их десять, через API, если их шестьдесят, — а затем заменяете старый URL сигнала на новый в своих скриптах и crontab. Дайте обоим мониторингам поработать параллельно неделю: это лучший способ убедиться, что ни одна задача не забыта.
Достаточно одной строки в конце скрипта: вызов curl по адресу задачи, с несколькими попытками на случай нестабильной сети. Чтобы пойти дальше, вызывают /start перед обработкой и /fail при сбое команды, что даёт длительность и причину. Если наблюдаемая машина не имеет права выходить по HTTP, у каждой задачи есть адрес электронной почты: письмо туда равносильно сигналу, что выручает на закрытом оборудовании.
Healthchecks сам ничего не тестирует: он ждёт, пока к нему обратятся. Чтобы узнать, отвечает ли сайт или действителен ли сертификат, нужен активный монитор рядом, а не это приложение. При размещении на своём сервере каждый канал оповещения настраивается со своими учётными данными — токен Telegram, адрес webhook Slack — а отправка почты зависит от указанного вами релея. Каналы SMS и WhatsApp идут через платный сторонний аккаунт, оплата которого остаётся на вас.
«Приложение Комфорт», за 8,99 €/месяц с налогом. Он даёт 4 ГБ памяти там, где приложение требует минимум 1 ГБ: запас нужен системе, а не для красоты. Сменить тариф можно и позже, без переустановки.
Устанавливать ничего не нужно: достаточно добавить обращение к URL задачи в скрипты, которые вы отслеживаете. Это одна строка на скрипт, не требующая никакой новой зависимости.