外部ロギングの有効化

watsonx Orchestrate テナントのエラーをデバッグするには、ログやトレースを使用します。 ログは、スキルの実行中に発生したイベントの記録である。 例外やリクエストの失敗など、発生したエラーに関する貴重な情報を提供することができる。 ログを使用することで、watsonx Orchestrate がスキルの構築や実行中に生成する情報を表示および分析することができます。

開始前に

watsonx Orchestrateログとトレースにアクセスするには、'Amazon Simple Storage Service (Amazon S3) Amazon Web Services (AWS)アカウントが必要です。 AWSアカウントをお持ちでない場合は、こちらから無料トライアルにお申し込みいただけます

Amazon S3 バケットを作成する

Amazon S3 バケットはデータを格納するコンテナです。 以下は、Amazon S3バケットを作成する手順です:

  1. アカウントに'Amazon S3バケットを作成する。 Amazon S3バケット名はグローバルに一意でなければならない。 したがって、 S3の名前の最後にテナントIDを追加して、固有の名前を作成する必要があります。例えば、 "tenantxxx-bucket" のようにです。

  2. AWSアカウントにロールを作成し、'watsonx Orchestrate ServiceLine AWSのアカウントID('239621575091)を信頼済みエンティティとして指定します。 また、'"tenantxxx-bucket"作成したバケツへの読み込みと書き込みアクセスのみにロールの権限を制限する新しいポリシーを作成する必要があります。 このロールアクセスを与えられた者は、'"tenantxxx-bucket"バケツに対する完全な読み書きのアクセス権を持ちます。

    • ロールを作成する前に、ロール要件のアクセス許可を定義するマネージドポリシーを準備し、後のステップで準備したマネージドポリシーをロールにアタッチします。

    • AWSIdentity and Access Management(IAM) コンソールに移動し、Policies>Create policy をクリックします。 JSONタブをクリックし、JSON ポリシー文書から完全なテキストをコピーします。 コピーしたJSONポリシードキュメントをJSONテキストエディタで編集し、リソースARN '(arn:aws:s3:::tenantxxx-bucket)をAmazon S3バケットのものに置き換えて更新する。 以下は、JSON ポリシー文書のサンプルです:

    {
        "Version": "2012-10-17",
        "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
            "s3:ListBucket",
            "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::tenantxxx-bucket"
        },
        {
            "Effect": "Allow",
            "Action": [
            "s3:GetObject",
            "s3:PutObject",
            "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::tenantxxx-bucket/*"
        }
        ]
    }
    

    • レビューと作成ページで、ポリシー名を入力します。例えば、 read-write-app-bucket などです。
    • ポリシーによって付与された権限を確認し、ポリシーの作成をクリックして保存します。 新しいポリシーは、管理されているポリシーのリストに表示されなければならない。
    • ロールを作成するには、ナビゲーションペインでロール > ロールの作成をクリックします。
    • An AWSアカウントのロールタイプをクリックし、AWSアカウントを設定します:
      • AnotherAWSaccountを選択し、Account ID に '239621575091 watsonx Orchestrate ServiceLine AWS のアカウント ID を指定します。
    • ロールに関連するパーミッションを設定し、次へパーミッションをクリックします。
    • 前のステップで作成したポリシーの横にあるチェックボックスをクリックします。
    • (オプション) キーと値のペアとしてタグを添付して、ユーザーにメタデータを追加します。
    • (オプション)Descriptionの下に、新しいロールの説明を入力できます。
    • ロールを確認したら、ロールを作成をクリックします。
  3. ロールを作成したら、ロールのAmazon Resource Name(ARN)を取得します。 ARNはロールの一意識別子である。 ARNを取得する:

    • IAMコンソールのナビゲーションペインに移動し、Rolesをクリックする。
    • ロールのリストで、前のステップで作成したロールを選択します。
    • SummaryからRole ARNの値をコピーします。

このバケットに外部ログを保存することができます。

CloudWatchロググループを作成します

