

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# PCS 中的 AWS 计划程序审核日志
<a name="monitoring_scheduler-audit-logs"></a>

调度程序审核日志记录由集群的 Slurm 控制器 () 和数据库守护程序 () 处理的远程过程调用 (RPC`slurmctld`) 操作。`slurmdbd`日志消息中的`AUDIT_RPCS:`前缀标识这些日志。它们支持安全审计和合规用例。

对于运行 Slurm 25.11 及更高版本的集群， AWS PCS 通过日志类型单独提供审核日志。`PCS_SCHEDULER_AUDIT_LOGS`这种分离使您可以独立于操作日志来控制审核日志的摄取和存储成本，因为审核日志可能占调度程序日志量的 90%。

**注意**  
对于运行 Slurm 版本低于 25.11 的集群，审核日志将保留在中，`PCS_SCHEDULER_LOGS`并且`PCS_SCHEDULER_AUDIT_LOGS`日志类型不可用。有关调度程序日志的更多信息，请参阅[计划程序在 PCS 中 AWS 登录](monitoring_scheduler-logs.md)。

**Contents**
+ [先决条件](#monitoring_scheduler-audit-logs_prereqs)
+ [设置调度程序审核日志](#monitoring_scheduler-audit-logs_setup)
+ [调度程序审核日志流路径和名称](#monitoring_scheduler-audit-logs_paths)
+ [计划程序审核日志记录示例](#monitoring_scheduler-audit-logs_record)
+ [按照 Slurm 版本对日志行为进行审计](#monitoring_scheduler-audit-logs_behavior)

## 先决条件
<a name="monitoring_scheduler-audit-logs_prereqs"></a>

在设置计划程序审核日志之前，必须满足以下要求：
+ 您的集群必须运行 **Slurm 25.11** 或更高版本。
+ 管理 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-audit-logs_setup"></a>

您可以使用 AWS 管理控制台 或 AWS CLI为 AWS PCS 集群设置计划程序审核日志。计划程序审核日志是可选的。 AWS 在您订阅之前，PCS 不会交付它们。

------
#### [ AWS 管理控制台 ]

**使用控制台设置计划程序审核日志**

1. 打开 [AWS PCS 控制台](https://console.aws.amazon.com/pcs)。

1. 在导航窗格中，选择**集群**。

1. 选择要在其中添加调度程序审核日志的集群。

1. 在集群详细信息页面上，选择**日志**选项卡。

1. 在 “**计划程序审核日志**” 下，选择 “**添加**”，从日志、Amazon S3 和 Firehose 中添加最多 3 个 CloudWatch 日志传输目标。

1. 选择 “**更新日志传送**”。

------
#### [ AWS CLI ]

**要使用设置调度程序审核日志 AWS CLI**

1. 创建日志传输目标：

   ```
   aws logs put-delivery-destination --region {{region}} \
     --name {{pcs-audit-logs-destination}} \
     --delivery-destination-configuration \
     destinationResourceArn={{resource-arn}}
   ```

   进行如下替换：
   + {{region}}— 您要在 AWS 区域 哪里创建目的地，例如 `us-east-1`
   + {{pcs-audit-logs-destination}}— 目的地的名称
   + {{resource-arn}}— CloudWatch 日志组、S3 存储桶或 Firehose 传输流的亚马逊资源名称 (ARN)。

   有关更多信息，请参阅 *Amazon CloudWatch 日志 API 参考[PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html)*中的。

1. 将 PCS 集群设置为日志传输源：

   ```
   aws logs put-delivery-source --region {{region}} \
     --name {{cluster-audit-logs-source-name}} \
     --resource-arn {{cluster-arn}} \
     --log-type PCS_SCHEDULER_AUDIT_LOGS
   ```

   进行如下替换：
   + {{region}}— 您的 AWS 区域 集群的，例如 `us-east-1`
   + {{cluster-audit-logs-source-name}}— 来源的名称
   + {{cluster-arn}}— 您的 PCS 集群的 AWS ARN

   有关更多信息，请参阅 *Amazon CloudWatch 日志 API 参考[PutDeliverySource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html)*中的。

1. 将传送源连接到传送目的地：

   ```
   aws logs create-delivery --region {{region}} \
     --delivery-source-name {{cluster-audit-logs-source}} \
     --delivery-destination-arn {{destination-arn}}
   ```

   进行如下替换：
   + {{region}}— 那个 AWS 区域，比如 `us-east-1`
   + {{cluster-audit-logs-source}}— 您的配送来源的名称
   + {{destination-arn}}— 您的配送目的地的 ARN

   有关更多信息，请参阅 *Amazon CloudWatch 日志 API 参考[CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html)*中的。

------

## 调度程序审核日志流路径和名称
<a name="monitoring_scheduler-audit-logs_paths"></a>

 AWS PCS 计划程序审核日志的路径和名称取决于目标类型。
+ **CloudWatch 日志**
  +  CloudWatch 日志流遵循此命名约定。

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

    `slurmctld`或在`${log_name}`哪里`slurmdbd`。  
**Example**  

    ```
    AWSLogs/PCS/abcdef0123/slurmctld_25.11_audit.log
    AWSLogs/PCS/abcdef0123/slurmdbd_25.11_audit.log
    ```
+ **S3 存储桶**
  + S3 存储桶输出路径遵循以下命名约定：

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

    ```
    AWSLogs/111111111111/PCS/us-east-2/abcdef0123/scheduler_audit/slurmctld/2026/03/01/00/
    AWSLogs/111111111111/PCS/us-east-2/abcdef0123/scheduler_audit/slurmdbd/2026/03/01/00/
    ```

## 计划程序审核日志记录示例
<a name="monitoring_scheduler-audit-logs_record"></a>

AWS PCS 调度程序审核日志是结构化的。它们使用与调度器日志相同的架构，日志消息包含前`AUDIT_RPCS:`缀。以下是来自的示例`slurmctld`。

```
{
    "resource_id": "pcs_bu93qsds2j",
    "resource_type": "PCS_CLUSTER",
    "event_timestamp": 1774481175953,
    "log_level": "info",
    "log_name": "slurmctld",
    "scheduler_type": "slurm",
    "scheduler_major_version": "25.11",
    "scheduler_patch_version": "2",
    "node_type": "controller_primary",
    "message": "[2026-01-21T08:19:26.692+00:00] AUDIT_RPCS: [slurmctld-primary:6817(fd:18)] msg_type=REQUEST_PARTITION_INFO uid=0 client=[10.0.76.95:56918]\n"
}
```

以下是来自的示例`slurmdbd`。

```
{
    "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-01-21T08:19:26.692+00:00] AUDIT_RPCS: msg_type=DBD_GET_CLUSTERS uid=0 client=[28.5.0.18:36658] protocol=11008\n"
}
```

## 按照 Slurm 版本对日志行为进行审计
<a name="monitoring_scheduler-audit-logs_behavior"></a>

下表描述了如何根据集群上运行的 Slurm 版本传输审核日志。


| Slurm 版本 | `PCS_SCHEDULER_LOGS`包含 | `PCS_SCHEDULER_AUDIT_LOGS`可用 | 
| --- | --- | --- | 
| 早于 25.11 | 所有日志，包括审核日志 | 否 | 
| 25.11 及更高版本 | 仅限操作日志（已删除审核日志） | 是（选择加入） | 