Последнее обновление: 2019-08-22
Я хочу отслеживать метрики ОС и счетчики производительности моего экземпляра Amazon Elastic Compute Cloud (EC2) Linux. Как я могу сделать это с помощью Amazon CloudWatch?
Краткое описание
Вы можете создать пользовательскую метрику CloudWatch для вашей статистики экземпляра EC2 Linux, создав скрипт через интерфейс командной строки AWS (AWS CLI). Затем вы можете отслеживать эту метрику, подтолкнув его к CloudWatch.
Разрешение
Прежде чем продолжить, убедитесь, что вы установить и Настройка AWS CLI для использования с экземпляром, который вы хотите контролировать.
Создайте пользовательский метрика облачных часов
Чтобы создать пользовательскую метрику:
Войдите в экземпляр через AWS CLI.
Скопируйте следующий скрипт Bash, а затем сохраните его в вашем экземпляре (например, mem.sh ).
Этот пример сценария показывает значения, которые вы можете опубликовать в CloudWatch. В этом примере PUT-METRIC-DATA Вызов API используется для подключения следующих значений в CloudWatch:
- Процент использованной памяти (использованная память)
- Количество общих соединений (TCP_CONN)
- Количество соединений TCP на порту 80 (TCP_CONN_PORT_80)
- Количество пользователей в настоящее время входит в систему (пользователи)
- Процент времени ожидания ввода/вывода (io_wait)
======== Пример скрипта ======
#!/bin/bash USEDMEMORY=$(free -m | awk 'NR==2{printf "%.2f\t", $3*100/$2 }') TCP_CONN=$(netstat -an | wc -l) TCP_CONN_PORT_80=$(netstat -an | grep 80 | wc -l) USERS=$(uptime |awk '{ print $6 }') IO_WAIT=$(iostat | awk 'NR==4 {print $5}') aws cloudwatch put-metric-data --metric-name memory-usage --dimensions Instance=i-0c51f9f1213e63159 --namespace "Custom" --value $USEDMEMORY aws cloudwatch put-metric-data --metric-name Tcp_connections --dimensions Instance=i-0c51f9f1213e63159 --namespace "Custom" --value $TCP_CONN aws cloudwatch put-metric-data --metric-name TCP_connection_on_port_80 --dimensions Instance=i-0c51f9f1213e63159 --namespace "Custom" --value $TCP_CONN_PORT_80 aws cloudwatch put-metric-data --metric-name No_of_users --dimensions Instance=i-0c51f9f1213e63159 --namespace "Custom" --value $USERS aws cloudwatch put-metric-data --metric-name IO_WAIT --dimensions Instance=i-0c51f9f1213e63159 --namespace "Custom" --value $IO_WAIT
===============================================
- После создания скрипта Bash предоставьте разрешения на выполнение файла.
$ chmod +x mem.sh
- Запустите скрипт Bash, чтобы проверить, что он работает.
Нажмите свой метрику в CloudWatch
- Создайте работу Cron:
$ crontab -e
- Добавьте эту строку, чтобы выполнить свой скрипт каждую минуту:
*/1 * * * */home/ec2-user/mem.sh
- Сохранить и выйти.
Когда Crontab сохраняется, Crontab: установка нового Crontab появляется.
Следите за экземпляром EC2
Найдите свою пользовательскую метрику в консоли CloudWatch:
Откройте CloudWatch Console Анкет
Выберите Метрики Анкет
Выберите Все метрики вкладка
Выберите Обычай Анкет
Выберите измерение Экземпляр Анкет
Выберите свою пользовательскую метрику по его Exantemid и Метрическое имя Анкет
Просмотреть график вашего метрики.
Другое использование
Вы можете использовать этот пример для создания собственной логики для обработки нескольких измерений, а затем выдвинуть эти метрические данные в CloudWatch.
Например, предположим, что вы оцениваете свою заявку. Затем вы обнаружите, что когда время ожидания ввода/вывода и процентное использование памяти достигает определенного порога, система перестает функционировать должным образом. Чтобы решить эту проблему, вы можете контролировать оба значения одновременно в сценарии. Храните логические и значения в третьей переменной, которую вы подталкиваете к CloudWatch.
c = 0
if [[$ io_wait> 70 && $ usedMemory> 80]]
тогда
c = 1
фигура
AWS CloudWatch Put-Metric-Data-Metric-Name Danger-Dimensions-0C51F9F1213E63159-Namespace «Custom»-Value $ C
Для нормальных условий эта переменная составляет 0 (ноль). Для ситуаций, когда оба условия выполнены, значение установлено на 1 (одно). Затем вы можете создать индивидуальные сигналы тревоги вокруг этих параметров, чтобы предупредить проблемные ситуации для вашей системы.
Оригинал: «https://dev.to/issaurabhpandey/how-do-i-push-custom-metrics-from-an-ec2-linux-instance-to-cloudwatch-117o»