CloudWatchロググループを作成して、ログを表示および分析します。 特定のテナントにCloudWatchロググループを作成する手順は次のとおりです:

  1. アカウントに'"tenantxxx-lg"ようなCloudWatchロググループを作成する。

  2. AWSアカウントにロールを作成し、'watsonx Orchestrate ServiceLine AWSのアカウントID('239621575091)を信頼済みエンティティとして指定します。 また、作成した CloudWatch ロググループへの読み取りと書き込みアクセス権のみにロールの権限を制限する新しいポリシーを作成する必要があります。例えば、 "tenantxxx-lg" などです。 このロールアクセスを与えられた人は、'"tenantxxx-lg" CloudWatchロググループへの完全な読み取りと書き込みのアクセス権を持つ。

    • ロールを作成する前に、ロール要件のアクセス許可を定義するマネージドポリシーを準備し、後のステップで準備したマネージドポリシーをロールにアタッチします。
    • AWSIdentity and Access Management(IAM) コンソールに移動し、Policies>Create policy をクリックします。 JSON タブをクリックして、JSON ポリシー文書から完全なテキストをコピーします。 JSONテキストエディタでコピーしたポリシー文書を編集し、リソースARN( arn:aws:cloudwatch:::tenantxxx-lg ) CloudWatch (例えば、 arn:aws:logs::<AWS_Account_ID>:log-group:tenantxxx-lg:* )に置き換えて更新します。以下はJSONポリシー文書のサンプルです
    {
        "Version": "2012-10-17",
        "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
            "logs:ListTagsLogGroup",
            "logs:GetDataProtectionPolicy",
            "logs:DeleteDataProtectionPolicy",
            "logs:DescribeLogStreams",
            "logs:StartQuery",
            "logs:CreateLogStream",
            "logs:TagLogGroup",
            "logs:GetLogEvents",
            "logs:AssociateKmsKey",
            "logs:FilterLogEvents",
            "logs:PutDestination",
            "logs:DisassociateKmsKey",
            "logs:PutDataProtectionPolicy",
            "logs:UntagLogGroup",
            "logs:DescribeLogGroups",
            "logs:PutDestinationPolicy",
            "logs:TagResource",
            "logs:PutLogEvents",
            "logs:CreateLogGroup",
            "logs:PutRetentionPolicy",
            "logs:GetLogGroupFields"
            ],
            "Resource": "arn:aws:logs::<AWS_Account_ID>:log-group:tenantxxx-lg:*"
        }
        ]
    }
    

    • レビューと作成ページで、ポリシー名を入力します。例えば、 read-write-cw-lg などです。
    • ポリシーによって付与された権限を確認し、ポリシーの作成をクリックして保存します。 新しいポリシーは、管理されているポリシーのリストに表示されなければならない。
    • ロールを作成するには、ナビゲーションペインでロール > ロールの作成をクリックします。
    • An AWSアカウントのロールタイプをクリックし、AWSアカウントを設定します:
      • AnotherAWSaccountを選択し、Account ID に '239621575091 watsonx Orchestrate ServiceLine AWS のアカウント ID を指定します。
    • ロールに関連するパーミッションを設定し、次へパーミッションをクリックします。
    • 前のステップで作成したポリシーの横にあるチェックボックスをクリックします。
    • (オプション) キーと値のペアとしてタグを添付して、ユーザーにメタデータを追加します。
    • (オプション)Descriptionの下に、新しいロールの説明を入力できます。
    • ロールを確認したら、ロールを作成をクリックします。
  3. ロールを作成したら、ロールのAmazon Resource Name(ARN)を取得します。 ARNはロールの一意識別子である。 ARNを取得する:

    • IAMコンソールのナビゲーションペインに移動し、Rolesをクリックする。
    • ロールのリストで、前のステップで作成したロールを選択します。
    • SummaryからロールARN値をコピーします。

新しいロググループがロググループのリストに表示されます。 これで、ロググループへのログデータの送信を開始できる。

Amazon S3バケットにwatsonx Orchestrateを登録する

Amazon S3バケットにwatsonx Orchestrateを登録し、ログの転送を開始します。 APIを使用して情報を登録することができます。 IBM サポートに連絡し、ケースを開いてください。 サポートケースには以下の情報を含めること:

  • watsonx OrchestrateCRNの詳細:CRN IDを知るには、'watsonx Orchestrateにログインし、[プロフィール]、[バージョン情報]の順にクリックします。 アバウトページのスクリーンショットを送信する。
  • 前のステップで作成したAWS S3バケットの詳細:'s3_bucket_name,s3_region,s3_role_arn
  • 前のステップで作成した CloudWatch ロググループの詳細: cw_loggroup_name,cw_region,cw_role_arn

登録が完了すると、IBMのサポート・チームから連絡があります。

監査ログへのアクセス

監査ログにアクセスするには、Amazon S3バケットに移動する必要があります。 tenantID名前のトップレベルのフォルダがバケツに作成される。 このフォルダには、JSON形式の監査ログのファイルが含まれています。

対応ログ

以下は、 Amazon S3 バケットと CloudWatchで利用可能なログである。

watsonx Orchestrate の監査ログが表示されます。 AWS

AWS 上の watsonx Orchestrate の監査ログには、 watsonx Orchestrate から生成されたイベントが一覧表示されます。 リストを見るには、 スキルベース体験のアクティビティ追跡用イベントのリストをご覧ください。

watsonx Orchestrate のデバッグログは、次のようになります。 AWS

デバッグログは、問題やエラーを特定し、診断するために使用される。 AWS の watsonx Orchestrate のデバッグログは、監査ログと、特定のクラウドリソース名(CRN)に関連するいくつかの追加ログを表示します。

注: デバッグログは、 watsonx Orchestrate の内部システムログを表示することを意図していない。 これらの追加ログはデバッグを目的としているため、内容が変更される可能性があります。