View a markdown version of this page

AWS PCS의 스케줄러 로그 - AWS PCS

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS PCS의 스케줄러 로그

클러스터 스케줄러에서 Amazon CloudWatch Logs, Amazon Simple Storage Service(Amazon S3) 및 Amazon Data Firehose로 세부 로깅 데이터를 보내도록 AWS PCS를 구성할 수 있습니다. 이는 모니터링 및 문제 해결에 도움이 될 수 있습니다.

AWS PCS는 로그 유형을 통해 다음 Slurm 데몬의 PCS_SCHEDULER_LOGS 로그를 전송합니다.

  • slurmctld - Slurm 컨트롤러 데몬입니다. 지원되는 모든 Slurm 버전에 사용할 수 있습니다.

  • slurmdbd - Slurm 데이터베이스 데몬입니다. Slurm 24.11 이상에서 사용할 수 있습니다.

  • slurmrestd - Slurm REST API 데몬입니다. Slurm 25.05 이상에서 사용할 수 있습니다.

이미 PCS_SCHEDULER_LOGS 전송이 구성된 클러스터는 지원되는 Slurm 버전을 실행할 때 slurmdbdslurmrestd 로그 수신을 자동으로 시작합니다. 추가 구성은 필요하지 않습니다.

사전 조건

AWS PCS 클러스터를 관리하는 IAM 보안 주체는 pcs:AllowVendedLogDeliveryForResource 작업을 허용해야 합니다.

다음 예제 IAM 정책은 필요한 권한을 부여합니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "PcsAllowVendedLogsDelivery", "Effect": "Allow", "Action": ["pcs:AllowVendedLogDeliveryForResource"], "Resource": [ "arn:aws:pcs:*::cluster/*" ] } ] }

스케줄러 로그 설정

AWS Management Console 또는를 사용하여 AWS PCS 클러스터에 대한 스케줄러 로그를 설정할 수 있습니다 AWS CLI.

AWS Management Console
콘솔을 사용하여 스케줄러 로그를 설정하려면
  1. AWS PCS 콘솔을 엽니다.

  2. 탐색 창에서 클러스터를 선택합니다.

  3. 스케줄러 로그를 추가할 클러스터를 선택합니다.

  4. 클러스터 세부 정보 페이지에서 로그 탭을 선택합니다.

  5. 스케줄러 로그에서 추가를 선택하여 CloudWatch Logs, Amazon S3 및 Firehose 중에서 최대 3개의 로그 전송 대상을 추가합니다. CloudWatch

  6. 로그 전송 업데이트를 선택합니다.

AWS CLI
를 사용하여 스케줄러 로그를 설정하려면 AWS CLI
  1. 로그 전송 대상 생성:

    aws logs put-delivery-destination --region region \ --name pcs-logs-destination \ --delivery-destination-configuration \ destinationResourceArn=resource-arn

    다음과 같이 바꿉니다.

    • region -와 같이 대상을 생성하려는 AWS 리전 입니다. us-east-1

    • pcs-logs-destination - 대상의 이름

    • resource-arn - CloudWatch Logs 로그 그룹, S3 버킷 또는 Firehose 전송 스트림의 Amazon 리소스 이름(ARN)입니다.

    자세한 내용은 Amazon CloudWatch Logs API 참조에 나와 있는 PutDeliveryDestination을 참조하시기 바랍니다.

  2. PCS 클러스터를 로그 전송 소스로 설정합니다.

    aws logs put-delivery-source --region region \ --name cluster-logs-source-name \ --resource-arn cluster-arn \ --log-type PCS_SCHEDULER_LOGS

    다음과 같이 바꿉니다.

    • region -와 같은 클러스터 AWS 리전 의 us-east-1

    • cluster-logs-source-name - 소스의 이름입니다.

    • cluster-arn - AWS PCS 클러스터의 ARN

    자세한 내용은 Amazon CloudWatch Logs API 참조의 PutDeliverySource를 참조하세요. Amazon CloudWatch

  3. 전송 소스를 전송 대상에 연결합니다.

    aws logs create-delivery --region region \ --delivery-source-name cluster-logs-source \ --delivery-destination-arn destination-arn

    다음과 같이 바꿉니다.

    • region - AWS 리전와 같은 us-east-1

    • cluster-logs-source - 전송 소스의 이름입니다.

    • destination-arn - 전송 대상의 ARN입니다.

    자세한 내용은 Amazon CloudWatch Logs API 참조의 CreateDelivery를 참조하세요. Amazon CloudWatch

