Amazon Web Services (AWS) сообщает о некоторых хороших метриках на консоли по умолчанию, как ЦП, но отсутствуют некоторые ключевые показатели, такие как использование памяти или дисковое пространство; Они важны для мониторинга, чтобы обеспечить время и здоровье UP и здоровья.
В этом посте мы посмотрим, как мы можем использовать Cloudwatch Чтобы отслеживать эти расширенные метрики, позволяющие создавать отчеты, панели мониторинга и предупреждений.
📘 Примечание Прежде чем начать, обратите внимание, что стандартные расходы на использование Amazon CloudWatch будут применимы для этих сценариев. Для получения дополнительной информации см. Amazon CloudWatch Ценовая страница.
✋ Для простоты давайте предположим, что мы используем EC2 с операционной системой Amazon Linux. Для других операционных систем вы можете использовать соответствующие команды для достижения результатов.
Чтобы пройти данные метрик из EC2 на AWS CloudWatch, нам придется создать пользователь со следующим доступом к роли IAM:
Cloudwatch: Putmetricdata
Cloudwatch: GetmetricStatistrics.
cloudwatch: Спискаметрия
EC2: ConsitedEtags
Запутался? Просто создайте политику (скажем — CloudWatch-EC2-Access) с вышеуказанными разрешениями. После этого создайте пользователь (CloudWatch-stats-user) и прикрепите созданную политику (CloudWatch-EC2-Access) для пользователя. Кроме того, храните сгенерированный Awsaccesskeyid
и Awssecretkey
этого пользователя, который потребуется на более позднем этапе.
SSH до вашего экземпляра EC2 и выполните следующие шаги:
1. Создать папку скрипта
Я вообще предпочитаю держать все в отдельной папке для ясности, хотя и не обязательной. Как мы используем Amazon Linux 2 AMI, шаги будут похожи на это:
# current folder /home/ec2-user $ mkdir cloudwatch_logs $ cd cloudwatch_logs
2. Установите необходимые пакеты
Чтобы иметь возможность запустить скрипты AWS, нам придется установить некоторые пакеты. Кроме того, обратите внимание, что команда может измениться в зависимости от вашей операционной системы. Проверьте это ссылка Чтобы получить больше информации.
sudo yum install -y perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https perl-Digest-SHA.x86_64
3. Скачать скрипты из AWS
Теперь, когда мы установили все пакеты, нам нужно скачать скрипты Perl, предоставленные AWS.
curl https://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.2.zip -O
4. Расстегнуть скрипты
unzip CloudWatchMonitoringScripts-1.2.2.zip # remove the zip rm CloudWatchMonitoringScripts-1.2.2.zip # move to the unzipped folder cd aws-scripts-mon
Пакет для сценариев мониторинга содержит следующие файлы:
CloudWatchClient.pm
— Общий модуль Perl, который упрощает вызов Amazon Cloudwatch от других сценариев.mon-put-instance-data.pl
— собирает метрики системы на экземпляре Amazon EC2 (память, своп, использование дискового пространства) и отправляет их на Amazon CloudWatch.mon-get-instance-stats.pl
— Запросы Amazon Cloudwatch и отображает самую последнюю статистику использования для экземпляра EC2, на котором выполняется этот скрипт.awscreds.template
— Шаблон файла для учетных данных AWS, который хранит свой идентификатор ключа доступа и ключа секретного доступа.License.txt
— текстовый файл, содержащий лицензию Apache 2.0.Wrive.txt.txt.
— Уведомление об авторских правах.
5. Добавить идентификатор доступа и секретный ключ пользователя CloudWatch (CloudWatch-Stats-user)
Как уже упоминалось на более раннем этапе, Amazon предоставляет файл шаблона awscreds.template
который можно использовать для создания конф
Файл для хранения учетных данных AWS.
# creates a conf file from the template. Make sure the filename is as is cp awscreds.template awscreds.conf
Далее добавьте AWS Идентификатор доступа
и Секретный ключ
В этом файле и сохранить его.
6. Убедитесь, что статистика будет захвачена правильно
Теперь мы проверим, если все будет на месте и плавно работает со следующей командой:
# change the paths according to your folder structure /home/ec2-user/cloudwatch_logs/aws-scripts-mon/mon-put-instance-data.pl --mem-used-incl-cache-buff --mem-util --mem-used --mem-avail --disk-space-util --disk-space-avail --disk-path=/ --verify --verbose
7. Заключительный этап
Поздравляю! 👏 Вы успешно настроили метрики CloudWatch на экземпляре EC2. Теперь последний шаг — добавить его в CRON, чтобы он мог отправлять метрики через каждые 5 минут.
# Open the crontab file crontab -e # Add the following line and save it # Cloudwatch Monitoring Metrics (AWS) */5 * * * * /home/ec2-user/cloudwatch_logs/aws-scripts-mon/mon-put-instance-data.pl --mem-used-incl-cache-buff --mem-util --mem-used --mem-avail --disk-space-util --disk-space-avail --disk-path=/ --from-cron
В вашей консоли AWS перейдите к службе CloudWatch.
Все ваши метрики доступны в Метрики
меню. Новый Пользовательские пространства имен
Будут добавлять в представлении Metrics, когда CloudWatch начинает принимать метрики из скриптов.
Нажмите на него, и вы получите 2 варианта, как показано на изображении ниже:
Файловая система, экземпляр, MountPath
— Все ваши метрики дисков EC2 будут доступны внутри этой опции.Экспозиция
— Все ваши метрики памяти EC2 будут доступны внутри этой опции.
- Всякий раз, когда вы перезагрузите или выделите/выделите дисковое пространство, ваш путь файловой системы Disk EC2 может измениться и, следовательно, вам может потребоваться восстановление любых аварийных сигналов или приборных панелей, которые вы создали для мониторинга EC2.
- Если вы запустили экземпляр EC2 из AMI, который имел настроенные эти метрики, то вышеуказанная настройка уже присутствует. Просто очистите кеш через команду:
RM/VAR/TMP/AWS-MON/экземпляр- я бы
- AWS недавно запустил
Cloudwatch агент
Собирать как системные метрики и файлы журнала из экземпляров Amazon EC2. Следовательно, рекомендуется использоватьCloudwatch агент
Собирать метрики и журналы вместо этих сценариев мониторинга. Тем не менее, могут быть определенные случаи, когда вам потребуется использовать эти сценарии мониторинга, и этот пост может помочь вам настроить его.
Я надеюсь, что вам понравился пост. До встречи! до моего следующего поста 😋
Оригинал: «https://dev.to/idrisrampurawala/monitoring-memory-and-disk-metrics-for-aws-ec2-instances-2eg2»