Настройка Amazon Cloudwatch для получения оповещения, когда ваш сервер не работает


13

У меня есть экземпляр, работающий на Amazon EC2, который я превратил в веб-сервер.

Сейчас я смотрю на cloudwatch, но я не знаю, является ли это правильным инструментом для работы. По сути, я хочу получать информацию, когда сервер не работает по любой причине.

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

Я включил clouwatch и попытался настроить оповещение, но вижу только такие вещи, как вход в сеть или использование процессора, метрика d. Теперь я не знаю, справятся ли они с этим.


1
Оформить заказ я знаю, что мы не должны распространять мнение, но cloudkick - мое любимое решение для мониторинга. pingdom довольно бесполезен, так как ваш сайт может быть pingable (apache / nginx), но ваши проксированные процессы php / java / ruby ​​могут не работать. удар по реальному URL с помощью облачного пика каждые 3 минуты и проверка наличия указанного вами текста или успеха в 2хх, гораздо более полезны и обеспечивают работу всего стека. У меня есть мониторы для загрузки, использования памяти, подключения агента (сервер отключен или соединение
прервано

Вы сделали хорошее замечание здесь. Если только PHP не работает, вы все равно получите 200 ответ. Ссылка, которую вы предоставили, является хорошей альтернативой. Я посмотрю на это, когда приму окончательное решение.
Саиф Бечан

@iainlbc Вы можете настроить Pingdom, чтобы он совпадал с реальным URL и проверял конкретный текст.
Ceejayoz

Ответы:


11

Одна из рекомендаций заключается в том, чтобы отслеживать показатель, который всегда должен иметь числовое значение, например, использование ЦП, и вызывать сигнал тревоги, когда состояние показателя «недостаточно данных», вы можете использовать сервис SNS Amazon, чтобы уведомить вас об этом.

Кроме того, вы можете настроить пользовательские метрики, которые возвращают двоичное состояние для определенных сервисов (httpd, mysql и т. Д.) И генерировать оповещение в любое время при любом из этих чтений 0. Этот подход дает возможность гораздо более мелких деталей - объединить их с «недостаточными данными». чтобы охватить все случаи.

Вы можете добиться большего успеха, используя что-то, что фактически контролирует ваш сайт (например, Pingdom, UptimeRobot и т. Д.).


Я смотрел на такие сервисы, как pingdom, и я обязательно включу их. Кроме того, я тоже думал посмотреть на процессор, но думал, что произойдет, если взломать только веб-сервер. Тест на httpd, mysql и т. Д., Безусловно, поможет. Можете ли вы дать мне подсказку о том, как включить эту двоичную метрику состояния .
Саиф Бечан

Вкратце: определите способ получения статуса интересующей службы (например, ps | grep для pid / name; проверьте, используется ли порт и т. Д.), То есть сторожевой скрипт. Измените такой сценарий так, чтобы он вызывал API Cloudwatch (PutMetricData), передавая ему либо 0 (вниз), либо 1 (вверх) - было бы лучше использовать один из SDK, которые существуют для этой цели (например, Ruby, PHP, так далее); версия командной строки mon-put-data медленнее. Запустите все это с помощью cron.
cyberx86

1
Хорошо, это звучит немного сложно. Я думаю, что сервис как uptimerobot был бы лучшим выбором для меня лично. Спасибо за помощь.
Саиф Бечан

3

Вы можете использовать OpsGenie ( http://www.opsgenie.com ), чтобы отправить расширенное оповещение для CloudWatch. В настоящее время CloudWatch имеет ограниченный набор механизмов оповещения, включая электронную почту и SMS через механизм SNS.

Вы можете настроить CloudWatch для вызова API веб-сервисов OpsGenie, быстрого оповещения нужных людей с помощью push-уведомлений для приложений iPhone / Android, SMS, голосовых вызовов и т. Д. В соответствии с предпочтениями получателей.

Пожалуйста, взгляните на следующий блог для получения подробной информации:

http://www.opsgenie.com/blog/2012/09/04/aws-cloudwatch-alarms-on-your-mobile-with-opsgenie.html


2

Вы можете создать Будильник в Cloudwatch и установить будильник, который будет уведомлять вас, когда он перейдет в состояние «Недостаточно данных». Большинство уже доступных метрик взяты из VM Host, который не имеет реального представления о том, что происходит внутри вашей машины.

Для начала я бы порекомендовал установить инструменты Amazon в вашем экземпляре и настроить сценарий для сообщения чего-либо (что угодно: загрузка ЦП, что угодно) и оповещения, если эта метрика прекращает отправку данных (поэтому метрика переходит в состояние «Недостаточно данных» ).

Это всего лишь минимум, но с него следует начинать.

См. Раздел «Сценарии мониторинга» руководства разработчика Cloudwatch: http://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts.html.


Круто, именно то, что я искал.
GivP

2

Вы можете использовать Маршрут 53 и его «Проверка работоспособности». При этом вы можете отправлять оповещения SNS, а также перенаправлять пользователей на другой вторичный веб-сайт или экран ошибок. Я думаю, что это лучшее решение для вашей проблемы, чем Cloudwatch.


2

Вы можете осуществить проверку статуса EC2 . Это сделано с приборной панели EC2. Перейдите к экземплярам, ​​выберите свой экземпляр, перейдите на вкладку проверки состояния (рядом с описанием экземпляра). Нажмите на тревогу создания проверки состояния. По умолчанию «Проверка состояния не удалась (любая)» должна быть хорошей. Я всегда устанавливаю интервал больше единицы, чтобы меня не беспокоили временные проблемы.

Также возможно настроить EC2 на автоматическое восстановление вашего экземпляра, если он по какой-то причине отключается.

Я также рекомендую вторичную систему мониторинга. Тупой хорош для этого. Я установил утилиту linux, указанную на моем веб-сервере с другого хоста. Если не удается получить код ответа 200 дважды подряд, я получаю электронное письмо.


1

Если вы хотите отслеживать конечные точки HTTP, такие как API или веб-сайт, ознакомьтесь с публикацией в моем блоге о том, как этого добиться с помощью проверок работоспособности Route 53 (даже если вы не используете Route 53 для DNS):

http://eladnava.com/monitoring-http-health-email-alerts-aws/

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.