Можно ли получить объем свободного дискового пространства (df) с помощью CloudWatch? Если да, то какой показатель представляет свободное дисковое пространство?
Можно ли получить объем свободного дискового пространства (df) с помощью CloudWatch? Если да, то какой показатель представляет свободное дисковое пространство?
Ответы:
В то же время AWS предоставляет свои собственные примеры сценариев для мониторинга использования памяти и дискового пространства на ваших экземплярах Amazon EC2 под управлением Linux, как минимум, см. Новые сценарии Amazon CloudWatch Monitoring :
Вы можете запускать эти сценарии в своих экземплярах и настраивать их для отчета о показателях использования памяти и дискового пространства в Amazon CloudWatch. После того, как метрики отправлены в CloudWatch, вы можете просматривать графики, рассчитывать статистику и устанавливать для них сигналы тревоги в консоли CloudWatch или через API CloudWatch .
[...]
Чтобы узнать больше об использовании сценариев, включая установку, настройку и настройку, посетите раздел «Сценарии мониторинга Amazon CloudWatch для Linux » в Руководстве разработчика по Amazon CloudWatch.
Однако обратите внимание, что многие популярные сторонние решения для мониторинга уже предоставляют соответствующие примеры или полноценные решения для мониторинга использования памяти и дискового пространства, поэтому обычно не нужно изобретать велосипед. Скрипты, предоставляемые AWS, также довольно приличны и обширны, то есть охватывают сценарий использования более тщательно, чем большинство пользовательских сценариев.
Нет, это невозможно (пока). См. Ответы сотрудников AWS на связанный с этим вопрос cloudwatch для использования памяти , который также объясняет причину этого:
[...] Прямо сейчас вам не нужно развертывать что-либо в вашем AMI для мониторинга вашего экземпляра. Такие метрики, как использование памяти и дисковое пространство, требуют, чтобы мы изучили ОС, работающую в данном экземпляре, и поэтому у нас нет этих ценных метрик.
Мы ищем способы обеспечить более глубокое понимание вашей ОС и приложений, и у нас будет больше деталей, когда мы уточним планы.
Я сомневаюсь, что эта функциональность появится в ближайшее время, хотя требуемая функциональность межплатформенного агента уже доступна от пары других поставщиков, уже предлагающих специализированные решения для мониторинга, и эта задача очень проста - это определенно будет огромной победой поддержка этого встроена в AWS напрямую, конечно.
Вот лучшая версия того же сценария, который извлекает тома, подключенные к экземпляру, и сообщает об использовании каждого тома.
обратите внимание на подстановку / dev / xvd для / dev / sd
Также обратите внимание, что вам нужны инструменты ec2-api и инструменты cloudwatch, а также сертификат для их работы.
#!/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-скрипт, чтобы сделать это с помощью пользовательских метрик cloudwatch
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
Документы дают полный список вариантов плюс пример здесь .