Как настроить будильник cloudwatch для памяти среды beanstalk - PullRequest
1 голос
/ 02 июля 2019

Я пытаюсь настроить Cloudwatch Alarm для памяти во всех экземплярах среды AWS Elastic Beanstalk.У меня есть возможность настроить использование памяти в Cloudwatch с помощью следующего учебника:

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-cw.html

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

Есть лиспособ настроить тревогу для условия, когда Instance Name = "env-name" и Metric is MemoryUtilization?

Ответы [ 3 ]

1 голос
/ 06 июля 2019

В консоли Elastic Beanstalk для вашей среды:

  1. Нажмите на ссылку Мониторинг в навигационных ссылках слева.
  2. В разделе «Обзор» в разделе «Мониторинг» нажмите кнопку «Изменить».
  3. Выберите AWSEBAutoScalingGroup для ресурса.
  4. Выберите MemoryUtilization в разделе CloudWatch Metric.
  5. Изменить статистику и описание по желанию.
  6. Нажмите кнопку «Добавить», а затем нажмите кнопку «Сохранить» в разделе «Мониторинг».
  7. Прокрутите вниз, чтобы найти новую панель, которая была добавлена. Нажмите на значок колокольчика в верхнем правом углу панели. Это приведет вас к настройкам для установки нового будильника.

Если вы не видите доступной метрики MemoryUtilization, убедитесь, что вы правильно настроили сбор метрик памяти.

1 голос
/ 11 июля 2019

Cloudwatch не может генерировать сигналы тревоги общим способом. Есть только 2 способа выполнить задачу.

1) Создайте скрипт запуска в вашем AMI. Когда запускается новый экземпляр, он отвечает за собственные сигналы тревоги Cloudwatch. Я использовал это давным-давно, и подход твердый. Однако выполнение сценариев при завершении не надежно, поэтому вам придется периодически очищать старые аварийные сигналы.

2) Используйте инструмент, который имеет достойные возможности (хм .... не Cloudwatch). Я рекомендую Blue Matador . С ними вам даже не нужно настраивать сигналы тревоги или пороги, машинное обучение автоматически определяет ваши ресурсы и создает для вас предупреждения.

Если вы попали сюда и недостаточно хорошо знаете Beanstalk или Cloudwatch, чтобы внести свой вклад, начните здесь: Как отслеживать AWS Elastic Beanstalk с CloudWatch

0 голосов
/ 06 июля 2019

Из вашего вопроса я понимаю следующие требования:

  1. У вас есть несколько метрик и вы хотите использовать логическое условие ИЛИ при настройке тревоги, например (avg metric1> x || avg metric2> y) ==> установить состояние тревоги ALARM
  2. Вы хотите, чтобы сигнализация учитывала новые метрики по мере их появления, когда новые экземпляры запускаются эластичным beanstalk во время масштабирования.
  3. Требуется старыйметрики не должны учитываться, как только масштабируется эластичный бобовый стебель.

Я думаю, что в настоящее время это невозможно.
На дискуссионных форумах AWS продолжается обсуждение [1], которое показывает, что по крайней мере(1) возможно с использованием метрической математики.Функция Metric Math поддерживает макс.10 метрик.

Решение

Вам необходимо создать одну метрику, которая будет передавать информацию о том, должен ли срабатывать сигнал тревоги или нет ( «вычисленная метрика» ).Есть несколько способов добиться этого:

  • Для сложных метрик вы можете написать скрипт bash и запустить его на экземпляре EC2 с помощью cron.Скрипт сначала запрашивает существующие метрики с использованием фильтра измерений («list-metrics»), затем собирает каждую метрику («get-metric-data»), агрегирует ее и затем выдвигает точку вычисленных метрических данных («put-metric-data»).').
  • Если показатель довольно прост, вы можете попробовать опцию aggregate скрипта AWS put-metric-data [2]:
option_settings:
  "aws:elasticbeanstalk:customoption" :
    CloudWatchMetrics : "--mem-util --mem-used --mem-avail --disk-space-util --disk-space-used --disk-space-avail --disk-path=/ --auto-scaling --aggregated"

Документация для агрегированного параметра гласит:

Добавляет агрегированные метрики для типа экземпляра, идентификатора AMI и в целом для региона .

Ссылки

[1] https://forums.aws.amazon.com/thread.jspa?threadID=94984
[2] https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html#put-metric-data

...