TechBlogSD - Все для WordPress и WEB разработки
WEB и WordPress инструкции, новости, обзоры тем и плагинов

Мониторинг использования памяти и диска Amazon EC2 с CloudWatch

1 335

Ваш экземпляр Amazon EC2, зависший без ответа по неизвестным причинам, – это гнев Божий, который может произойти легко. На первый взгляд, Amazon CloudWatch (их система мониторинга) предоставила вам все стандартные метрики. При ближайшем рассмотрении это не так! Два наиболее важных фактора скрыты внутри виртуальной машины : использование памяти и свободное место на диске. Давайте выставим эти данные! Почему? Максимум либо, и ваш экземпляр будет на коленях мгновенно. Когда использование памяти EC2 достигнет предела как каскадный результат, оставляя вас интересно, что происходит. Ничего, просто «недостаточно» памяти. Кроме того, вы можете исчерпать дисковое пространство из-за недостаточного выделения ресурсов и мусора, заполняющего ваше драгоценное хранилище. Я покажу вам, как мы отслеживаем использование памяти и диска EC2 с наименьшими усилиями в системе Ubuntu.

Наш вариант использования имеет собственные метрики для мониторинга двух экземпляров EC2 (производство и разработка). Оба используют один и тот же образ машины Amazon (AMI) для WordPress. Это системы Ubuntu, в которых в качестве веб-сервера используется OpenLiteSpeed. Это руководство основано на официальной документации, но не имеет смысла фокусироваться на наименьших возможных шагах с рекомендуемой конфигурацией.

Подожди, пользовательские метрики бесплатны?

У Amazon очень четкие цены, но из-за большого количества услуг и вариаций таких услуг легко потеряться. Примеры цен для десятков тысяч экземпляров EC2 по цене Tesla каждый месяц не помогают. ???? По крайней мере, вы можете быть уверены, что они оснащены, чтобы справиться с вашей рабочей нагрузкой. Если вы не можете понять, сколько вещей будет стоить вам, используя таблицы цен, я рекомендую их новый calculator.aws и / или старый «Простой» ежемесячный калькулятор. Итак, можно ли добавить несколько пользовательских метрик? В степени свободного уровня, да:

Каждый месяц новые и существующие клиенты Amazon CloudWatch получают 10 метрик (применимо к подробному мониторингу для экземпляров Amazon EC2 или пользовательских метрик ), 10 аварийных сигналов, 5 ГБ размера загруженного журнала, 5 ГБ размера архивного журнала, 3 панели мониторинга и 1 миллион запросов API каждый месяц без дополнительной оплаты.

Управление идентификацией и доступом AWS

Давайте получим учетные данные для скрипта, который будет периодически отправлять данные в CloudWatch. Но сначала вам нужна политика IAM, привязанная к пользователю IAM.

Политика IAM

Для начала откройте консоль управления IAM, затем нажмите « Политики» -> «Создать политику». Скопируйте и вставьте следующее на вкладку JSON.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "ec2:DescribeTags", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics" ], "Resource": "*" } ] }
  1. Нажмите кнопку Проверка политики, чтобы вы могли назвать ее.
  2. Кнопка « Создать политику» положит конец этому безумию.

Пользователь IAM

Зайдите в Пользователи -> Добавить пользователя. Установите флажок рядом с программным доступом !

Установить программный доступ в AWS IAM

На экране « Разрешения» выберите « Прикрепить существующие политики напрямую» и для доступа к созданной политике выберите фильтр по типу политики: « Управляется клиентом».

Прикрепить управляемую клиентом политику в AWS IAM

  1. Как только вы нашли его, поставьте галочку рядом с ним, чтобы продолжить, затем Далее, Создать пользователя.
  2. Запишите идентификатор ключа доступа и секретный ключ доступа.

AWS IAM добавил пользователя

Установка

Зависимости

Подключитесь к вашему экземпляру EC2 через SSH. Установите зависимости следующим образом (нет необходимости ставить префикс sudo, если вы являетесь пользователем root):

sudo apt-get install libwww-perl libdatetime-perl

Это установит множество других зависимостей на основе Perl и может попросить вас перезапустить некоторые службы.

Скрипт мониторинга

