Ваш экземпляр 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": "*"
}
]
}
- Нажмите кнопку Проверка политики, чтобы вы могли назвать ее.
- Кнопка « Создать политику» положит конец этому безумию.
Пользователь 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 съел мою оперативную память! ).
метрика
--mem-util
Использование памяти%.--mem-used
Память используется в МБ.--disk-space-util
Использование дискового пространства%.--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. Пока вы настраиваете пользовательскую панель мониторинга, значения начинают появляться. Графические виджеты не будут такими красивыми в начале, но со временем они станут более значимыми. Чтобы увидеть, что данные поступают, перейдите к.
Изучите, какая метрика где! CloudWatch показывает график при выборе строки. Я понимаю, что щелчок вокруг может быть хаотичным, чтобы проверить графики, когда вам нужно. Вот почему я создал панель инструментов.
Собираем пользовательскую панель
Все вышеперечисленное было почти даром, если вы не создадите красивый интерфейс для этих основных показателей. Я проведу вас через процесс создания единого графика. Вы можете повторять это столько раз, сколько вам нужно, в зависимости от того, какие показатели вы хотите увидеть и в каком порядке. Это зависит только от вас, но нам нужно было использовать память EC2 и диск; и загрузка ЦП, использование кредитов, кредитный баланс:
Создайте новый, перейдя в и введите имя. Например, Производство или Развитие.
Единый виджет
Чтобы создать одну часть головоломки, начните с выбора типа Линия. Это диалоговое окно скрывается за кнопкой « Добавить виджет» (кто бы мог подумать?).
- Линия лучше всего подходит для большинства случаев, это простой график.
- Сложенная область более экзотична, выберите то, что вы предпочитаете.
- Номер полезен для считывания текущего значения.
- Текст может быть использован для заголовка или ваших заметок вокруг графиков.
После того как вы нажмете « Настроить» , CloudWatch предоставит вам тот интерфейс, где вы щелкнули, чтобы найти метрику. Например, перейдите по этому пути: и нажмите на строку ..
Настройка метрического графика
- Если вам не нравится название как Вы можете переименовать его.
- Если вы выбрали разрешение в одну минуту (в cron), выберите этот период здесь соответственно.
- Вы все еще можете переключаться между Line, Stacked area и Number здесь, чтобы вы могли решить, что вам нужно.
- Обратите внимание, что вы можете объединить несколько метрик и отобразить их на одном виджете.
Вкладка « Параметры графика » содержит инструменты для наиболее значительного визуального воздействия. Поскольку ограничение известно для памяти EC2 и использования диска, вы можете ввести их в настройку Max ниже (например, 16 для 16 ГБ SSD или 2048 для 2 ГБ RAM). Точно так же для процентных показателей вы можете захотеть показывать график в диапазоне от 0 до 100, а не в автоматически настраиваемом диапазоне. Таким образом, вы теряете некоторое разрешение по оси Y, но вы можете лучше определить, насколько далеко вы находитесь от ограничений, просто взглянув на приборную панель.
Кнопка Создать виджет завершает этот шаг. Повторите это для каждой метрики, которую вы хотите увидеть, и обратите внимание, что у вас есть доступ к встроенным, таким как загрузка ЦП и т.д. К счастью, виджеты могут быть переставлены, изменены, переименованы, отредактированы. Пока вы здесь, вы можете пометить эту панель как любимую. Что еще более важно, нажмите Сохранить панель инструментов !
Вывод
В двух словах, это то, что произошло … В Ubuntu вы установили скрипт мониторинга, который (благодаря cron) постоянно отправляет данные об использовании памяти Amazon EC2 и дисков в CloudWatch. Эти пользовательские показатели отображаются на панели инструментов в виде графических виджетов. Эта настройка помогает вам увидеть скрытую информацию, чтобы вы могли соответственно подготовить свой экземпляр и его хранилище.
Источник записи: https://letswp.io