스케줄러 로그 스트림 경로 및 이름

AWS PCS 스케줄러 로그의 경로와 이름은 대상 유형에 따라 다릅니다.

아래 경로의 ${log_name} 값은 로그를 생성한 데몬에 따라 slurmrestd, slurmctld slurmdbd또는 입니다.

  • CloudWatch Logs

    • CloudWatch Logs 스트림은이 명명 규칙을 따릅니다.

      AWSLogs/PCS/${cluster_id}/${log_name}_${scheduler_major_version}.log
      AWSLogs/PCS/abcdef0123/slurmctld_25.11.log
      AWSLogs/PCS/abcdef0123/slurmdbd_24.11.log
      AWSLogs/PCS/abcdef0123/slurmrestd_25.05.log
  • S3 버킷

    • S3 버킷 출력 경로는 다음 명명 규칙을 따릅니다.

      AWSLogs/${account-id}/PCS/${region}/${cluster_id}/${log_name}/${scheduler_major_version}/yyyy/MM/dd/HH/
      AWSLogs/111111111111/PCS/us-east-2/abcdef0123/slurmctld/25.11/2024/09/01/00/
      AWSLogs/111111111111/PCS/us-east-2/abcdef0123/slurmdbd/24.11/2024/09/01/00/
      AWSLogs/111111111111/PCS/us-east-2/abcdef0123/slurmrestd/25.05/2024/09/01/00/
    • S3 객체 이름은 다음 규칙을 따릅니다.

      PCS_${log_name}_${scheduler_major_version}_#{expr date 'event_timestamp', format: "yyyy-MM-dd-HH"}_${cluster_id}_${hash}.log
      PCS_slurmctld_25.11_2024-09-01-00_abcdef0123_0123abcdef.log

스케줄러 로그 레코드 예

AWS PCS 스케줄러 로그는 구조화되어 있습니다. 여기에는 Slurm 데몬 프로세스에서 내보낸 로그 메시지 외에도 클러스터 식별자, 스케줄러 유형, 메이저 및 패치 버전과 같은 필드가 포함됩니다. log_namenode_type 필드는 로그를 생성한 데몬을 식별합니다.

다음 예제에서는 slurmctld 로그 레코드를 보여줍니다.

{
    "resource_id": "s3431v9rx2",
    "resource_type": "PCS_CLUSTER",
    "event_timestamp": 1721230979,
    "log_level": "info",
    "log_name": "slurmctld",
    "scheduler_type": "slurm",
    "scheduler_major_version": "25.11",
    "scheduler_patch_version": "2",
    "node_type": "controller_primary",
    "message": "[2024-07-17T15:42:58.614+00:00] Running as primary controller\n"
}

다음 예제에서는 slurmdbd 로그 레코드(Slurm 24.11 이상)를 보여줍니다.

{
    "resource_id": "pcs_bu93qsds2j",
    "resource_type": "PCS_CLUSTER",
    "event_timestamp": 1774485082772,
    "log_level": "info",
    "log_name": "slurmdbd",
    "scheduler_type": "slurm",
    "scheduler_major_version": "25.11",
    "scheduler_patch_version": "2",
    "node_type": "slurmdbd_primary",
    "message": "[2026-03-26T00:31:22.772+00:00] mysql_common: storage token refreshed"
}

다음 예제에서는 slurmrestd 로그 레코드(Slurm 25.05 이상)를 보여줍니다.

{
    "resource_id": "pcs_bu93qsds2j",
    "resource_type": "PCS_CLUSTER",
    "event_timestamp": 1774485082772,
    "log_level": "info",
    "log_name": "slurmrestd",
    "scheduler_type": "slurm",
    "scheduler_major_version": "25.05",
    "scheduler_patch_version": "3",
    "node_type": "slurmrestd_primary",
    "message": "[2026-03-26T00:31:22.772+00:00] slurmrestd: Listening on port 6820\n"
}