Использование памяти для группы автомасштабирования AWS

Я настраиваю автомасштабирование AWS, и при настройке политики масштабирования я столкнулся с этой проблемой.

Я хотел использовать память в качестве параметра, поэтому я установил CLoudwatch script для мониторинга памяти по ссылке ниже.

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html

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

Команда

./mon-put-instance-data.pl --mem-util --mem-used --mem-avail --auto-scaling = only

Ошибка:

ПРЕДУПРЕЖДЕНИЕ. Показатели автоматического масштабирования не будут отображаться на этот раз.

когда я проверяю эту ошибку в Интернете, несколько человек говорят, что это может быть ошибка экземпляра-id в /var/tmp/aws -mon, которую я проверил, это не проблема.

Любая помощь приветствуется.

Ответ 1

Ну, я сделал самую тупую вещь в этом сценарии, я отправляю это как ответ, чтобы он мог помочь кому угодно. Я тестировал экземпляр, который не был членом какой-либо группы автомасштабирования.

Ответ 2

Вот ссылка на поддержку AWS с тем же вопросом.

Вот ссылка на исходный код скрипта Perl. Я не уверен, что это можно опубликовать здесь, поэтому откройте файл ZIP, перейдите по mon-put-instance-data.pl и mon-put-instance-data.pl поиск по reported. Исходя из этого, если кажется, что ошибка возникает, если вы не предоставили ни verify, ни автомасштабирование имени группы. Так как первый только для тестирования - у нас есть победитель. Пожалуйста, предоставьте параметр автоматического масштабирования имени группы...

Ну, этого параметра нет, но если вы посмотрите поближе, вы увидите, что некоторые строки перед reported от find, есть запрос для этого. Итак... ваш экземпляр не имеет доступа.

CloudWatchClient::get_auto_scaling_group с CloudWatchClient::get_auto_scaling_group дает такой результат. Оттуда вы можете прочитать, что вы должны предоставить вашему экземпляру разрешение на публикацию данных в CloudWatch...

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

Ответ 3

Рабочее решение, если ваш экземпляр принадлежит группе Autoscaling.

rm -rf /var/tmp/aws-mon/

Тогда беги,

./mon-put-instance-data.pl --mem-util --auto-scaling=only

Когда скрипт мониторинга запускается, он кэширует instance_id в /var/tmp/aws-mon.
Один из фильтров, который он использует при получении имени группы автоматического масштабирования, - это идентификатор экземпляра. TTL для этого составляет 6 часов, поэтому, если ваш AMI имеет этот кэш, запрос будет использовать неправильный идентификатор экземпляра в течение до 6 часов после создания экземпляра, что приведет к тому, что он не сможет получить имя группы автоматического масштабирования.

REF: https://forums.aws.amazon.com/thread.jspa?threadID=117783

Ответ 4

Я столкнулся с той же проблемой, но правильный ответ на этот вопрос, возможно, вы пропустили предварительные условия, которые упоминаются в:

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html#mon-scripts- perl_prereq

Эта ошибка компиляции фактически показывает, что отсутствуют некоторые пакеты, необходимые для запуска сценария perl.

Если вы используете экземпляр Linux EC2 для запуска этих сценариев, вы, вероятно, пропустили выполнение следующей команды:

sudo yum install -y perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https perl-Digest-SHA.x86_64

После запуска этой команды ваш скрипт должен работать без ошибок.

Надеюсь, это поможет. :)