Стоит взглянуть на страницу загрузки сценариев Amazon CloudWatch Monitoring для Linux. Он объясняет, что делает каждый файл, и вы можете проверить их, чтобы увидеть, как они работают, перед установкой.

Когда все будет готово, запустите это, чтобы загрузить ZIP-файл в вашу домашнюю папку:

wget https://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.2.zip

Эта связка распакует и удалит ZIP, войдет в его каталог, переименует шаблон учетных данных и начнет его редактирование:

unzip CloudWatchMonitoringScripts-1.2.2.zip rm CloudWatchMonitoringScripts-1.2.2.zip cd aws-scripts-mon mv awscreds.template awscreds.conf nano awscreds.conf

Полномочия

Используйте идентификатор ключа доступа и секретный ключ пользователя IAM, как показано ниже:

AWSAccessKeyId=AKIA2544XUKRHWRL54IT AWSSecretKey=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

Используйте действительные учетные данные, которые вы создали, а не эти примеры (они не работают). Нажмите Ctrl+, X затем Y и, наконец, Enter чтобы сохранить и выйти.

Конфигурация

Я выбрал следующие параметры конфигурации. Для получения дополнительной информации обратитесь к документации. Что касается использования памяти, я предпочитаю не включать кэши и буферы, поскольку они не являются частью того, что вы бы назвали использованной памятью (посмотрите, почему в Linux съел мою оперативную память! ).

метрика

  1. --mem-util Использование памяти%.
  2. --mem-used Память используется в МБ.
  3. --disk-space-util Использование дискового пространства%.
  4. --disk-space-avail Свободное место на диске в ГБ.

Дополнительные опции

  • --disk-path=/ Обязательное! При этом выбирается хранилище NVMe SSD для отчетов, которое является ядром Amazon Elastic Block Store ( Amazon EBS ). Это основное хранилище для вашего экземпляра EC2, и вы платите за его подготовленный размер (а не за фактическое использование).
  • --from-cron Подавляет вывод по расписанию.
  • Для тестирования используйте --verify --verboseсимуляцию и посмотрите, что случилось.

Тестирование

Запустите эту команду для тестирования:

./mon-put-instance-data.pl --mem-util --mem-used --disk-path=/ --disk-space-util --disk-space-avail --verify --verbose

Если вы в AWSome, это то, что он говорит вам:

Проверка успешно завершена.
Фактические показатели не отправлены в CloudWatch.

Наряду с кучей JSON Mumbo Jumbo, который выглядит весьма полезным при правильном форматировании:

{ "Namespace": "System/Linux", "__type": "com.amazonaws.cloudwatch.v2010_08_01#PutMetricDataInput", "MetricData": [ { "Value": 34.6872348564993, "Dimensions": [ { "Name": "InstanceId", "Value": "i-1234567890abcdef0" } ], "Unit": "Percent", "MetricName": "MemoryUtilization", "Timestamp": 1561651397 }, { "Timestamp": 1561651397, "Dimensions": [ { "Name": "InstanceId", "Value": "i-1234567890abcdef0" } ], "Unit": "Megabytes", "MetricName": "MemoryUsed", "Value": 634 }, { "Timestamp": 1561651397, "Dimensions": [ { "Name": "Filesystem", "Value": "/dev/nvme0n1p1" }, { "Name": "InstanceId", "Value": "i-1234567890abcdef0" }, { "Value": "/", "Name": "MountPath" } ], "Unit": "Percent", "MetricName": "DiskSpaceUtilization", "Value": 44.7727177314002 }, { "Value": 8.51539993286133, "Timestamp": 1561651397, "MetricName": "DiskSpaceAvailable", "Dimensions": [ { "Name": "Filesystem", "Value": "/dev/nvme0n1p1" }, { "Name": "InstanceId", "Value": "i-1234567890abcdef0" }, { "Value": "/", "Name": "MountPath" } ], "Unit": "Gigabytes" } ] }

Как видите, скрипт делает все за вас, например, присваивая имена метрикам. Вам просто нужно найти и выбрать их позже в консоли управления, чтобы увидеть их графики. Это четыре показателя использования памяти EC2 и диска. Даже если у вас есть два экземпляра, это 8/10 от бесплатного лимита.

Настройка CRON

Добавление команды в cron гарантирует, что CloudWatch будет получать вышеуказанные данные каждые 1-5 минут. Начните с этого:

