Чи можна отримати кількість вільного місця на диску (df) за допомогою CloudWatch? Якщо так, то який показник представляє вільний простір на диску?
Чи можна отримати кількість вільного місця на диску (df) за допомогою CloudWatch? Якщо так, то який показник представляє вільний простір на диску?
Відповіді:
Тим часом AWS надає власні зразки скриптів для моніторингу пам’яті та використання дискового простору у ваших примірниках Amazon EC2, на яких працює Linux принаймні, див. Нові сценарії моніторингу Amazon CloudWatch :
Ви можете запускати ці сценарії у своїх екземплярах і налаштовувати їх на повідомлення про показники використання пам'яті та дискового простору в Amazon CloudWatch. Після подання показників до CloudWatch ви можете переглядати графіки, обчислювати статистику та встановлювати на них сигнали тривоги на консолі CloudWatch або через API CloudWatch .
[...]
Щоб дізнатися більше про використання скриптів, включаючи встановлення, налаштування та конфігурацію, відвідайте " Сценарії моніторингу Amazon CloudWatch для Linux " в Посібнику розробника Amazon CloudWatch.
Зауважте, що багато популярних сторонніх систем моніторингу надають відповідні зразки або повноцінні рішення для моніторингу використання пам'яті та дискового простору, тому зазвичай не потрібно винаходити колесо. Надані AWS сценарії є досить пристойними та обширними, хоча, тобто вони охоплюють випадок використання більш ретельно, ніж більшість призначених для користувача скриптів, що плавають навколо.
Ні, це неможливо (поки що). Дивіться відповіді співробітників AWS на відповідний хвильовий годинник запитання щодо використання пам'яті , який також висвітлює причину цього:
[...] Зараз вам не потрібно нічого розгортати в AMI для моніторингу вашого примірника. Такі метрики, як використання пам'яті та дисковий простір, вимагають від нас вивчити ОС, що працює в екземплярі, і саме тому у нас немає цих цінних показників.
Ми розглядаємо способи надати більш детальну інформацію про вашу ОС та додатки, і будемо мати більше деталей, коли ми розроблятимемо плани.
Я сумніваюся, що ця функціональність з’явиться незабаром, хоча, оскільки потрібна функція агента крос-платформи легко доступна у кількох інших постачальників, які вже пропонують спеціальні рішення для моніторингу, і це завдання все-таки не просто - це, безумовно, буде величезний виграш підтримка цього вбудована в AWS безпосередньо.
Ось краща версія того ж сценарію, яка витягує томи, приєднані до екземпляра, та повідомляє про використання кожного тома.
зверніть увагу на підстанцію / dev / xvd для / dev / sd
також зауважте, що вам потрібні інструменти ec2-api та інструменти хмарного перегляду, встановлені разом із сертифікатом, щоб зробити ці роботи
#!/bin/bash
export JAVA_HOME=
export AWS_CREDENTIAL_FILE=
export EC2_CERT=
export EC2_PRIVATE_KEY=
export EC2_HOME=
export AWS_CLOUDWATCH_HOME=
INSTANCE_ID=$(wget -q -O - http://169.254.169.254/latest/meta-data/instance-id)
VOLUME_LIST=$($EC2_HOME/bin/ec2-describe-volumes | grep ${INSTANCE_ID} | awk '{ print $2 ";" $4}')
for VOLUME_LINE in $(echo $VOLUME_LIST); do
VOLUME_NAME=${VOLUME_LINE%;*}
DEVICE_NAME=/dev/xvd${VOLUME_LINE#*;/dev/sd}
USAGE=$(df $DEVICE_NAME | perl -ne 'print "$1" if /(\d+)\%/')
$AWS_CLOUDWATCH_HOME/bin/mon-put-data -v $USAGE -d "Volume=$VOLUME_NAME" -m UsedStoragePercentage -u Percent -n "NAMESPACE" --show-request
done
Я зібрав сценарій bash, щоб це зробити за допомогою спеціальної метрики хмарного перегляду
http://aws.typepad.com/aws/2011/05/amazon-cloudwatch-user-defined-metrics.html
замініть XXXX на власні значення
#!/bin/sh
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export AWS_CREDENTIAL_FILE=XXXX
export AWS_CLOUDWATCH_HOME=XXXX
INSTANCE_ID=$(wget -q -O - http://169.254.169.254/latest/meta-data/instance-id)
$AWS_CLOUDWATCH_HOME/bin/mon-put-data -v $(df / | perl -ne 'print "$1" if /(\d+)\%/') -d "InstanceId=$INSTANCE_ID,Volume=root" -u Percent -m UsedStoragePercentage -n "XXXX" --show-request
покладіть це на роботу в cron, і у вас з'явиться показник, на який можна надіслати сигнали тривоги. Я вирішив піти з відсотками та конкретними точками кріплення замість моніторингу самого гучності, оскільки це відповідало моїм потребам. Я схильний змінювати розмір і змінювати обсяги більше, ніж я перезапускаю екземпляри. Ваш пробіг може відрізнятися.
Невдоволені зразковими сценаріями Amazon або різними сторонніми скриптами, які використовують свої інструменти командного рядка на основі Perl, ми написали власний скрипт у Python: aws-cloudwatch-linux-metrics .
Один файл, не має залежностей, працює на будь-якому інтерпретаторі Python.
Він читає дані прямо з /proc
файлової системи та повідомляє про використання дискового простору на додаток до інших системних показників, які не можна спостерігати зовні:
Він повідомляє про ці показники щодо ідентифікатора екземпляра, і ідентифікатора зображення.
Десь після того, як було задано запитання, AWS надала сценаріям варіанти з повідомленнями про використання диска.
Ви можете запустити цей скрипт у crontab, щоб повідомити про наявний простір на диску CloudWatch. Не забудьте включити шлях до диска.
*/5 * * * * ~/aws-scripts-mon/mon-put-instance-data.pl --disk-space-util --disk-path=/ --from-cron
Документи дають повний список варіантів плюс приклад тут .