

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

# AWS PCS의 스케줄러 로그
<a name="monitoring_scheduler-logs"></a>

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

**Contents**
+ [사전 조건](#monitoring_scheduler-logs_prereqs)
+ [스케줄러 로그 설정](#monitoring_scheduler-logs_setup)
+ [스케줄러 로그 스트림 경로 및 이름](#monitoring_scheduler-logs_paths)
+ [스케줄러 로그 레코드 예](#monitoring_scheduler-logs_record)

## 사전 조건
<a name="monitoring_scheduler-logs_prereqs"></a>

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

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

------
#### [ JSON ]

****  

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

------

## 스케줄러 로그 설정
<a name="monitoring_scheduler-logs_setup"></a>

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

------
#### [ AWS Management Console ]

**콘솔을 사용하여 스케줄러 로그를 설정하려면**

1. [AWS PCS 콘솔](https://console.aws.amazon.com/pcs)을 엽니다.

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

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

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

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

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

------
#### [ 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](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html)을 참조하시기 바랍니다.

1. 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](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html)를 참조하세요. *Amazon CloudWatch *

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

   ```
   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](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html)를 참조하세요. *Amazon CloudWatch *

------

## 스케줄러 로그 스트림 경로 및 이름
<a name="monitoring_scheduler-logs_paths"></a>

 AWS PCS 스케줄러 로그의 경로와 이름은 대상 유형에 따라 다릅니다.
+ **CloudWatch Logs**
  + CloudWatch Logs 스트림은 다음 명명 규칙을 따릅니다.

    ```
    AWSLogs/PCS/${cluster_id}/${log_name}_${scheduler_major_version}.log
    ```  
**Example**  

    ```
    AWSLogs/PCS/abcdef0123/slurmctld_24.05.log
    ```
+ **S3 버킷**
  + S3 버킷 출력 경로는 다음 명명 규칙을 따릅니다.

    ```
    AWSLogs/${account-id}/PCS/${region}/${cluster_id}/${log_name}/${scheduler_major_version}/yyyy/MM/dd/HH/
    ```  
**Example**  

    ```
    AWSLogs/111111111111/PCS/us-east-2/abcdef0123/slurmctld/24.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
    ```  
**Example**  

    ```
    PCS_slurmctld_24.05_2024-09-01-00_abcdef0123_0123abcdef.log
    ```

## 스케줄러 로그 레코드 예
<a name="monitoring_scheduler-logs_record"></a>

AWS PCS 스케줄러 로그는 구조화되어 있습니다. 여기에는 Slurm 컨트롤러 프로세스에서 내보낸 로그 메시지 외에도 클러스터 식별자, 스케줄러 유형, 메이저 및 패치 버전과 같은 필드가 포함됩니다. 다음 예를 참고하세요 

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