¿Cómo puedo obtener los registros de SSM Agent de las tareas de Fargate que tienen Amazon ECS Exec activado?

4 minutos de lectura
0

Quiero obtener los registros de AWS Systems Manager Agent (SSM Agent) de las tareas de AWS Fargate que tienen activado Amazon Elastic Container Service (Amazon ECS) Exec.

Breve descripción

Requisito previo:

Complete los requisitos para usar ECS Exec.

Para obtener los registros de SSM Agent de las tareas de Fargate que tienen ECS Exec activado, 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 de Fargate. Por último, monte el mismo sistema de archivos en una instancia de Amazon Elastic Compute Cloud (Amazon EC2) para obtener los registros de SSM Agent.

Importante: Antes de montar el sistema de archivos de EFS, debe lanzar una instancia de Amazon EC2. 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).

Resolución

Nota: La siguiente resolución es solo para las tareas de Fargate que tienen ECS Exec activado. Siga los pasos de resolución solo para realizar la depuración. Para asegurarse de no anular los registros, lance la tarea como una tarea independiente. O bien, mantenga el valor desiredCount de las tareas en «1» en su servicio de Amazon ECS. También puede usar la siguiente resolución para situaciones en las que se deben comprobar los registros de los contenedores que no sean stderr/stdout.

Creación de un sistema de archivos de Amazon EFS para su montaje en un contenedor de Fargate

Para crear su sistema de archivos de Amazon EFS y montarlo en un contenedor de Fargate en una tarea o servicio, siga estos pasos:

  1. Cree su 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 del sistema de archivos para permitir las conexiones entrantes en el puerto 2049 desde el grupo de seguridad asociado a su tarea de Fargate.
  4. Actualice el grupo de seguridad de Amazon ECS para permitir las conexiones salientes en el puerto 2049 al grupo de seguridad de su sistema de archivos.
  5. Abra la consola de Amazon ECS.
  6. En el panel de navegación, seleccione Definiciones de tareas y, a continuación, seleccione la definición de su tarea.
  7. Seleccione Crear una nueva revisión.
  8. En Almacenamiento, para Volúmenes, seleccione Agregar volumen. A continuación, introduzca la información siguiente:
    En Nombre del volumen, introduzca un nombre para su volumen.
    En Tipo de volumen, seleccione ** EFS**.
    En ID del sistema de archivos, introduzca el ID de su sistema de archivos.
  9. En Puntos de montaje de contenedor, seleccione ** Agregar punto de montaje**. A continuación, introduzca la información siguiente:
    En Contenedor, seleccione su contenedor.
    En Volumen de origen, seleccione el volumen de origen.
    En Ruta del contenedor, escriba /var/log/amazon.
  10. Seleccione Crear.

Nota: Antes de montar el sistema de archivos de Amazon EFS en una instancia de Amazon EC2, la tarea debe estar en ejecución.

Cómo montar el sistema de archivos de Amazon EFS en una instancia de Amazon EC2 y obtener los registros de SSM Agent

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulte Troubleshoot AWS CLI errors. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.

Siga estos pasos:

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

  2. Para obtener los datos del registro, ejecute el siguiente comando de la AWS CLI:

    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

    Resultado del ejemplo:

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

A continuación se muestra un ejemplo de los registros almacenados en la ruta /var/log/amazon/ssm/amazon-ssm-agent.log del contenedor de 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]#
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 5 meses