

# Verificações do status das instâncias do Amazon EC2
<a name="monitoring-system-instance-status-check"></a>

Com o monitoramento de status de instâncias, por exemplo, é possível determinar rapidamente se o Amazon EC2 detectou problemas que possam impedir que as instâncias executem aplicações. O Amazon EC2 executa verificações automáticas em cada instância do EC2 em execução para identificar problemas de hardware e software. É possível visualizar os resultados dessas verificações de status para identificar problemas específicos e detectáveis. O status do evento expande as informações que o Amazon EC2 já fornece sobre o estado de cada instância (como `pending`, `running`, `stopping`) e as métricas de utilização que o Amazon CloudWatch monitora (utilização de CPU, tráfego de rede e atividade de disco).

As verificações de status são realizadas a cada minuto e elas retornam o status de aprovação e reprovação. Se todas as verificações forem aprovadas, o status geral da instância será **OK**. Se uma ou mais verificações falharem, o status geral será **impaired**. As verificações de status são integradas ao Amazon EC2, portanto elas não podem ser desabilitadas ou excluídas.

Quando uma verificação de status falha, a métrica do CloudWatch correspondente para as verificações de status é incrementada. Para obter mais informações, consulte [Métricas de verificação de status](viewing_metrics_with_cloudwatch.md#status-check-metrics). É possível usar essas métricas para criar alarmes do CloudWatch que são acionados com base no resultado das verificações de status. Por exemplo, é possível criar um alarme para avisá-lo se as verificações de status falharem em uma instância específica. Para obter mais informações, consulte [Criar alarmes do CloudWatch para instâncias do Amazon EC2 que apresentam falha nas verificações de status](creating_status_check_alarms.md).

Também é possível criar um alarme do Amazon CloudWatch que monitore uma instância do Amazon EC2 e recupere automaticamente a instância se ela for danificada devido a um problema subjacente. Para obter mais informações, consulte [Recuperação automática de instâncias](ec2-instance-recover.md).

**Topics**
+ [Tipos de verificações de status](#types-of-instance-status-checks)
+ [Visualizar verificações do status para instâncias do Amazon EC2](viewing_status.md)
+ [Criar alarmes do CloudWatch para instâncias do Amazon EC2 que apresentam falha nas verificações de status](creating_status_check_alarms.md)

## Tipos de verificações de status
<a name="types-of-instance-status-checks"></a>

Existem três tipos de verificação de status.
+ [Verificações de status de sistema](#system-status-checks)
+ [Verificações de status de instâncias](#instance-status-checks)
+ [Verificações de status do EBS anexado](#attached-ebs-status-checks)

### Verificações de status de sistema
<a name="system-status-checks"></a>

As verificações de status do sistema monitoram os sistemas da AWS nos quais a instância é executada. Essas verificações detectam problemas subjacentes na instância que exigem o envolvimento da AWS para a correção. Quando uma verificação de status do sistema falha, é possível esperar que a AWS corrija o problema ou pode corrigi-lo por conta própria. Para instâncias baseadas no Amazon EBS, é possível interrompê-las e iniciá-las por conta própria, o que, na maioria dos casos, faz com que a instância seja migrada para um novo host. Para instâncias baseadas em armazenamento de instância (com suporte apenas para instâncias Linux), é possível encerrar e substituir a instância. Observe que os volumes de armazenamento de instâncias são efêmeros e todos os dados são perdidos quando a instância é interrompida.

A seguir, temos exemplos de problemas que podem causar falha nas verificações de status do sistema:
+ Perda de conectividade de rede
+ Perda de energia do sistema
+ Problemas de software no host físico
+ Problemas de hardware de host físico que afetam a acessibilidade de rede

Se uma verificação de status do sistema falhar, incrementamos a métrica [StatusCheckFailed\$1System](viewing_metrics_with_cloudwatch.md#status-check-metrics).

**Instâncias bare metal**  
Se você executar uma reinicialização do sistema operacional em uma instância bare metal, a verificação de status do sistema poderá retornar temporariamente um status de falha. Quando a instância ficar disponível, a verificação de status do sistema deve retornar um status de aprovação.

### Verificações de status de instâncias
<a name="instance-status-checks"></a>

As verificações de status da instância monitoram o software e a conectividade de rede da sua instância individual. O Amazon EC2 verifica a integridade da instância enviando uma solicitação de protocolo de resolução de endereço (ARP) para a interface de rede (NIC). Essas verificações detectam problemas que exigem seu envolvimento para correção. Quando uma verificação de status de instância falha, geralmente você precisa lidar com o problema por conta própria (por exemplo, reinicializando a instância ou fazendo alterações de configuração da instância).

**nota**  
As distribuições recentes do Linux que usam `systemd-networkd` para a configuração de rede podem relatar verificações de integridade de maneira diferente das distribuições anteriores. Durante o processo de inicialização, esse tipo de rede pode começar mais cedo e possivelmente terminar antes de outras tarefas de inicialização que também podem afetar a integridade da instância. As verificações de status que dependem da disponibilidade da rede podem relatar um status íntegro antes da conclusão de outras tarefas.

A seguir, temos exemplos de problemas que podem causar falhas nas verificações de status da instância:
+ Verificações de status de sistema com falha
+ Configuração incorreta de redes ou startup
+ Memória exaurida
+ Sistema de arquivos corrompido
+ Kernel incompatível
+ Durante uma reinicialização, uma verificação de status da instância relatará uma falha até que a instância fique disponível novamente.

Se uma verificação de status da instância falhar, incrementamos a métrica [StatusCheckFailed\$1Instance](viewing_metrics_with_cloudwatch.md#status-check-metrics).

**Instâncias bare metal**  
Se você executar uma reinicialização do sistema operacional em uma instância bare metal, a verificação de status da instância poderá retornar temporariamente um status de falha. Quando a instância ficar disponível, a verificação de status dela deve retornar um status de aprovação.

### Verificações de status do EBS anexado
<a name="attached-ebs-status-checks"></a>

As verificações de status do EBS anexado monitoram se os volumes do Amazon EBS anexados a uma instância estão acessíveis e são capazes de concluir operações de E/S. A métrica `StatusCheckFailed_AttachedEBS` é um valor binário que indica deficiência caso um ou mais dos volumes do EBS anexados à instância não sejam capazes de concluir operações de E/S. Essas verificações de status detectam problemas subjacentes com a computação ou a infraestrutura do Amazon EBS. Se ocorrer uma falha na métrica de verificação de status do EBS anexado, você pode esperar a AWS resolver o problema ou tomar medidas, como substituir os volumes afetados ou interromper e reiniciar a instância.

Veja abaixo alguns exemplos de problemas que podem causar falha nas verificações de status do EBS anexado:
+ Problemas de hardware ou software nos subsistemas de armazenamento subjacentes aos volumes do EBS
+ Problemas de hardware no host físico que afetam a acessibilidade dos volumes do EBS
+ Problemas de conectividade entre a instância e os volumes do EBS

É possível usar a métrica `StatusCheckFailed_AttachedEBS` para ajudar a melhorar a resiliência da sua workload. É possível usar essa métrica para criar alarmes do Amazon CloudWatch que são acionados com base no resultado das verificações de status. Por exemplo, você pode fazer o failover para uma instância secundária ou zona de disponibilidade ao detectar um impacto prolongado. Também é possível monitorar a performance de E/S de cada volume anexado usando as métricas do EBS CloudWatch para detectar e substituir o volume danificado. Se a sua workload não estiver conduzindo E/S para nenhum volume do EBS anexado à sua instância, e a verificação de status do EBS indicar uma deficiência, você poderá interromper e iniciar a instância para movê-la para um novo host. Isso pode solucionar problemas subjacentes do host que estejam afetando a acessibilidade dos volumes do EBS. Para obter mais informações, consulte [Métricas de uso do Amazon CloudWatch para o Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/using_cloudwatch_ebs.html).

Você também pode configurar seus grupos do Amazon EC2 Auto Scaling para detectar falhas de verificação de status do EBS anexado e, em seguida, substituir a instância afetada por uma nova. Para obter mais informações, consulte [Monitor and replace Auto Scaling instances with impaired Amazon EBS volumes](https://docs.aws.amazon.com/autoscaling/ec2/userguide/monitor-and-replace-instances-with-impaired-ebs-volumes.html) no *Guia do usuário do Amazon EC2 Auto Scaling*.

**nota**  
A métrica de verificação de status do EBS anexado está disponível somente para instâncias do Nitro.

# Visualizar verificações do status para instâncias do Amazon EC2
<a name="viewing_status"></a>

Se a verificação de status da instância falhar, você normalmente precisará lidar com o problema por conta própria (por exemplo, reinicializando a instância ou fazendo alterações de configuração da instância). Para resolver falhas de verificação de status de instância ou sistema, consulte [Solucionar problemas de instâncias do Linux do Amazon EC2 com falhas nas verificações de status](TroubleshootingInstances.md).

------
#### [ Console ]

**Para visualizar verificações de status**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instances (Instâncias)**.

1. Na página **Instances (Instâncias)**, a coluna **Status check (Verificações de status)** lista o status operacional de cada instância.

1. Para visualizar o status de uma instância específica, selecione a instância e escolha a guia **Status e alarmes**.

1. Para revisar as métricas do CloudWatch para verificações de status, na guia **Status e alarmes**, expanda **Métricas** e veja os gráficos das seguintes métricas:
   + **Falha na verificação de status do sistema**
   + **Falha na verificação de status da instância**
   + **Falha na verificação de status do EBS anexado**

   Para obter mais informações, consulte [Métricas de verificação de status](viewing_metrics_with_cloudwatch.md#status-check-metrics).

------
#### [ AWS CLI ]

**Para visualizar verificações de status**  
Use o comando [describe-instance-status](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-status.html).

**Exemplo**: obter o status de todas as instâncias em execução

```
aws ec2 describe-instance-status
```

**Exemplo**: obter o status de todas as instâncias

```
aws ec2 describe-instance-status --include-all-instances
```

**Exemplo**: obter o status de uma única instância em execução

```
aws ec2 describe-instance-status --instance-ids i-1234567890abcdef0
```

**Exemplo**: obter todas as instâncias com um status de `impaired`

```
aws ec2 describe-instance-status \
--filters Name=instance-status.status,Values=impaired
```

------
#### [ PowerShell ]

**Para visualizar verificações de status**  
Use o comando [Get-EC2InstanceStatus](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceStatus.html).

**Exemplo**: obter o status de todas as instâncias em execução

```
Get-EC2InstanceStatus
```

**Exemplo**: obter o status de todas as instâncias

```
Get-EC2InstanceStatus -IncludeAllInstance $true
```

**Exemplo**: obter o status de uma única instância em execução

```
Get-EC2InstanceStatus -InstanceId i-1234567890abcdef0
```

**Exemplo**: obter todas as instâncias com um status de `impaired`

```
Get-EC2InstanceStatus \
-Filter @{Name="instance-status.status"; Values="impaired"}
```

------

# Criar alarmes do CloudWatch para instâncias do Amazon EC2 que apresentam falha nas verificações de status
<a name="creating_status_check_alarms"></a>

É possível usar as [métricas de verificação de status](viewing_metrics_with_cloudwatch.md#status-check-metrics) para criar alarmes do CloudWatch a fim de notificar você quando uma instância apresentou falha na verificação de status.

As verificações de status e os alarmes de verificação de status podem entrar temporariamente em um estado de *dados insuficiente* se faltarem pontos de dados métricos. Embora raro, isso pode acontecer quando há uma interrupção nos sistemas de relatórios de métricas, mesmo quando uma instância está íntegra. Recomendamos que esse estado seja tratado como dados ausentes em vez de uma falha na verificação de status ou violação de alarme. Isso é especialmente importante ao executar ações de interrupção, encerramento, reinicialização ou recuperação na instância como resposta.

------
#### [ Console ]

Este exemplo configura um alarme que envia uma notificação quando uma instância falha em uma verificação de status. Opcionalmente, você pode parar, encerrar ou recuperar a instância.

**Para criar um alarme de verificação de status (console)**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instances (Instâncias)**.

1. Selecione a instância, escolha a guia **Status Checks (Verificações de status)** e selecione **Actions (Ações)**, **Create status check alarm (Criar alarme de verificação de status)**.

1. Na página **Manage CloudWatch alarms (Gerenciar alarmes do CloudWatch)**, em **Add or edit alarm (Adicionar ou editar alarme)**, selecione **Create an alarm (Criar um alarme)**.

1. Em **Alarm notification (Notificação de alarme)**, ative a opção para configurar notificações do Amazon Simple Notification Service (Amazon SNS). Selecione um tópico existente do Amazon SNS ou insira um nome para criar um tópico.

   Se você adicionar um endereço de e-mail à lista de destinatários ou criar um novo tópico, o Amazon SNS enviará um e-mail de confirmação para cada novo endereço. Cada destinatário deve escolher o link de confirmação no e-mail. Somente endereços confirmados recebem notificações de alerta.

1. Em **Alarm action (Ação de alarme)**, ative a opção para especificar uma ação a ser executada quando o alarme for acionado. Selecione a ação.

1. Em **Alarm thresholds (Limites de alarme)**, especifique a métrica e os critérios do alarme.

   Você pode optar por manter os valores padrão para **Agrupar exemplos por** (**Média**) e **Tipo de dados a serem amostrados** (**Falha na verificação de status: qualquer**), ou modificá-los conforme necessário.

   Para **Consecutive Period (Período consecutivo)**, defina o número de períodos que deseja avaliar e, em **Period (Período)**, insira a duração do período de avaliação antes de acionar o alarme e enviar um e-mail.

1. (Opcional) Em **Sample metric data (Dados de métrica de exemplo)**, escolha **Add to dashboard (Adicionar ao painel)**.

1. Escolha **Criar**.

Se precisar alterar um alarme de status de instância, você poderá editá-lo.

**Para editar um alarme de verificação de status**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instances (Instâncias)**.

1. Selecione a instância e escolha **Actions (Ações)**, **Monitoring (Monitoramento)**, **Manage CloudWatch alarms (Gerenciar alarmes do CloudWatch)**.

1. Na página **Manage CloudWatch alarms (Gerenciar alarmes do CloudWatch)**, em **Add or edit alarm (Adicionar ou editar alarme)**, escolha **Edit an alarm (Editar um alarme)**.

1. Em **Search for alarm (Procurar alarme)**, escolha o alarme.

1. Quando terminar de fazer alterações, escolha **Update (Atualizar)**.

------
#### [ AWS CLI ]

No exemplo a seguir, o alarme publica uma notificação para um tópico de SN, quando há falha da instância na verificação de instância ou na verificação de status de sistema por, pelo menos, dois períodos consecutivos. A métrica do CloudWatch usada é `StatusCheckFailed`.

**Para criar um alarme de verificação de status (console)**

1. Selecione um tópico de SNS existente ou crie um novo. Para obter mais informações, consulte [Acesso ao Amazon SNS na AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-sns.html) no *Guia do usuário do AWS Command Line Interface*.

1. Use o seguinte comando [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) para visualizar as métricas do Amazon CloudWatch disponíveis para o Amazon EC2.

   ```
   aws cloudwatch list-metrics --namespace AWS/EC2
   ```

1. Use o seguinte comando [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html) para criar o alarme.

   ```
   aws cloudwatch put-metric-alarm \
       --alarm-name StatusCheckFailed-Alarm-for-i-1234567890abcdef0 \
       --metric-name StatusCheckFailed \
       --namespace AWS/EC2 \
       --statistic Maximum \
       --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \
       --unit Count \
       --period 300 \
       --evaluation-periods 2 \
       --threshold 1 \
       --comparison-operator GreaterThanOrEqualToThreshold \
       --alarm-actions arn:aws:sns:us-west-2:111122223333:my-sns-topic
   ```

   O período é o intervalo de tempo, em segundos, no qual as métricas do Amazon CloudWatch são coletadas. Este exemplo usa 300, que são 60 segundos multiplicados por 5 minutos. O período de avaliação é o número de períodos consecutivos pelos quais o valor da métrica deve ser comparado ao limite. Este exemplo usa 2. As ações do alarme são as ações a serem executadas quando esse alarme é acionado.

------
#### [ PowerShell ]

**Para criar um alarme de verificação de status (console)**  
Use o cmdlet [Write-CWMetricAlarm](https://docs.aws.amazon.com/powershell/latest/reference/items/Write-CWMetricAlarm.html) conforme mostrado a seguir para publicar notificações em um tópico do SNS quando a instância falhar nas verificações de status por pelo menos dois períodos consecutivos.

```
Write-CWMetricAlarm `
    -AlarmName "StatusCheckFailed-Alarm-for-i-1234567890abcdef0" `
    -MetricName "StatusCheckFailed" `
    -Namespace "AWS/EC2" `
    -Statistic "Maximum" `
    -Dimension @{Name="InstanceId"; Values="i-1234567890abcdef0"} `
    -Unit "Count" `
    -Period 300 `
    -EvaluationPeriod 2 `
    -Threshold 1 `
    -ComparisonOperator "GreaterThanOrEqualToThreshold" `
    -AlarmAction "arn:aws:sns:us-west-2:111122223333:my-sns-topic"
```

O período é o intervalo de tempo, em segundos, no qual as métricas do Amazon CloudWatch são coletadas. Este exemplo usa 300, que são 60 segundos multiplicados por 5 minutos. O período de avaliação é o número de períodos consecutivos pelos quais o valor da métrica deve ser comparado ao limite. Este exemplo usa 2. As ações do alarme são as ações a serem executadas quando esse alarme é acionado.

------