Есть ли сервис AWS / PagerDuty, который предупредит меня, если он НЕ уведомлен
У нас есть маленький планировщик Java, работающий на AWS ECS. Он делает то, что раньше делал cron на нашем старом монолите. запускает (fargate) задачи в докерных контейнерах. У нас есть задача, которая выполняется каждый час, и она очень важна для нас. Я хочу знать, происходит ли сбой или сбой по какой-либо причине (например, сбой в планировщике Java или кто-то выключает задачу).
Я ищу услугу, которая предупредит меня, если она не будет уведомлена. Я хочу вызывать систему уведомлений каждый раз, когда скрипт успешно запускается. Затем, если система оповещения не получает уведомление "ОК", как ожидалось, она снимает оповещение.
Я полагаю, что этот вид услуг должен существовать, и я не хочу заново изобретать колесо, пытаясь построить его самостоятельно. Я думаю, мой вопрос, как это называется? И куда я могу пойти, чтобы получить такие вещи? (очевидно, что мы используем AWS и у нас есть учетная запись pagerDuty).
1 ответ
OpsGene имеет службу сердцебиения, которая по сути представляет собой сторожевой таймер. Вы можете настроить его так, чтобы он звонил вам, если вы не пингуете их в течение x минут.
К сожалению, я бы не рекомендовал их. Я использую их в течение 4 лет, и они дважды меняли свою систему учетных записей и молча оставили мою платную учетную запись осиротевшей. Мне нужно найти нового продавца, как только у меня появится свободное время.
Мы используем этот подход для подобных задач. Во-первых, задача должна записать метку времени в файл в S3 или EFS. Этот файл является внешним доказательством того, что задача была выполнена до конца. Затем вам потребуется служба на основе http, которая будет считывать этот файл и вычислять, является ли отметка времени действительной, т.е. была ли она обновлена за последний час. Это может быть простой скрипт php или nodejs. Этот процесс открыт для общего доступа, например, https://example.com/heartbeat.php. Этот скрипт возвращает http-код ответа 200, если файл метки времени присутствует и действителен, или 500, если нет. Затем мы используем StatusCake для отслеживания URL-адреса и уведомляем нас через интеграцию Pager Duty в случае возникновения инцидента. Мы обычно включаем сообщение в ответ, чтобы человек мог увидеть природу ошибки.
Это может показаться утомительным, но это надежно. Любой сбой в любом месте линии будет немедленно уведомлен. StatusCake имеет отличный бесплатный уровень обслуживания. Этот подход может использоваться для мониторинга любой критической задачи таким же образом. Мы с трудом узнали, как критические задачи и процессы типа cron могут завершаться неудачей по ряду причин, и вы хотите знать, прежде чем они станут критичными для клиента. 24x7x365 мониторинг этих типов задач необходим, и помогает нам лучше спать по ночам.
Примечание. У нас всегда есть ежедневное системное тестовое событие, которое запускает уведомление о дежурном режиме в 9 утра каждый день. Для настоящих параноиков это гарантирует, что сам пейджинговый долг каким-то образом не сработал, например, неправильная конфигурация и т. Д. Наша служба поддержки знает, что если они не получают тестовое предупреждение каждый день, в самой системе уведомлений есть проблема. Дежурный техник должен признать инцидент согласно СОП. Если они не знают, то это переходит на следующий уровень, и мы знаем, что нам нужно поговорить о времени отклика. Это держит людей на ногах. Это последний элемент, который обеспечит надежную инфраструктуру мониторинга.