

# AWS Glue 4.0 以前のジョブの継続的なログ記録の有効化
<a name="monitor-continuous-logging-enable"></a>

**注記**  
 AWS Glue 4.0 以前のバージョンでは、継続的なログ記録の機能は利用可能でした。しかし、AWS Glue 5.0 の導入により、すべてのジョブでリアルタイムのログ記録機能を利用できるようになりました。AWS Glue 5.0 のログ記録機能と設定オプションの詳細については、「[AWS Glue ジョブのログ記録](https://docs.aws.amazon.com/glue/latest/dg/monitor-continuous-logging.html)」を参照してください。

AWS Glue コンソールを使用するか、AWS Command Line Interface (AWS CLI) を通じて、連続ログ記録を有効にできます。

新しいジョブを作成するか、既存のジョブを編集または AWS CLI を介して有効にするときに、連続ログ記録を有効にできます。

また、Amazon CloudWatch ロググループ名、AWS Glue ジョブ実行 ID ドライバー/エグゼキュター ID の前の CloudWatch ログストリームプレフィックス、ログメッセージのログ変換パターンなどのカスタム設定オプションを指定することもできます。これらの設定は、異なる有効期限ポリシーを持つカスタム CloudWatch ロググループに集約ログを設定し、カスタムログストリームプレフィックスと変換パターンを使用してさらに分析するのに役立ちます。

**Topics**
+ [AWS マネジメントコンソール を使用する場合](#monitor-continuous-logging-enable-console)
+ [カスタムスクリプトロガーを使用したアプリケーション固有のメッセージのログ記録](#monitor-continuous-logging-script)
+ [進行状況バーでのジョブ進行状況の表示](#monitor-continuous-logging-progress)
+ [連続ログ記録によるセキュリティ設定。](#monitor-logging-encrypt-log-data)

## AWS マネジメントコンソール を使用する場合
<a name="monitor-continuous-logging-enable-console"></a>

次のステップに従ってコンソールを使用して、AWS Glue ジョブを作成または編集するときに連続ログ記録を有効にします。

**連続ログ記録を有効にして新しい AWS Glue ジョブを作成するには**

1. AWS マネジメントコンソール にサインインし、AWS Glue コンソール ([https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)) を開きます。

1. ナビゲーションペインで **[ETL ジョブ]** を選択します。

1. **[ビジュアル ETL]** を選択します。

1. **[Job 詳細]** タブで、**[詳細プロパティ]** セクションを展開します。

1. **[継続的なログ記録]** で **[CloudWatch でログの有効化]** を選択します。

**既存の AWS Glue ジョブに対して連続ログ記録を有効にするには**

1. [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/) で AWS Glue コンソール を開きます。

1. ナビゲーションペインで [**Jobs**] (ジョブ) を選択します。

1. [**Jobs (ジョブ)**] リストから既存のジョブを選択します。

1. [**Action (アクション)**]、[**Edit job (ジョブの編集)**] の順に選択します。

1. **[Job 詳細]** タブで、**[詳細プロパティ]** セクションを展開します。

1. **[継続的なログ記録]** で **[CloudWatch でログの有効化]** を選択します。

### AWS CLI の使用
<a name="monitor-continuous-logging-cli"></a>

連続ログ記録を有効にするには、 AWS Glue ジョブにジョブパラメータを渡します。他の AWS Glue ジョブパラメータに類似した次の特殊なジョブパラメータを渡します。詳細については、「[AWS Glue ジョブでジョブパラメータを使用する](aws-glue-programming-etl-glue-arguments.md)」を参照してください。

```
'--enable-continuous-cloudwatch-log': 'true'
```

カスタム Amazon CloudWatch ロググループ名を指定できます。指定しない場合、デフォルトのロググループ名は、`/aws-glue/jobs/logs-v2` になります。

```
'--continuous-log-logGroup': '{{custom_log_group_name}}'
```

カスタム Amazon CloudWatch ログストリームプレフィックスを指定できます。指定しない場合、デフォルトのログストリームプレフィックスはジョブ実行 ID になります。

```
'--continuous-log-logStreamPrefix': '{{custom_log_stream_prefix}}'
```

カスタムの連続ロギング変換パターンを指定できます。指定しない場合、デフォルトの変換パターンは `%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n` になります。変換パターンは、ドライバーログとエグゼキューターログにのみ適用されます。AWS Glue の進行状況バーには影響しません。

```
'--continuous-log-conversionPattern': '{{custom_log_conversion_pattern}}'
```

## カスタムスクリプトロガーを使用したアプリケーション固有のメッセージのログ記録
<a name="monitor-continuous-logging-script"></a>

AWS Glue ロガーを使用すると、ドライバーログストリームにリアルタイムで送信される、スクリプトのアプリケーション固有のメッセージを記録できます。

Python スクリプトの例を以下に示します。

```
from awsglue.context import GlueContext
from pyspark.context import SparkContext

sc = SparkContext()
glueContext = GlueContext(sc)
logger = glueContext.get_logger()
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
```

Scala スクリプトの例を以下に示します。

```
import com.amazonaws.services.glue.log.GlueLogger

object GlueApp {
  def main(sysArgs: Array[String]) {
    val logger = new GlueLogger
    logger.info("info message")
    logger.warn("warn message")
    logger.error("error message")
  }
}
```

## 進行状況バーでのジョブ進行状況の表示
<a name="monitor-continuous-logging-progress"></a>

AWS Glue は、`JOB_RUN_ID-progress-bar` ログストリームでリアルタイムの進行状況バーを提供して AWS Glue ジョブ実行のステータスを確認します。現時点では、`glueContext` を初期化するジョブのみがサポートされています。`glueContext` を初期化せずに純粋な Spark ジョブを実行すると、AWS Glue 進行状況バーは表示されません。

進行状況バーでは、以下の進行状況が 5 秒ごとに更新されます。

```
Stage Number (Stage Name): > (numCompletedTasks + numActiveTasks) / totalNumOfTasksInThisStage]
```

## 連続ログ記録によるセキュリティ設定。
<a name="monitor-logging-encrypt-log-data"></a>

CloudWatch ログのセキュリティ設定が有効になっている場合、AWS Glue では、連続ログに対して次のような名前のロググループが作成されます。

```
<Log-Group-Name>-<Security-Configuration-Name>
```

デフォルトのロググループおよびカスタムロググループは次のようになります。
+ デフォルトの連続ロググループは `/aws-glue/jobs/error-<{{Security-Configuration-Name>}}` となります。
+ カスタム連続ロググループは `<{{custom-log-group-name>}}-<{{Security-Configuration-Name>}}` となります。

CloudWatch Logs でセキュリティ設定を有効にする場合、`logs:AssociateKmsKey` を IAM ロールのアクセス許可に追加する必要があります。そのアクセス許可が含まれていない場合、連続ログ記録は無効になります。また、CloudWatch Logs 暗号化を設定するには、「*Amazon CloudWatch Logs ユーザーガイド*」の「[AWS Key Management Service を使用して CloudWatch Logs のログデータを暗号化する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)」を参照してください。

セキュリティ設定作成の詳細については、「[AWS Glue コンソールでのセキュリティ設定の管理](console-security-configurations.md)」を参照してください。

**注記**  
 ログを有効にし、追加の CloudWatch ログイベントが作成されると、追加料金が発生することがあります。詳細については、「[Amazon CloudWatch の料金](https://aws.amazon.com/cloudwatch/pricing/)」を参照してください。