¿Cómo puedo recuperar los registros del agente SSM para las tareas de Fargate que tienen activado Amazon ECS Exec?

Última actualización: 23/11/2022

Quiero recuperar los registros del AWS Systems Manager Agent (SSM Agent) para las tareas de AWS Fargate que tienen activado Amazon Elastic Container Service (Amazon ECS) Exec. Pero, no sé cómo.

Descripción breve

Antes de comenzar a usar Amazon ECS Exec, consulte Requisitos previos para usar ECS Exec.

Para recuperar los registros del agente SSM para las tareas de Fargate que tienen activado ECS Exec, cree un sistema de archivos de Amazon Elastic File System (Amazon EFS). A continuación, monte el sistema de archivos de Amazon EFS en el contenedor Fargate. Por último, monte el mismo sistema de archivos en una instancia de Amazon Elastic Compute Cloud (Amazon EC2) para recuperar los registros del agente SSM.

Importante: El sistema de archivos de Amazon EFS, el clúster de Amazon ECS y las tareas de Fargate deben estar en la misma Amazon Virtual Private Cloud (Amazon VPC).

Nota: La siguiente resolución es solo para las tareas de Fargate que tienen ECS Exec activado. Utilice los pasos de resolución únicamente para la depuración. Para evitar anulaciones de registros, láncela como una tarea independiente o mantenga el número de desiredCount en «1» en su servicio de Amazon ECS. También puede utilizar la siguiente resolución para las situaciones en las que deba comprobar los registros no stderr/stdout de los contenedores.

Resolución

Cree un sistema de archivos de Amazon EFS y móntelo en un contenedor de Fargate en una tarea o servicio.

  1. Creación del sistema de archivos de Amazon EFS.
  2. Anote el ID de Amazon EFS y el ID del grupo de seguridad.
  3. Edite las reglas del grupo de seguridad de su sistema de archivos para permitir las conexiones entrantes en el puerto 2049 desde el grupo de seguridad asociado a la tarea.
  4. Actualice el grupo de seguridad de Amazon ECS para permitir las conexiones salientes en el puerto 2049 al grupo de seguridad del sistema de archivos.
  5. Abra la consola de Amazon ECS y vaya a la definición de la tarea de Amazon ECS.
  6. En la sección Volumes (Volúmenes), seleccione Add volume (Agregar volumen).
  7. En Name (Nombre), especifique un nombre para el volumen.
  8. En Volume type (Tipo de volumen), ingrese «EFS».
  9. En File system ID (ID del sistema de archivos), ingrese el ID del sistema de archivos.
  10. En la sección Containers definition (Definición de Contenedores), vaya a la sección STORAGE AND LOGGING (ALMACENAMIENTO Y REGISTRO), y seleccione el volumen que creó para el volumen de origen.
  11. En Container path (Ruta del contenedor), seleccione /var/log/amazon.
  12. Actualice el servicio o la tarea de Fargate con la definición de la tarea que creó.

Montaje el sistema de archivos de Amazon EFS en una instancia de Amazon EC2 y recuperación de los registros del agente SSM

1.    Monte el sistema de archivos en una instancia de EC2.

2.    Ejecute el siguiente comando para recuperar los datos del registro:

sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-01b0bxxxxxxxx.efs.ap-southeast-1.amazonaws.com:/ /efs

El resultado es similar al siguiente:

# df -h
Filesystem                                          Size  Used Avail Use% Mounted on
fs-01b0bxxxxxxxx.efs.us-west-2.amazonaws.com:/      8.0E     0  8.0E   0% /efs

Este es un ejemplo de los registros almacenados en la ruta /var/log/amazon/ssm/amazon-ssm-agent.log en el contenedor Fargate:

[root@ip-172-31-32-32 efs]# cd ssm/
[root@ip-172-31-32-32 ssm]# ls
amazon-ssm-agent.log  audits
[root@ip-172-31-32-32 ssm]# cat amazon-ssm-agent.log | tail -n 10
2022-10-20 11:50:34 INFO [ssm-agent-worker] [MessageService] [MessageHandler] ended idempotency deletion thread
2022-10-20 11:50:37 INFO [ssm-agent-worker] [MessageService] [MGSInteractor] send failed reply thread started
2022-10-20 11:50:37 INFO [ssm-agent-worker] [MessageService] [MGSInteractor] send failed reply thread done
2022-10-20 11:55:37 INFO [ssm-agent-worker] [MessageService] [MGSInteractor] send failed reply thread started
2022-10-20 11:55:37 INFO [ssm-agent-worker] [MessageService] [MGSInteractor] send failed reply thread done
2022-10-20 12:00:34 INFO [ssm-agent-worker] [MessageService] [MessageHandler] started idempotency deletion thread
2022-10-20 12:00:34 WARN [ssm-agent-worker] [MessageService] [MessageHandler] [Idempotency] encountered error open /var/lib/amazon/ssm/170b15cacf5846ed836bcd7903cbee48-2531612879/idempotency: no such file or directory while listing replies in /var/lib/amazon/ssm/170b15cacf5846ed836bcd7903cbee48-2531612879/idempotency
2022-10-20 12:00:34 INFO [ssm-agent-worker] [MessageService] [MessageHandler] ended idempotency deletion thread
2022-10-20 12:00:37 INFO [ssm-agent-worker] [MessageService] [MGSInteractor] send failed reply thread started
2022-10-20 12:00:37 INFO [ssm-agent-worker] [MessageService] [MGSInteractor] send failed reply thread done
[root@ip-172-31-32-32 ssm]#

¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?