As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Monitoramento de AWS PCS instâncias usando a Amazon CloudWatch
AWSPCSlança EC2 instâncias da Amazon conforme necessário para atender aos requisitos de escalabilidade definidos em seus grupos de nós de PCS computação. Você pode monitorar essas instâncias enquanto elas estão em execução usando a Amazon CloudWatch. Você pode inspecionar os registros das instâncias em execução fazendo login nelas e usando ferramentas de linha de comando interativas. No entanto, por padrão, os dados de CloudWatch métricas só são retidos por um período limitado quando uma instância é encerrada, e os registros da instância geralmente são excluídos junto com os EBS volumes que sustentam a instância. Para reter métricas ou dados de registro das instâncias iniciadas PCS após o encerramento, você pode configurar o CloudWatch agente em suas instâncias com um modelo de EC2 execução. Este tópico fornece uma visão geral do monitoramento de instâncias em execução e fornece exemplos de como configurar métricas e registros de instâncias persistentes.
Monitorando instâncias em execução
Encontrando AWS PCS instâncias
Para monitorar instâncias lançadas peloPCS, encontre as instâncias em execução associadas a um cluster ou grupo de nós de computação. Em seguida, no EC2 console de uma determinada instância, inspecione as seções Status e alarmes e Monitoramento. Se o acesso de login estiver configurado para essas instâncias, você poderá se conectar a elas e inspecionar vários arquivos de log nas instâncias. Para obter mais informações sobre como identificar quais instâncias são gerenciadasPCS, consulteEncontrando instâncias de grupos de nós de computação em AWS PCS.
Habilitando métricas detalhadas
Por padrão, as métricas da instância são coletadas em intervalos de 5 minutos. Para coletar métricas em intervalos de um minuto, ative o CloudWatch monitoramento detalhado em seu modelo de lançamento do grupo de nós de computação. Para obter mais informações, consulte Ativar o CloudWatch monitoramento detalhado.
Configurando métricas e registros de instâncias persistentes
Você pode reter as métricas e os registros de suas instâncias instalando e configurando o CloudWatch agente da Amazon nelas. Isso consiste em três etapas principais:
-
Crie uma configuração de CloudWatch agente.
-
Armazene a configuração onde ela possa ser recuperada pelas PCS instâncias.
-
Escreva um modelo de EC2 lançamento que instale o software do CloudWatch agente, busque sua configuração e inicie o CloudWatch agente usando a configuração.
Para obter mais informações, consulte Coletar métricas, registros e rastreamentos com o CloudWatch agente no Guia CloudWatch do usuário da Amazon Usando modelos de EC2 lançamento da Amazon com AWS PCS e.
Criar uma configuração de CloudWatch agente
Antes de implantar o CloudWatch agente em suas instâncias, você deve gerar um arquivo de JSON configuração que especifique as métricas, os registros e os rastreamentos a serem coletados. Os arquivos de configuração podem ser criados usando um assistente ou manualmente, usando um editor de texto. O arquivo de configuração será criado manualmente para esta demonstração.
Em um computador em que você tenha o AWS CLI instalado, crie um arquivo de CloudWatch configuração chamado config.json com o conteúdo a seguir. Você também pode usar o seguinte URL para baixar uma cópia do arquivo.
https://aws-hpc-recipes.s3.amazonaws.com/main/recipes/pcs/cloudwatch/assets/config.json
Observações
-
Os caminhos de log no arquivo de amostra são para o Amazon Linux 2. Se suas instâncias usarem um sistema operacional básico diferente, altere os caminhos conforme apropriado.
-
Para capturar outros registros, adicione outras entradas abaixo
collect_list
. -
Os valores em
{brackets}
são variáveis modeladas. Para obter a lista completa das variáveis suportadas, consulte Criar ou editar manualmente o arquivo de configuração do CloudWatch agente no Guia CloudWatch do usuário da Amazon. -
Você pode optar por omitir
logs
oumetrics
se não quiser coletar esses tipos de informações.
{ "agent": { "metrics_collection_interval": 60 }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/var/log/cloud-init.log", "log_group_class": "STANDARD", "log_group_name": "/PCSLogs/instances", "log_stream_name": "{instance_id}.cloud-init.log", "retention_in_days": 30 }, { "file_path": "/var/log/cloud-init-output.log", "log_group_class": "STANDARD", "log_stream_name": "{instance_id}.cloud-init-output.log", "log_group_name": "/PCSLogs/instances", "retention_in_days": 30 }, { "file_path": "/var/log/amazon/pcs/bootstrap.log", "log_group_class": "STANDARD", "log_stream_name": "{instance_id}.bootstrap.log", "log_group_name": "/PCSLogs/instances", "retention_in_days": 30 }, { "file_path": "/var/log/slurmd.log", "log_group_class": "STANDARD", "log_stream_name": "{instance_id}.slurmd.log", "log_group_name": "/PCSLogs/instances", "retention_in_days": 30 }, { "file_path": "/var/log/messages", "log_group_class": "STANDARD", "log_stream_name": "{instance_id}.messages", "log_group_name": "/PCSLogs/instances", "retention_in_days": 30 }, { "file_path": "/var/log/secure", "log_group_class": "STANDARD", "log_stream_name": "{instance_id}.secure", "log_group_name": "/PCSLogs/instances", "retention_in_days": 30 } ] } } }, "metrics": { "aggregation_dimensions": [ [ "InstanceId" ] ], "append_dimensions": { "AutoScalingGroupName": "${aws:AutoScalingGroupName}", "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}" }, "metrics_collected": { "cpu": { "measurement": [ "cpu_usage_idle", "cpu_usage_iowait", "cpu_usage_user", "cpu_usage_system" ], "metrics_collection_interval": 60, "resources": [ "*" ], "totalcpu": false }, "disk": { "measurement": [ "used_percent", "inodes_free" ], "metrics_collection_interval": 60, "resources": [ "*" ] }, "diskio": { "measurement": [ "io_time" ], "metrics_collection_interval": 60, "resources": [ "*" ] }, "mem": { "measurement": [ "mem_used_percent" ], "metrics_collection_interval": 60 }, "swap": { "measurement": [ "swap_used_percent" ], "metrics_collection_interval": 60 } } } }
Esse arquivo instrui o CloudWatch agente a monitorar vários arquivos que podem ser úteis no diagnóstico de erros na inicialização, autenticação e login da instância e em outros domínios de solução de problemas. Isso inclui:
-
/var/log/cloud-init.log
— Saída do estágio inicial da configuração da instância -
/var/log/cloud-init-output.log
— Saída de comandos que são executados durante a configuração da instância -
/var/log/amazon/pcs/bootstrap.log
— Saída de operações PCS específicas que são executadas durante a configuração da instância -
/var/log/slurmd.log
— Saída do daemon slurmd do gerenciador de carga de trabalho Slurm -
/var/log/messages
— Mensagens do sistema do kernel, serviços do sistema e aplicativos -
/var/log/secure
— Registros relacionados a tentativas de autenticaçãoSSH, como sudo e outros eventos de segurança
Os arquivos de log são enviados para um grupo de CloudWatch log chamado/PCSLogs/instances
. Os fluxos de log são uma combinação do ID da instância e do nome base do arquivo de log. O grupo de registros tem um tempo de retenção de 30 dias.
Além disso, o arquivo instrui o CloudWatch agente a coletar várias métricas comuns, agregando-as por ID da instância.
Armazene a configuração
O arquivo de configuração do CloudWatch agente precisa ser armazenado onde possa ser acessado pelas instâncias do nó de PCS computação. Há duas maneiras comuns de fazer isso. Você pode carregá-lo em um bucket do Amazon S3 ao qual suas instâncias do grupo de nós computacionais terão acesso por meio de seu perfil de instância. Como alternativa, você pode armazená-lo como um parâmetro SSM no Amazon Systems Manager Parameter Store.
Fazer upload para um bucket do S3
Para armazenar seu arquivo no S3, use os AWS CLI comandos a seguir. Antes de executar o comando, faça estas substituições:
-
Substituir
amzn-s3-demo-bucket
com seu próprio nome de bucket S3
Primeiro, (isso é opcional se você tiver um bucket existente), crie um bucket para armazenar seus arquivos de configuração.
aws s3 mb s3://
amzn-s3-demo-bucket
Em seguida, faça o upload do arquivo para o bucket.
aws s3 cp ./config.json s3://
amzn-s3-demo-bucket
/
Armazenar como SSM parâmetro
Para armazenar seu arquivo como um SSM parâmetro, use o comando a seguir. Antes de executar o comando, faça estas substituições:
-
Substituir
region-code
com a AWS região com a qual você está trabalhando AWSPCS. -
(Opcional) Substituir
AmazonCloudWatch-PCS
com seu próprio nome para o parâmetro. Observe que, se você alterar o prefixo do nome de,AmazonCloudWatch-
precisará adicionar especificamente o acesso de leitura ao SSM parâmetro no perfil da instância do seu grupo de nós.
aws ssm put-parameter \ --region
region-code
\ --name "AmazonCloudWatch-PCS
" \ --type String \ --value file://config.json
Escreva um modelo de EC2 lançamento
Os detalhes específicos do modelo de lançamento dependem de seu arquivo de configuração estar armazenado no S3 ou SSM no.
Use uma configuração armazenada no S3
Esse script instala o CloudWatch agente, importa um arquivo de configuração de um bucket do S3 e inicia o CloudWatch agente com ele. Substitua os seguintes valores nesse script pelos seus próprios detalhes:
-
amzn-s3-demo-bucket
— O nome de um bucket do S3 que sua conta pode ler -
/config.json
— Caminho relativo à raiz do bucket do S3 em que a configuração está armazenada
MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-config; charset="us-ascii" packages: - amazon-cloudwatch-agent runcmd: - aws s3 cp s3://
amzn-s3-demo-bucket
/config.json
/etc/s3-cw-config.json - /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file://etc/s3-cw-config.json --==MYBOUNDARY==--
O perfil da IAM instância do grupo de nós deve ter acesso ao bucket. Aqui está um exemplo IAM de política para o bucket no script de dados do usuário acima.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] } ] }
Observe também que as instâncias devem permitir tráfego de saída para o S3 e CloudWatch os endpoints. Isso pode ser feito usando grupos de segurança ou VPC endpoints, dependendo da arquitetura do cluster.
Use uma configuração armazenada em SSM
Esse script instala o CloudWatch agente, importa um arquivo de configuração de um SSM parâmetro e inicia o CloudWatch agente com ele. Substitua os seguintes valores nesse script pelos seus próprios detalhes:
-
(Opcional) Substituir
AmazonCloudWatch-PCS
com seu próprio nome para o parâmetro.
MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-config; charset="us-ascii" packages: - amazon-cloudwatch-agent runcmd: - /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c ssm:
AmazonCloudWatch-PCS
--==MYBOUNDARY==--
A política de IAM instância para o grupo de nós deve ter o CloudWatchAgentServerPolicyanexado a ela.
Se o nome do seu parâmetro não começar com, AmazonCloudWatch-
você precisará adicionar especificamente o acesso de leitura ao SSM parâmetro no perfil da instância do seu grupo de nós. Aqui está um exemplo de IAM política que ilustra isso para o prefixo DOC-EXAMPLE-PREFIX
.
{ "Version" : "2012-10-17", "Statement" : [ { "Sid" : "CustomCwSsmMParamReadOnly", "Effect" : "Allow", "Action" : [ "ssm:GetParameter" ], "Resource" : "arn:aws:ssm:*:*:parameter/
DOC-EXAMPLE-PREFIX
*" } ] }
Observe também que as instâncias devem permitir tráfego de saída para os CloudWatch endpoints SSM e. Isso pode ser feito usando grupos de segurança ou VPC endpoints, dependendo da arquitetura do cluster.