AWS CloudWatch по умолчанию предлагает множество метрик для мониторинга, но не включает метрики, необходимые для детального отслеживания использования памяти и дискового пространства. Если вы хотите отслеживать память или контролировать свободное место на диске через CloudWatch, вам нужно сначала добавить эти метрики в ваш аккаунт с помощью пользовательских скриптов.
В этой статье мы рассмотрим, как отслеживать показатели памяти и диска на EC2-инстансах с операционной системой Linux, используя AWS CloudWatch. Учтите, что данный метод не подойдет для Linux-систем вне сети EC2.
Чтобы начать, вам потребуется установить CloudWatch Agent на ваш экземпляр ECЭто можно сделать с помощью команды:
sudo yum install amazon-cloudwatch-agent
После установки необходимо настроить агент, создав файл конфигурации. В этом файле указываются метрики, которые вы хотите отслеживать, включая использование памяти, загрузку процессора и дисковое пространство. Пример базового конфигурационного файла:
{
"metrics": {
"namespace": "MyApp",
"metrics_collected": {
"mem": {
"measurement": [
"mem_used_percent"
],
"metrics_collection_interval": 60
},
"disk": {
"measurement": [
"used_percent"
],
"metrics_collection_interval": 60,
"resources": [
"*"
]
}
}
}
}
После создания файла конфигурации, его нужно сохранить, например, как config.json. Далее, запустите CloudWatch Agent с помощью следующей команды:
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -s -c file:/path/to/config.json
Теперь метрики будут отправляться в CloudWatch, и вы сможете настроить алерты и дашборды для их мониторинга. Также полезно использовать AWS CLI для проверки статуса агента:
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a status
Наконец, помните, что для эффективного мониторинга стоит также учитывать настройки IAM, чтобы обеспечить необходимые разрешения для CloudWatch Agent на вашем EC2-инстансе.
Содержание статьи
Предварительные требования
В данном руководстве будут использоваться Perl-скрипты от команды AWS, у которых есть некоторые зависимости. Для установки этих зависимостей в зависимости от вашей ОС вы можете воспользоваться следующими командами.
Для систем на базе Redhat:
sudo yum install perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https perl-Digest-SHA sudo yum install zip unzip
Для систем на основе Debian:
sudo apt-get update sudo apt-get install unzip libwww-perl libdatetime-perl
Для SUSE Linux Enterprise Server:
sudo zypper install perl-Switch perl-DateTime sudo zypper install –y "perl(LWP::Protocol::https)"
Обратите внимание, что для успешной работы скриптов может потребоваться установка дополнительных пакетов, таких как perl-JSON для работы с JSON-данными или perl-XML-LibXML для работы с XML. Рекомендуется также проверять наличие обновлений для всех установленных пакетов с помощью соответствующих команд для вашей системы.
При установке Perl-пакетов используйте менеджеры пакетов вашей системы, чтобы избежать конфликтов и обеспечить совместимость с другими установленными программами.
Загрузка и настройка скрипта
Команда AWS предоставляет скрипты для мониторинга CloudWatch, которые можно просто скачать и настроить на своей системе. Для загрузки и извлечения скриптов выполните следующую команду.
cd /opt wget http://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.1.zip unzip CloudWatchMonitoringScripts-1.2.1.zip
Затем создайте файл учетных данных, скопировав файл-шаблон.
cd /opt/aws-scripts-mon cp awscreds.template awscreds.conf
После этого откройте файл awscreds.conf в текстовом редакторе и заполните его вашими учетными данными AWS, включая Access Key ID и Secret Access Key. Убедитесь, что у вас есть необходимые разрешения для доступа к CloudWatch.
Для удобства мониторинга вы можете настроить периодические задания с помощью cron. Это позволит автоматически запускать скрипты через заданные промежутки времени. Например, для выполнения скрипта каждые 5 минут добавьте следующую строку в crontab:
*/5 * * * * /opt/aws-scripts-mon/mon-put-instance-data.pl --mem-util --disk-space-util --disk-space-root / --from-cron
Не забудьте установить необходимые пакеты, такие как unzip и wget, если они еще не установлены на вашей системе. Это можно сделать с помощью следующих команд:
sudo apt-get install unzip wget
После успешной настройки скрипта вы сможете видеть метрики в AWS CloudWatch, что поможет вам лучше отслеживать состояние вашей инфраструктуры.
Для повышения безопасности ваших учетных данных рекомендуется установить права доступа на файл awscreds.conf, чтобы ограничить доступ к нему только для пользователя, под которым запускаются скрипты:
chmod 600 /opt/aws-scripts-mon/awscreds.conf
Также стоит отметить, что AWS CloudWatch поддерживает множество метрик, и вы можете расширить функциональность скриптов, добавляя дополнительные параметры. Ознакомьтесь с документацией AWS для получения информации о доступных метриках и их настройке.
В случае возникновения проблем с запуском скриптов, проверьте логи, которые могут помочь в диагностике ошибок. Логи можно найти в директории, откуда запускается скрипт, или настроить вывод в отдельный файл.
Таким образом, правильно настроенный скрипт мониторинга позволит вам получать актуальную информацию о состоянии вашего сервера и быстро реагировать на возможные проблемы.
Тестирование и настройка расписания
Теперь ваша настройка завершена. Для проверки соединения между скриптом и вашим аккаунтом AWS выполните следующую команду.
./mon-put-instance-data.pl --mem-util --verify --verbose
При успешной проверке вывод будет аналогичен следующему.
Verification completed successfully. No actual metrics sent to CloudWatch.
Верификация завершена успешно. Вы можете добавить скрипт в crontab, чтобы он выполнялся регулярно и отправлял данные в ваш аккаунт ECОтредактируйте crontab и добавьте следующую команду для запуска каждые 5 минут.
*/5 * * * * /opt/aws-scripts-mon/mon-put-instance-data.pl --mem-used-incl-cache-buff --mem-util --disk-space-util --disk-path=/ --from-cron
Не забудьте, что для успешного выполнения скрипта ваш экземпляр EC2 должен иметь установленный агент CloudWatch и соответствующие права IAM. Убедитесь, что роль IAM, присвоенная вашему экземпляру, имеет необходимые разрешения для отправки метрик в CloudWatch.
Также вы можете просмотреть метрики в консоли AWS CloudWatch, чтобы убедиться, что данные корректно отображаются. Если вы хотите изменить частоту запуска скрипта, просто отредактируйте соответствующие значения в crontab.
Помимо мониторинга памяти и дискового пространства, рассмотрите возможность добавления дополнительных параметров для отслеживания других ресурсов, таких как использование процессора и сетевой трафик, что поможет вам лучше управлять производительностью вашего экземпляра.
Рекомендуется также настроить уведомления в CloudWatch, чтобы получать оповещения о превышении пороговых значений для различных метрик. Это позволит вам оперативно реагировать на потенциальные проблемы, такие как недостаток памяти или высокий уровень загрузки процессора.
Если вы хотите дополнительно оптимизировать работу вашего экземпляра EC2, изучите возможность использования Auto Scaling, что позволит автоматически добавлять или удалять экземпляры в зависимости от нагрузки, обеспечивая при этом высокую доступность ваших приложений.
Наконец, не забывайте регулярно проверять и обновлять ваши скрипты и настройки, чтобы быть в курсе последних изменений и улучшений в AWS и CloudWatch.
Просмотр метрик в CloudWatch
После добавления записи в crontab потребуется немного времени, чтобы система собрала данные для отображения в графиках метрик. Через некоторое время
>> Войдите в AWS Dashboard >> Перейдите в сервис CloudWatch >> Нажмите на кнопку «Browse Metrics» >> Выберите вашу систему Linux в разделе «Пользовательские пространства имен».
Теперь выберите любые метрики для просмотра данных в графике, как показано на скриншоте ниже.

