Como obter a quantidade de espaço livre em disco com o CloudWatch?

10

É possível obter a quantidade de espaço livre em disco (df) com o CloudWatch? Em caso afirmativo, qual métrica representa o espaço livre em disco?

    
por Jan Deinhard 06.12.2010 / 15:52

5 respostas

6

Atualizar

Enquanto isso, a AWS fornece seus próprios scripts de amostra para monitorar o uso de memória e espaço em disco em suas instâncias do Amazon EC2 executando o Linux pelo menos, consulte Novos Scripts de Monitoramento do Amazon CloudWatch :

You can run these scripts on your instances and configure them to report memory and disk space usage metrics to Amazon CloudWatch. Once the metrics are submitted to CloudWatch, you can view graphs, calculate statistics and set alarms on them in the CloudWatch console or via the CloudWatch API.

[...]

To learn more about how to use the scripts, including installation, setup and configuration, please visit "Amazon CloudWatch Monitoring Scripts for Linux" in the Amazon CloudWatch Developer Guide.

Observe, porém, que muitas soluções populares de monitoramento de terceiros fornecem amostras respectivas ou soluções completas para monitoramento de memória e uso do espaço em disco, portanto, geralmente não é necessário reinventar a roda. Os scripts fornecidos pela AWS também são bastante decentes e extensivos, ou seja, eles cobrem o caso de uso de forma mais completa do que a maioria dos scripts personalizados de um lado a outro.

Resposta inicial

Não, isso não é possível (ainda). Veja as respostas da equipe da AWS sobre a questão relacionada cloudwatch para uso de memória , que abrange o motivo para isso também:

[...] Right now, you do not need to deploy anything in you AMI to monitor your instance. Metrics like memory utilization and disk space require us to look into the OS running in the instance and that is why we do not have these valuable metrics.

We are looking at ways to provide more insight into your OS and applications and will have more details as we firm up the plans.

Eu duvido que essa funcionalidade surja em breve, já que a funcionalidade de agente de plataforma cruzada necessária já está disponível em alguns outros fornecedores que oferecem soluções de monitoramento dedicadas, e essa tarefa é praticamente simples - definitivamente seria um enorme ganhar para ter suporte para isso embutido na AWS diretamente, é claro.

    
por 01.05.2011 / 21:35
3

Aqui está uma versão melhorada do mesmo script que recupera os volumes anexados a uma instância e relata o uso de cada volume.

observe a sub-requisição de / dev / xvd para / dev / sd

observe também que você precisa das ferramentas ec2-api e das ferramentas do cloudwatch instaladas junto com um certificado para fazer com que elas funcionem

#!/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
    
por 20.06.2011 / 03:54
2

Eu criei um script bash para fazer isso usando as métricas personalizadas do cloudwatch

link

substitua XXXX por seus próprios valores

#!/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

coloque isso em um cron job e você terá uma métrica na qual você pode colocar alarmes. Eu decidi ir com porcentagens e instâncias de pontos de montagem específicos, em vez de monitorar o volume em si, pois isso atendia às minhas necessidades. Eu costumo redimensionar e alternar os volumes mais do que estou reiniciando instâncias. Sua milhagem pode variar.

    
por 16.06.2011 / 23:43
1

Insatisfeitos com os exemplos de scripts da Amazon ou com os vários scripts de terceiros que usam suas ferramentas de linha de comando baseadas em Perl, escrevemos nosso próprio script em Python: aws-cloudwatch-linux-métricas .

Arquivo único, não tem dependências e é executado em qualquer interpretador Python.

Ele lê dados diretamente do sistema de arquivos /proc e relata a utilização do espaço em disco além de outras métricas do sistema que não são observáveis do lado de fora:

  • Média de carga da CPU
  • Conexões de rede (TCP e UDP)
  • Utilização de espaço em disco
  • Utilização de memória

Ele informa essas métricas com relação ao ID da instância e ao ID da imagem.

    
por 27.02.2014 / 10:32
0

Algum tempo depois que a pergunta foi feita, a AWS forneceu scripts com opções para relatar o uso do disco.

Você pode executar esse script no crontab para relatar o espaço em disco disponível para o CloudWatch. Não esqueça de incluir o caminho do disco.

*/5 * * * * ~/aws-scripts-mon/mon-put-instance-data.pl --disk-space-util --disk-path=/ --from-cron

Os documentos fornecem uma lista completa de opções, além de exemplos aqui .

    
por 19.11.2015 / 00:14