Como posso obter métricas do Amazon CloudWatch que mostram o throughput do EBS da minha instância do EC2 e, em seguida, configurar um alarme que me notifique quando a instância do EC2 atingir o limite de throughput?
Como posso obter métricas do Amazon CloudWatch que mostram o throughput agregado do Amazon Elastic Block Store (Amazon EBS) da minha instância do Amazon Elastic Compute Cloud (Amazon EC2)? Além disso, como posso configurar um alarme que me notifique quando a instância do EC2 atingir o limite de throughput?
Breve descrição
Não há uma métrica nativa do Amazon EBS que rastreie o throughput do EBS de uma instância do Amazon EC2 baseada em Xen no CloudWatch. No entanto, você pode usar o script EC2EBSThroughput/ebs-stats.sh para medir o throughput agregado do EBS da sua instância do EC2.
O script coleta o total de bytes de leitura/gravação por segundo em todos os volumes anexados e, em seguida, envia o throughput como uma métrica para o Amazon CloudWatch. Você pode visualizar essas métricas no console do Amazon CloudWatch e definir um alarme que é acionado com base em um limite especificado por você.
Observação: as instâncias do EC2 baseadas no AWS Nitro criadas com a capacidade de expansão de instância otimizada para o Amazon EBS incluem as métricas EBSIOBalance% e EBSByteBalance% do CloudWatch. Essas métricas estão disponíveis para alguns tamanhos de instância que atingem seu desempenho máximo por 30 minutos, pelo menos uma vez a cada 24 horas. Para ver uma lista completa dos tipos de instância aplicáveis, consulte Supported instance types (Tipos de instâncias compatíveis).
O script ebs-stats.sh é para instâncias do EC2 baseadas em Xen no CloudWatch. O script é compatível somente com instâncias do Amazon Linux, Red Hat Enterprise Linux e CentOS. No entanto, você pode personalizar o script para outras distribuições Linux.
Observação: se sua instância tiver um volume de armazenamento de instância, o script reportará o throughput agregado, incluindo o throughput do volume de armazenamento de instância. Isso significa que você pode não obter uma medição precisa do throughput do EBS a partir desse script.
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.
1. Para distribuições baseadas em RHEL, instale a AWS CLI, caso ainda não tenha feito isso.
2. Baixe o script ebs-stats.sh.
3. Coloque o script em sua instância e torne-o executável. Execute o script como usuário raiz ou sudo. Caso contrário, ele falhará.
$sudo chmod +x ebs-stats.sh
4. Na AWS CLI, defina a frequência de tempo de execução desejada de ebs-stats.sh executando o seguinte comando em segundo plano:
$sudo nohup ./ebs-stats.sh example-sleep-interval &
Observação: substitua example-sleep-interval pelo número desejado de segundos entre cada ponto de dados.
5. Crie um perfil do AWS Identity and Access Management (IAM).
6. Anexe a seguinte política ao perfil:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:ListMetrics", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricData", "autoscaling:DescribeAutoScalingInstances" ], "Effect": "Allow", "Resource": "*" } ] }
7. Anexe a política do IAM à sua instância do EC2. Isso permite que o script envie as métricas para o Amazon CloudWatch.
8. No console do CloudWatch, defina um alarme para EBSThroughoutMB. Para mais informações, consulte Create a CloudWatch alarm based on a static threshold (Criar um alarme do CloudWatch com base em um limite estático) ou Using Amazon CloudWatch alarms (Uso de alarmes do Amazon CloudWatch).
Certifique-se de escolher o período correto com base no argumento que você usou.
Informações relacionadas
Como monitorar suas instâncias usando o CloudWatch
Liste as métricas disponíveis do CloudWatch para suas instâncias
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos
- Como posso configurar um alarme do CloudWatch para recuperar automaticamente minha instância do EC2?AWS OFICIALAtualizada há 2 anos