Важно помнить, что метрики в CloudWatch обновляются с определённой периодичностью, и это может занять от нескольких минут до получаса. Вы можете настроить оповещения на основе определённых порогов для мониторинга критически важных метрик, таких как использование процессора или памяти. Это позволит вам получать уведомления по электронной почте или через SMS, когда метрики достигают заданных значений.
Кроме того, вы можете использовать функции CloudWatch Logs для анализа логов вашей системы и диагностики проблем. Объединение метрик и логов позволит вам получить более полное представление о состоянии ваших ресурсов и приложений.
Не забывайте также изучать доступные инструменты визуализации, такие как Dashboards, для создания наглядных отчетов по метрикам, что поможет вам лучше отслеживать производительность и выявлять аномалии.
Найдите команду для отчета об использовании
Вы можете также ознакомиться со статистикой использования ресурсов за последние 24 часа. Для получения подробной информации воспользуйтесь следующей командой.
./mon-get-instance-stats.pl --recent-hours=24
Результат будет похож на следующий:
Статистика экземпляра i-xxxxxxxxxxxxxx за последние 12 часов. Среднее использование ЦП: 0.05%, Минимум: 0.03%, Максимум: 1.56% Среднее использование памяти: 10.63%, Минимум: 10.62%, Максимум: 10.63% Среднее использование свопа: N/A, Минимум: N/A, Максимум: N/A Использование дискового пространства для /dev/xvda1, смонтированного на / Среднее: 6.65%, Минимум: 6.65%, Максимум: 6.65%
Для более глубокого анализа вы можете изменить параметры команды. Например, вы можете указать количество часов, за которые хотите получить статистику, или добавить флаги для вывода более подробной информации. Ознакомьтесь с полным списком доступных параметров, выполнив команду:
./mon-get-instance-stats.pl --help
Также рекомендуется регулярно сохранять эти данные для дальнейшего анализа и мониторинга производительности системы. Это поможет вам выявлять тенденции использования ресурсов и принимать меры для оптимизации работы вашей инфраструктуры.
Оптимизация производительности экземпляра EC2
Поддержание высокой эффективности работы серверов требует комплексного подхода. Важно не только настраивать программное обеспечение, но и анализировать ресурсы, используемые приложениями. Оптимизация подразумевает выявление узких мест, которые могут замедлять работу, и принятие мер для их устранения.
Применение инструментов мониторинга позволяет получить детальную информацию о работе системы. Они помогают определить, какие процессы потребляют наибольшее количество ресурсов и как это влияет на общую производительность. С их помощью можно регулярно проверять состояние системы и своевременно реагировать на любые отклонения.
Эффективные настройки конфигурации также играют ключевую роль в оптимизации. Это включает в себя правильный выбор типа инстанса, настройку параметров сети и использование подходящих инструментов для управления загрузкой. Оптимизация программного обеспечения, работающего на сервере, позволяет значительно повысить скорость обработки данных и снизить нагрузку на аппаратные ресурсы.
Рекомендуется периодически пересматривать стратегии использования ресурсов, чтобы обеспечить максимальную отдачу от инвестиций. Внедрение автоматизации процессов и использование современного программного обеспечения помогут минимизировать время простоя и улучшить общее качество работы серверов.