crontab -e

Если он хочет, чтобы вы выбрали редактор, выберите nano ( 1 и Enter). Команда (больше не тестировать) является частью строки, которую нужно добавить:

*/5 * * * * ~/aws-scripts-mon/mon-put-instance-data.pl --mem-util --mem-used --disk-path=/ --disk-space-util --disk-space-avail --from-cron

Нажмите Ctrl+, X затем Y и, наконец, Enter чтобы сохранить и выйти. С этого момента cron будет запускать команду каждые 5 минут. Если вам нужно минутное разрешение, используйте */1в начале.

Показывать использование памяти EC2 и диска в CloudWatch

Перейдите в консоль управления CloudWatch. Пока вы настраиваете пользовательскую панель мониторинга, значения начинают появляться. Графические виджеты не будут такими красивыми в начале, но со временем они станут более значимыми. Чтобы увидеть, что данные поступают, перейдите к.

Amazon CloudWatch добавляет пользовательские показатели памяти и памяти EC2

Изучите, какая метрика где! CloudWatch показывает график при выборе строки. Я понимаю, что щелчок вокруг может быть хаотичным, чтобы проверить графики, когда вам нужно. Вот почему я создал панель инструментов.

Собираем пользовательскую панель

Все вышеперечисленное было почти даром, если вы не создадите красивый интерфейс для этих основных показателей. Я проведу вас через процесс создания единого графика. Вы можете повторять это столько раз, сколько вам нужно, в зависимости от того, какие показатели вы хотите увидеть и в каком порядке. Это зависит только от вас, но нам нужно было использовать память EC2 и диск; и загрузка ЦП, использование кредитов, кредитный баланс:

Мониторинг использования памяти и диска Amazon EC2 на панели мониторинга CloudWatch

Создайте новый, перейдя в и введите имя. Например, Производство или Развитие.

Amazon CloudWatch создает новую панель инструментов

Единый виджет

Чтобы создать одну часть головоломки, начните с выбора типа Линия. Это диалоговое окно скрывается за кнопкой « Добавить виджет» (кто бы мог подумать?).

Amazon CloudWatch добавить виджет на панель инструментов

  • Линия лучше всего подходит для большинства случаев, это простой график.
  • Сложенная область более экзотична, выберите то, что вы предпочитаете.
  • Номер полезен для считывания текущего значения.
  • Текст может быть использован для заголовка или ваших заметок вокруг графиков.

После того как вы нажмете « Настроить» , CloudWatch предоставит вам тот интерфейс, где вы щелкнули, чтобы найти метрику. Например, перейдите по этому пути: и нажмите на строку ..

Настройка метрического графика

Добавьте пользовательскую метрику использования памяти Amazon EC2 в CloudWatch

  • Если вам не нравится название как Вы можете переименовать его.
  • Если вы выбрали разрешение в одну минуту (в cron), выберите этот период здесь соответственно.
  • Вы все еще можете переключаться между Line, Stacked area и Number здесь, чтобы вы могли решить, что вам нужно.
  • Обратите внимание, что вы можете объединить несколько метрик и отобразить их на одном виджете.

Вкладка « Параметры графика » содержит инструменты для наиболее значительного визуального воздействия. Поскольку ограничение известно для памяти EC2 и использования диска, вы можете ввести их в настройку Max ниже (например, 16 для 16 ГБ SSD или 2048 для 2 ГБ RAM). Точно так же для процентных показателей вы можете захотеть показывать график в диапазоне от 0 до 100, а не в автоматически настраиваемом диапазоне. Таким образом, вы теряете некоторое разрешение по оси Y, но вы можете лучше определить, насколько далеко вы находитесь от ограничений, просто взглянув на приборную панель.

Параметры Amazon CloudWatch Graph

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

Amazon CloudWatch любимая панель инструментов

Вывод

В двух словах, это то, что произошло … В Ubuntu вы установили скрипт мониторинга, который (благодаря cron) постоянно отправляет данные об использовании памяти Amazon EC2 и дисков в CloudWatch. Эти пользовательские показатели отображаются на панели инструментов в виде графических виджетов. Эта настройка помогает вам увидеть скрытую информацию, чтобы вы могли соответственно подготовить свой экземпляр и его хранилище. 

Источник записи: https://letswp.io

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее