Если вы несете ответственность за разработку и развертывание веб-приложений в своей среде AWS для своей организации, вероятно, вы уже слышали о AWS Elastic Beanstalk . Автоматизация и упрощение службы делают ее идеальной для развертывания, предоставления, мониторинга и масштабирования эффективных сред для запуска разработанных приложений.
Используя сервис оркестрации Amazon AWS Elastic Beanstalk, мы можем быстро развернуть и управлять всеми ресурсами для приложений, которые мы хотим загрузить в облако AWS. Elastic Beanstalk — это отличный инструмент для разработчиков, с которым легко начать работу, и он обладает рядом других преимуществ, включая:
-
Параметры автомасштабирования
-
Улучшенная производительность разработчика
-
Варианты настройки
-
Экономически эффективные возможности
Вам также может понравиться: оркестровка развертывания с AWS Elastic Beanstalk
С AWS Elastic Beanstalk мы можем раскрутить всю нашу прикладную среду без необходимости настраивать какие-либо ресурсы вручную. Скорее AWS Elastic Beanstalk берет на себя ответственность за развертывание правильной инфраструктуры для запуска загруженного кода. Кроме того, нет никаких отдельных затрат на запуск Elastic Beanstalk в AWS; вы платите только за ресурсы, которые используете для запуска своего приложения, например за хранилище, которое вы используете в Amazon S3. Также стоимость не фиксирована; он может варьироваться в зависимости от количества экземпляров EC2, размера вашего сегмента S3 и от того, как вы настроили экземпляры базы данных.
Сигналы тревоги CloudWatch для экземпляров эластичного бобового стебля
По умолчанию AWS Elastic Beanstalk использует EnvironmentHealth
метрики только совместно с CloudWatch. Чтобы включить любые другие метрики, необходимые для мониторинга Beanstalk, вам необходимо настроить расширенный мониторинг. AWS предоставляет подробную техническую документацию о том, как включить расширенный мониторинг с помощью консоли Beanstalk, интерфейса командной строки или файлов конфигурации. Вам просто нужно выбрать метрики, которые вы хотите собирать по экземпляру или среде.
После настройки расширенного мониторинга Elastic Beanstalk опубликует множество метрик в CloudWatch . Настройка на них сигналов тревоги для поиска любых отклонений и ограничений — отличный способ обнаружить проблемы в ваших средах AWS. В этом посте мы расскажем, как отслеживать дисковое пространство экземпляров Elastic Beanstalk с помощью Cloudwatch, создавая сигналы тревоги для этих метрик.
Чтобы отслеживать пространства «диска», «подкачки» и «памяти» для наших примеров Linux-экземпляров, нам просто нужно развернуть определенные сценарии. С помощью этих сценариев мы можем отслеживать любые требования, которые пожелаем.
.Ebextensions:
Если вы не использовали .ebextensions раньше; важно знать, что папка .ebextensions будет работать в вашей среде Elastic Beanstalk. Здесь мы создаем скрипт, который отслеживает метрику дискового пространства, которая будет храниться в папке .ebextension. Например, cloudwatch.config. Смотрите полный сценарий ниже для более подробной информации:
Пакеты:
Джава
xxxxxxxxxx
1
ням :
2
perl - DateTime : []
3
perl - Sys - Syslog : []
4
Perl - LWP - Протокол - https : []
5
Perl - Переключатель : []
6
Perl - URI : []
7
Perl - Bundle - LWP : []
Исходный материал:
https://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.1.zip
Container_commands:
Джава
x
1
01 - setupcron :
2
команда : |
3
echo '* / 5 * * * * root perl /opt/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl `{" Fn :: GetOptionSetting ": {" OptionName ":" CloudWatchMetrics "," DefaultValue ":" --mem-util --disk-space-util --disk-path = / "}}` >> /var/log/cwpump.log 2> & 1 ' > / etc / cron . д / з
4
02 - changeperm :
5
команда : chmod 644 / etc / cron . д / з
6
03 - changeperm :
7
команда : chmod u + x / opt / cloudwatch / aws - scripts - mon / mon - put - instance - data . пл
Option_settings:
Джава
x
1
"aws: autoscaling: launchconfiguration" :
2
IamInstanceProfile : «aws -asticbeanstank-ec2-роль»
3
"aws: эластичный стебель: customoption" :
4
CloudWatchMetrics : "--disk-space-util --disk-space-used --disk-space-aid --disk-path = /"
Создание сигналов тревоги для мониторинга дискового пространства
Чтобы создать Cloudwatch Alarms для мониторинга дискового пространства, поместите этот скрипт ниже в папку .ebextension и разверните его в приложении. Сохраните приведенный ниже скрипт как alarms.config.
Пакеты:
Джава
xxxxxxxxxx
1
ням :
2
JQ : []
x
1
ням :
2
perl - DateTime : []
3
perl - Sys - Syslog : []
4
Perl - LWP - Протокол - https : []
5
Perl - Переключатель : []
6
Perl - URI : []
7
Perl - Bundle - LWP : []
8
файлы:
xxxxxxxxxx
1
"/tmp/alarams.sh" :
2
режим : "000777"
3
содержание : |
4
# ! / bin / bash
5
RESULT = "` wget -qO- http: // 169.254.169.254 / latest / meta-data / instance-id` "
6
Region = "` curl --silent http://169.254.169.254/latest/dynamic/instance-identity/document | jq -r .region` "
7
EB_ENV = $ ( / opt / asticbeanstalk / bin / get - config environment | jq - r 'Test' )
8
AWS cloudwatch поставил - метрический - сигнализация - область = $ Регион - сигнализация - название DiskSpaceUtilization6 - $ РЕЗУЛЬТАТ - $ EB_ENV - сигнализация - описание "Сигнал , когда DiskSpaceUtilization превышает 50 процентов" - метрический - имя DiskSpaceUtilization - пространство имен System / Linux - Среднее статистическое - период 300 - порог 50 - сравнение - оператор GreaterThanThreshold - размеры Имя = Filesystem , Value = / DEV / xvda1 Name = MountPath , Value = / Name = InstanceId , Value = $ РЕЗУЛЬТАТ - оценка - периоды 2 - сигнализация - действия Арн : AWS : с.н.с. : нас - восток - 1 : XXXXXXXXXXX: Пример . Наименование - Единица Процент
Container_commands:
Джава
x
1
01_ аларамс :
2
команда : "/tmp/alarams.sh"
Публикация метрик CloudWatch
В приведенном выше сценарии мы устанавливаем порог 50%. Однако вы можете изменить этот параметр в соответствии с вашими индивидуальными требованиями. Вы также можете настроить получение оповещений по электронной почте. Вам просто нужно создать тему SNS, подписать ее на свой идентификатор электронной почты и ввести ARN SNS в скрипт.
Для публикации пользовательских метрик Amazon CloudWatch экземпляры в вашей среде должны иметь разрешение на использование CloudWatch. Вы можете предоставить разрешения экземплярам вашей среды, добавив их в профиль экземпляра среды. Вы можете добавить разрешения в профиль экземпляра до или после развертывания приложения.
Кроме того, роль IAM, которую вы используете для своего приложения Elastic Beanstalk, должна иметь полный доступ к сигнализации Cloudwatch. Только тогда он может создать метрики мониторинга дискового пространства и аварийные сигналы для экземпляров.
Теперь, чтобы отслеживать дисковое пространство и создавать сигнал тревоги, когда он достигает порогового значения в 50%, мы создаем папку с именем .ebextension в среде кода и помещаем вышеупомянутые два сценария в эту папку, затем архивируем их и загружаем в Beanstalk.
Если вы успешно запустите свое приложение, вы увидите следующее:
Метрики Beanstalk CloudWatch можно просматривать в обычном режиме через раздел «Метрики» CloudWatch, но также можно использовать вкладку «Мониторинг» в консоли Beanstalk. Для сигналов тревоги перейдите на вкладку «Сигналы тревоги» в CloudWatch, и вы найдете созданный там сигнал тревоги, как показано на рисунке ниже:
Используйте описанный метод, чтобы исключить ручную работу по мониторингу Beanstalk и запустить эту автоматическую настройку, чтобы без усилий отслеживать аномалии с вашим дисковым пространством в AWS Elastic Beanstalk без чрезмерно сложной конфигурации.
Дальнейшее чтение
Слабое уведомление с помощью CloudWatch Alamms & Lambda
AWS Elastic Load Balancing (ELB) и мониторинг