Por que o Systems Manager não está mostrando minha instância do Amazon EC2 como uma instância gerenciada?
Quero saber por que recebo um erro "SSM Agent is not online” or “Connection Lost”" ou por que minha instância do Amazon Elastic Compute Cloud (Amazon EC2) não está visível no Fleet Manager.
Breve descrição
Você receberá as seguintes notificações se seu AWS Systems Manager Agent (SSM Agent) estiver off-line em sua instância do Amazon Elastic Compute Cloud (Amazon EC2):
- O Gerenciador de Sessões, um recurso do AWS Systems Manager, exibe um erro “SSM Agent is not online. The SSM Agent was unable to connect to a Systems Manager endpoint to register itself with the service”.
- O Fleet Manager, um recurso do AWS Systems Manager, relata o status de ping da sua instância como um erro de “Connection Lost”.
- O Fleet Manager não lista sua instância.
Observação: se seu SSM Agent estiver off-line, sua instância não aparecerá como gerenciada no Systems Manager.
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Preencha os pré-requisitos a seguir e, em seguida, use o runbook AWSSupport-TroubleshootManagedInstance para determinar por que o SSM Agent está off-line ou não consegue se conectar ao Systems Manager. Para obter mais informações, consulte Executar uma operação de automação com tecnologia Systems Manager Automation e Como configurar a automação.
Também é possível usar a AWS CLI para solucionar problemas de sua instância ou solucionar problemas de sua instância manualmente.
Verifique se o SSM Agent está instalado e em execução
Importante: ao longo das etapas de solução de problemas, selecione a Região da AWS onde sua instância está localizada.
Confirme se seu Systems Manager é compatível com seu sistema operacional (SO). Em seguida, execute o comando específico do seu sistema operacional para verificar se você instalou o SSM Agent.
Observação: o SSM Agent está pré-instalado na maioria das imagens de máquina da Amazon (AMI). Para obter mais informações, consulte Encontrar AMIs com o SSM Agent pré-instalado. Se você não instalou o SSM Agent em sua instância, instale-o manualmente no Linux, Windows ou macOS.
Para verificar se o status do SSM Agent está em execução e se o SSM Agent não está em hibernação, conclua as seguintes etapas:
- Abra o console do Amazon EC2.
- No painel de navegação esquerdo, escolha Instâncias.
- Selecione a instância.
- Escolha Ações, Monitorar e solucionar problemas, Obter log do sistema.
Se o seu SSM Agent estiver em execução, você receberá uma mensagem "Amazon SSM Agent vx.x.x.x is running".
Se seu SSM Agent estiver em hibernação, você receberá uma das seguintes mensagens, seguida do motivo pelo qual o SSM Agent está em hibernação:
- "SSM Agent entering hibernation due to error:"
- "SSM Agent unable to acquire credentials:"
Observação: se você usa o SSM Agent versão 3.3.2471.0 ou mais recente, revise o log do sistema da sua instância para descobrir o motivo pelo qual seu SSM Agent está em hibernação.
Execute o runbook do Systems Manager Automation
Pré-requisito: Antes de executar a automação, certifique-se de que seu usuário ou perfil do AWS Identity and Access Management (AWS IAM) tenha as permissões necessárias. Para mais informações, consulte a seção Permissões de IAM necessárias em AWSSupport-TroubleshootManagedInstance.
Para executar o runbook, realize as seguintes etapas:
- Abra o runbook AWSSupport-TroubleshootManagedInstance.
- Nos parâmetros de entrada, insira as seguintes informações:
Em InstanceId, insira o ID da instância afetada. É possível inserir manualmente o ID da instância ou usar o seletor de instâncias interativo. Se você usar o seletor de instâncias, altere o filtro de Mostrar somente instância gerenciada para Mostrar todas as instâncias.
(Opcional) Em AutomationAssumeRole, insira o Nome do Recurso da Amazon (ARN) do perfil do IAM que permite que o Systems Manager Automation execute as ações em seu nome. Se você não especificar um perfil, o Systems Manager Automation usará as permissões do usuário que executa o documento. - Escolha Executar.
Depois que a automação for concluída, revise a seção Saídas. A variável FinalOutput.Message mostra se o Systems Manager gerencia a instância, mostra se uma verificação foi aprovada ou não e fornece informações sobre como solucionar uma falha.
Use a AWS CLI para solucionar problemas com seu SSM Agent off-line
Conclua as seguintes etapas:
- Verifique se é possível acessar sua instância por meio de SSH ou Remote Desktop Protocol.
- Execute o comando ssm-cli da AWS CLI para solucionar problemas de disponibilidade de instâncias gerenciadas:
Linux e macOS
Windowsssm-cli get-diagnostics --output table
PowerShellssm-cli.exe get-diagnostics --output table
Observação: em máquinas Windows Server, você deve ir até o diretório C:\Program Files\Amazon\SSM antes de executar o comando ssm-cli..\ssm-cli.exe get-diagnostics --output table
Se o SSM Agent não estiver funcionando corretamente, o comando ssm-cli pode não estar disponível. Para obter mais informações, consulte Solução de problemas no SSM Agent.
Solucionar problemas manualmente em sua instância do Amazon EC2
Verifique a conectividade com os endpoints do Systems Manager na porta 443
A verificação da conectividade com os endpoints do Systems Manager na porta 443 é específica para suas configurações de sistema operacional e sub-rede. Para obter uma lista dos endpoints do Systems Manager por região, consulte Endpoints de serviço.
Observação: nos exemplos a seguir, o endpoint ssmmessages é necessário para o Gerenciador de Sessões.
Instâncias Linux do EC2
Use os comandos Telnet ou Netcat para verificar a conectividade com endpoints na porta 443 para instâncias Linux do EC2. O Netcat não vem pré-instalado em instâncias do EC2. Para instalar o Netcat manualmente, consulte Ncat no site do Nmap.
Observação: nos comandos a seguir, substitua RegionID pelo ID de região da sua instância.
Comandos Telnet:
telnet ssm.RegionID.amazonaws.com 443 telnet ec2messages.RegionID.amazonaws.com 443 telnet ssmmessages.RegionID.amazonaws.com 443
Exemplo de conexão Telnet:
root@111800186:~# telnet ssm.us-east-1.amazonaws.com 443 Trying 52.46.141.158... Connected to ssm.us-east-1.amazonaws.com. Escape character is '^]'.
Para sair do telnet, pressione as teclas Ctrl e ]. Digite quit e, em seguida, pressione Enter.
Comandos Netcat:
nc -vz ssm.RegionID.amazonaws.com 443 nc -vz ec2messages.RegionID.amazonaws.com 443 nc -vz ssmmessages.RegionID.amazonaws.com 443
Instâncias Windows do EC2
Para verificar a conectividade com endpoints na porta 443 para instâncias Windows do EC2, use os seguintes comandos do Windows PowerShell:
Test-NetConnection ssm.RegionID.amazonaws.com -port 443 Test-NtConnection ec2messages.RegionID.amazonaws.com -port 443 Test-NetConnection ssmmessages.RegionID.amazonaws.com -port 443
Sub-redes públicas
Os endpoints do Systems Manager são públicos. Para resolver problemas de conectividade com instâncias em uma sub-rede pública, a tabela de rotas da sua instância deve rotear o tráfego da internet para um gateway da internet. Além disso, seus grupos de segurança e listas de controle de acesso à rede (ACLs da rede) da Amazon Virtual Private Cloud (Amazon VPC) permitem conexões de saída na porta 443.
Sub-redes privadas
Use endereços IP privados para acessar as APIs do Amazon EC2 e do Systems Manager de forma privada. Para resolver problemas de conectividade com uma instância em uma sub-rede privada, a tabela de rotas da sua instância deve rotear o tráfego da Internet para um gateway NAT. Ou você deve configurar seu endpoint da VPC para alcançar os endpoints do Systems Manager.
Para obter mais informações, consulte Como criar endpoints da VPC para poder usar o Systems Manager para gerenciar instâncias privadas do EC2 sem acesso à Internet?
Observação: cada endpoint de interface cria uma interface de rede elástica na sub-rede fornecida.
Como prática recomendada de segurança para sub-redes privadas, verifique as seguintes configurações:
- O grupo de segurança conectado à interface de rede do seu endpoint da VPC permite o tráfego de entrada da porta TCP 443 do grupo de segurança anexado à sua instância.
- O grupo de segurança anexado à sua instância permite o tráfego de saída da porta TCP 443 para o endereço IP privado da interface de rede do seu endpoint da VPC.
Verifique a definição da Configuração de gerenciamento de host padrão
Observação: se você não ativou a Configuração de gerenciamento de host padrão, vá para a seção Verifique se o perfil do IAM correto está anexado à instância.
Se o perfil do IAM criado pela Configuração de gerenciamento de host padrão não tiver permissões suficientes para seu caso de uso, será possível adicionar políticas.
Todas as instâncias associadas devem usar o Serviço de metadados de instância versão 2 (IMDSv2). Para verificar sua configuração do IMDSv2, use a métrica MetadataNoToken do Amazon CloudWatch para determinar quando não há uso do IMDSv1. Em seguida, verifique se suas instâncias foram transferidas para o IMDSv2.
A Configuração de gerenciamento de host padrão está disponível na versão 3.2.582.0 ou posterior do SSM Agent. Para verificar a versão do SSM Agent, consulte Verificação do número de versão do SSM Agent.
Para verificar a Configuração de gerenciamento de host padrão, use o console do Systems Manager ou a AWS CLI.
Console do Systems Manager
Conclua as seguintes etapas:
- Abra o console do Systems Manager.
- No painel de navegação, escolha Fleet Manager.
- Na lista suspensa Gerenciamento de conta, escolha Configuração de gerenciamento de host padrão.
- Verifique se a configuração Ativar configuração de gerenciamento de host padrão está ativada.
AWS CLI
Execute o comando get-service-setting da AWS CLI para verificar a Configuração de gerenciamento de host padrão:
aws ssm get-service-setting \ --setting-id arn:aws:ssm:RegionID:AccountID:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
Observação: além disso, substitua AccountID pelo ID da sua conta da AWS.
Depois de ativar a Configuração de gerenciamento de host padrão, você recebe uma saída semelhante à seguinte:
{ "ServiceSetting": { "SettingId": "/ssm/managed-instance/default-ec2-instance-management-role", "SettingValue": "service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole", "LastModifiedDate": 1679492424.738, "LastModifiedUser": "arn:aws:sts::012345678910:assumed-role/role/role-name", "ARN": "arn:aws:ssm:ap-southeast-1:012345678910:servicesetting/ssm/managed-instance/default-ec2-instance-management-role", "Status": "Customized" } }
Observação: se o valor de SettingValue for $None, a configuração de gerenciamento de host padrão não está configurada.
Verifique se a Configuração de gerenciamento de host padrão está usando um perfil do IAM apropriado
É uma prática recomendada usar o AWSSystemsManagerDefaultEC2InstanceManagementRole ao definir a Configuração de gerenciamento de host padrão. Para usar um perfil diferente, certifique-se de anexar a política do IAM AmazonSSMManagedEC2InstanceDefaultPolicy a ele.
Se você anexou perfis de instância às suas instâncias, remova todas as permissões que permitam a operação ssm:UpdateInstanceInformation. O SSM Agent tenta usar as permissões do perfil de instância antes de usar as permissões da Configuração de gerenciamento de host padrão. Quando você permite a operação ssm:UpdateInstanceInformation em seus perfis de instância, sua instância não usa as permissões da Configuração de gerenciamento de host padrão.
Verifique se o perfil do IAM correto está anexado à instância
Observação: se você ativou a Configuração de gerenciamento de host padrão, vá para a seção Verifique a conectividade com o IMDS.
Para fazer chamadas de API para um endpoint do Systems Manager, você deve anexar a política AmazonSSMManagedInstanceCore ao perfil do IAM anexado à sua instância. Se você estiver usando uma política do IAM personalizada, confirme se sua política personalizada usa as permissões em AmazonSSMManagedInstanceCore. Além disso, certifique-se de que a política de confiança do seu perfil do IAM permita que ec2.amazonaws.com assuma esse perfil. Para mais informações, consulte Configuração alternativa para permissões de instância do EC2.
Verifique a conectividade com o IMDS
O SSM Agent deve se comunicar com o IMDS para obter informações sobre sua instância. Para testar a conexão, execute o seguinte comando com base no sistema operacional da sua instância:
-
Linux
nc -vz 169.254.169.254 80 -
Windows
Test-NetConnection 169.254.169.254 -port 80
Para verificar se o IMDS está configurado para sua instância existente, use o console do Amazon EC2 ou a AWS CLI.
Console do Amazon EC2
Conclua as seguintes etapas:
- Abra o console do Amazon EC2.
- No painel de navegação, escolha Instâncias e, em seguida, selecione sua instância.
- Escolha Ações e, em seguida, escolha Configurações da instância.
- Escolha Modificar opções de metadados da instância.
- Na caixa de diálogo, certifique-se de que o Serviço de metadados da instância esteja Ativado.
AWS CLI
Execute o comando describe-instances da AWS CLI para verificar se o IMDS está configurado para sua instância existente:
aws ec2 describe-instances --query "Reservations[*].Instances[*].MetadataOptions" --instance-ids i-012345678910
Exemplo de saída:
[ [ { "State": "applied", "HttpTokens": "optional", "HttpPutResponseHopLimit": 1, "HttpEndpoint": "enabled", "HttpProtocolIpv6": "disabled", "InstanceMetadataTags": "disabled" } ] ]
Observação: se a saída mostrar "HttpTokens": "optional", então tanto o IMDSv1 quanto o IMDSv2 são compatíveis. Se a saída mostrar "HttpTokens": "required", somente o IMDSv2 será compatível. Se a saída mostrar "HttpTokens": "enable", o IMDS será ativado.
Se você estiver usando um proxy na sua instância, o proxy poderá bloquear a conectividade com o URL dos metadados. Para evitar o bloqueio, configure seu SSM Agent para funcionar com um proxy e defina no_proxy para a URL dos metadados.
Para configurar o SSM Agent para usar um proxy, consulte a seguinte documentação da AWS:
- Configuração do SSM Agent para usar um proxy em nós Linux
- Configure SSM Agent para usar um proxy para instâncias do Windows Server
Solução de problemas adicional
Se sua instância ainda não aparecer como um nó gerenciado ou mostrar uma conexão perdida no Systems Manager, analise os logs do SSM Agent para continuar solucionando problemas. Para Linux e macOS, os logs estão em /var/log/amazon/ssm. Para Windows, os registros estão em %PROGRAMDATA%\Amazon\SSM\Logs.
Se sua instância não estiver reportando ao SSM Agent, use o Remote Desktop Protocol (RDP) para Windows ou SSH para Linux para coletar os logs. Se você não conseguir coletar os logs, deverá interromper sua instância e separar o volume raiz. Em seguida, anexe o volume raiz a outra instância na mesma Zona de disponibilidade que um volume secundário para obter os logs.
Informações relacionadas
Referência do runbook do Systems Manager Automation
Anexar um volume do Amazon Elastic Block Store (Amazon EBS) a uma instância do Amazon EC2
- Tópicos
- Management & Governance
- Idioma
- Português
Vídeos relacionados


Conteúdo relevante
- feita há 7 meses
- feita há 6 meses