Есть ли служба AWS / Pagerduty, которая предупредит меня, если она НЕ уведомлена?

У нас есть небольшой планировщик Java, работающий на AWS ECS. Он делает то же, что cron делал на нашем старом монолите. он запускает (fargate) задачи в док-контейнерах. У нас есть задача, которая выполняется каждый час, и она очень важна для нас. Я хочу знать, падает ли он или не запускается по какой-либо причине (например, сбой планировщика java или кто-то отключает задачу).

Я ищу службу, которая предупредит меня, если она не будет уведомлена. Я хочу вызывать систему уведомлений каждый раз, когда скрипт успешно запускается. Затем, если система предупреждений не получает уведомление «ОК», как ожидалось, она выдает предупреждение.

Я считаю, что такой сервис должен существовать, и я не хочу заново изобретать велосипед, пытаясь создать его самостоятельно. Я думаю, мой вопрос, как это называется? И где я могу получить такую ​​вещь? (мы, очевидно, используем AWS, и у нас есть учетная запись pagerDuty).


person Aidan Ewen    schedule 11.05.2018    source источник
comment
pagerduty.com/docs/guides/aws-cloudwatch-integration-guide может помочь. Возможно, вам придется немного повозиться, к сожалению, не встроенный.   -  person INVOKE Cloud    schedule 11.05.2018


Ответы (2)


Мы используем этот подход для таких типов задач. Во-первых, задача должна записать метку времени в файл в S3 или EFS. Этот файл является внешним свидетельством того, что задача выполнена до конца. Затем вам нужна служба на основе http, которая будет читать этот файл и вычислять, действительна ли отметка времени, т.е. была ли она обновлена ​​за последний час. Это может быть простой скрипт php или nodejs. Этот процесс доступен в общедоступной сети, например https://example.com/heartbeat.php. Этот сценарий возвращает код ответа http 200, если файл метки времени присутствует и действителен, или 500, если нет. Затем мы используем StatusCake для мониторинга URL-адреса и уведомляем нас через интеграцию с Pager Duty в случае инцидента. Обычно мы включаем сообщение в ответ, чтобы человек мог увидеть природу ошибки.

Это может показаться утомительным, но это надежно. О любом сбое в любом месте линии будет немедленно сообщено. У StatusCake отличный бесплатный уровень обслуживания. Этот подход можно использовать для мониторинга любой критической задачи таким же образом. Мы на собственном горьком опыте узнали, что критически важные задачи и процессы типа cron могут завершаться сбоем по ряду причин, и вы хотите знать об этом до того, как они станут критически важными для клиента. Мониторинг таких задач в режиме 24x7x365 необходим и помогает нам лучше спать по ночам.

Примечание. У нас всегда есть ежедневное событие тестирования системы, которое запускает уведомление о дежурстве пейджера в 9:00 каждый день. Для настоящих параноиков это гарантирует, что работа самого пейджера не потерпела неудачу, например, из-за неправильной настройки и т. д. Наша служба поддержки знает, что если они не получают тестовое оповещение каждый день, значит проблема в самой системе уведомлений. Дежурный техник должен знать об инциденте в соответствии с СОП. Если они не знают, то это переходит на следующий уровень, и мы знаем, что нам нужно поговорить о времени отклика. Это держит людей в напряжении. Это последняя часть, которая гарантирует, что у вас есть надежная инфраструктура мониторинга.

person Rodrigo M    schedule 12.05.2018

У OpsGene есть служба сердцебиения, которая по сути представляет собой сторожевой таймер. Вы можете настроить его так, чтобы он звонил вам, если вы не пингуете их в течение x минут.

К сожалению, я бы не рекомендовал их. Я использую их в течение 4 лет, и они дважды меняли свою систему учетных записей и молча оставили мою платную учетную запись сиротой. Мне нужно найти нового поставщика, как только у меня появится свободное время.

person David Dehghan    schedule 18.05.2020