Cloud Assistantが提供する操作コンテンツと結果の配信機能を使用すると、タスクの実行記録をOSS (Object Storage Service) またはSimple Log Serviceに配信して永続的に保存できます。 このトピックでは、タスク実行レコードを特定のOSSバケットまたはSimple Log Service Logstoreに配信する配信設定を構成する方法と、配信された実行レコードを照会する方法について説明します。
背景情報
Cloud Assistantでは、実行レコードを保持できますが、保持する実行レコードの最大数と保持期間に制限があります。 詳細については、「制限」トピックのCloud Assistantの制限セクションをご参照ください。 大量の実行レコードを保持したい场合, または実行レコードを长期间保持したい场合は, 操作内容および结果配信机能を使用することを推奨します。 操作コンテンツと結果配信機能を使用すると、実行レコードの配信とクエリを実行し、セキュリティ分析、リソース変更の追跡、行動コンプライアンスの監査などの操作を実行できます。
課金
セッションレコード配信機能は無料です。 ただし、この機能を使用すると、次の項目に対して課金される場合があります。
手順1: 操作コンテンツと結果の配信機能の設定
ECSコンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
上部ナビゲーションバーの左上でリージョンを選択します。
説明タスク実行レコードをリージョン間で配信することはできません。 複数のリージョンでタスク実行レコードを配信するには、各リージョンの配信設定を行います。
ECS Cloud Assistantページの右上隅にある [設定] をクリックします。
[クラウドアシスタントの設定] ダイアログボックスで、[コマンド実行設定] タブをクリックして配信設定を設定します。
タスク実行レコードをSimple Log Serviceに配信します。
[Log Serviceに配信] を選択します。
既存のSimple Log ServiceプロジェクトとLogstoreを選択します。
選択したリージョンにSimple Log ServiceプロジェクトまたはLogstoreがない場合は、Log ServiceコンソールまたはLogstoreをクリックして、Simple Log ServiceコンソールでプロジェクトまたはLogstoreを作成します。 プロジェクトまたはログストアを作成したら、ECSコンソールの [クラウドアシスタントの設定] ダイアログボックスに戻り、アイコンをクリックして、Simple Log Serviceプロジェクトまたはログストアの最新リストを取得します。 Simple Log Serviceプロジェクトの作成方法およびSimple Log Service Logstoreの作成方法については、「プロジェクトの管理」および「Logstoreの管理」をご参照ください。
Simple Log Serviceでログをクエリまたは分析するには、インデックス作成を有効にする必要があります。 詳細については、「インデックスの作成」をご参照ください。
(オプション) Logstoreのサーバー側の暗号化方法を指定します。 Logstoreに配信されるセッションレコードは、暗号化方式を使用して暗号化されます。 詳細については、「データの暗号化」をご参照ください。
タスク実行レコードをOSSに配信します。
[OSSに配信] をクリックします。
既存のOSSバケットを選択し、セッションレコードを保存するルートディレクトリを入力します。
選択したリージョンにOSSバケットがない場合は、[OSSコンソール] をクリックして、OSSコンソールにバケットを作成します。 バケットを作成したら、ECSコンソールのダイアログボックスに戻り、アイコンをクリックしてOSSバケットの最新リストを取得します。 OSSバケットの作成方法については、「バケットの作成」をご参照ください。
(オプション) [詳細オプション] の横にあるアイコンをクリックして、サーバー側の暗号化方法を指定します。
説明OSSは、静的データを保護するためのサーバー側暗号化メカニズムを提供します。 このメカニズムは、高いセキュリティまたはコンプライアンスが必要なシナリオで使用できます。 サーバー側の暗号化メソッドを指定した場合、セッションレコードを含むオブジェクトは、メソッドを使用して暗号化されます。 詳細については、「サーバー側の暗号化」をご参照ください。
[OK] をクリックします。
初めて配信設定を設定すると、システムは、Cloud AssistantがSimple Log serviceおよびOSSリソースへのアクセスを許可するサービスにリンクされたロールを作成します。 これにより、セッションレコードを特定のSimple Log Service LogstoreまたはOSSバケットに配信できます。 サービスにリンクされたロールが既に存在する場合、システムはロールを再作成しません。 ビジネス要件に基づいて、Cloud Assistantのロールを管理できます。 詳細については、「ECS Cloud Assistantのサービスにリンクされたロールの管理」をご参照ください。
ステップ2: コマンドの実行またはファイルの送信
コマンドを実行するかファイルを送信すると、対応するタスク実行レコードが指定されたSimple Log Service LogstoreまたはOSSバケットに自動的に配信されます。
詳細については、「即時実行機能の使用」、「コマンドの実行」、および「ECSインスタンスへのオンプレミスファイルのアップロード」をご参照ください。
ステップ3: タスク実行レコードの表示
Simple Log Serviceコンソールでのタスク実行レコードの表示
このセクションでは、Elastic Compute Service (ECS) コンソールからLogstoreにアクセスして、Logstoreに配信されるタスク実行レコードのログを表示する方法について説明します。 または、Simple log ServiceコンソールにログインしてLogstoreにアクセスすることもできます。
ECSコンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
上部ナビゲーションバーの左上でリージョンを選択します。
ECS Cloud Assistantページの右上隅にある [設定] をクリックします。
[クラウドアシスタントの設定] ダイアログボックスで、[コマンド実行設定] タブをクリックし、[Log Serviceに配信] を選択します。
[プロジェクト] フィールドの右側にある [ログストア] をクリックします。
ログのクエリと分析方法については、「ログのクエリと分析」をご参照ください。
タスク実行レコードのサンプルログを次の図に示します。 ログのパラメーターの詳細については、このトピックの「タスク実行レコードのパラメーター」をご参照ください。
ワンタイムコマンド実行レコードのサンプルログ
コマンド実行予定レコードのサンプルログ
Repeatsパラメーターの値は、コマンドの実行回数を示します。
ファイル送信レコードのサンプルログ
OSSコンソールでのタスク実行レコードの表示
このセクションでは、ECSコンソールからOSSバケットにアクセスして、バケットに配信されるタスク実行レコードのオブジェクトを表示する方法について説明します。 または、OSSコンソールにログインしてバケットにアクセスすることもできます。
ECSコンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
上部ナビゲーションバーの左上でリージョンを選択します。
ECS Cloud Assistantページの右上隅にある [設定] をクリックします。
[クラウドアシスタントの設定] ダイアログボックスで、[コマンド実行設定] タブをクリックし、[OSSに配信] を選択します。
[バケット] フィールドの右側にある [OSSコンソール] をクリックします。
タスクの実行レコードを含むオブジェクトが格納されているディレクトリに移動します。
OSSコンソールにログインすると、タスク実行レコードを配信する配信設定を構成したときに指定したルートディレクトリに自動的に移動します。 タスクの種類に基づいて自動的に生成されるサブディレクトリにアクセスできます。
コマンドタスクの場合は、invocationResults/ <task ID> サブディレクトリに移動します。 このサブディレクトリには、ECSインスタンスIDとコマンドのスクリプトにちなんで名付けられたディレクトリが表示されます。 スクリプトの名前は次のいずれかになります。
commandContent.bat: Windows ECSインスタンスで実行できるバッチコマンド。
commandContent.ps1: Windows ECSインスタンスで実行できるPowerShellコマンド。
commandContent.sh: Linux ECSインスタンスで実行できるシェルコマンド。
ファイル送信タスクの場合は、sendFileResults/ <task ID> サブディレクトリに移動します。 このサブディレクトリには、ECSインスタンスIDとfileContent.txtファイルにちなんで名付けられたディレクトリが表示されます。 ファイルには送信されたコンテンツが含まれます。
次の図は、Linux ECSインスタンスでシェルコマンドを実行するタスク用に生成されたサンプルのサブディレクトリを示しています。
ECSインスタンスのIDにちなんで名付けられたディレクトリに移動し、インスタンスで実行されているタスクの実行記録を含むオブジェクトを照会します。
次の図は、タスク実行レコードを含むJSON形式のオブジェクトのサンプルを示しています。
ワンタイムコマンド実行レコードを含むサンプルオブジェクト
スケジュールされたコマンド実行レコードを含むサンプルオブジェクト
各オブジェクト名の数値は、指定されたインスタンスでコマンドが実行された回数を示します。
ファイル送信レコードを含むサンプルオブジェクト
タスク実行レコードを含むオブジェクトに対応する [操作] 列の [詳細の表示] をクリックします。 次に、オブジェクトをダウンロードするか、オブジェクトのURLをコピーして、オブジェクトのコンテンツを表示します。
次のコードは、シェルコマンドの1回限りの実行レコードを含むサンプルオブジェクトを示しています。 実行レコードに含まれるパラメーターの詳細については、このトピックの「タスク実行レコードのパラメーター」をご参照ください。
{ "RegionId":"cn-hangzhou", "InstanceId":"i-bp1hd5ztmab9cgc0 ****" 、 "InvokeId":"t-hz01x7rtjfy ****" 、 "CommandId":"c-hz01x7cn5aj ****" 、 "CommandName":"cmd-hostname" 、 "CommandType":"RunShellScript" 、 "CommandContent":"hostname" 、 "ResourceOwnerUid":160998252992 **** 、 "CallerUid":160998252992 **** 、 "CallerType":"customer" 、 "タイムアウト":60、 "周波数":"" 、 "パラメータ":"{}" 、 "Username":"" 、 "RepeatMode":"Once" 、 "繰り返し":1、 "InvocationStatus":"Success" 、 「ドロップ」: 0、 "Output":"iZbp1hd5ztmab9cgc0 ****\n" 、 "ExitCode":0、 "CreationTime":"2021-09-26T05:47:20Z" 、 "StartTime":"2021-09-26T05:47:20Z" 、 "UpdateTime":"2021-09-26T05:47:20Z" 、 "FinishedTime":"2021-09-26T05:47:20Z" 、 "StopTime":" }
タスク実行レコードのパラメータ
タスク実行レコードに含まれるパラメーターを次の表に示します。 有効な値などのパラメーターの使用方法の詳細については、「DescribeCommands」および「DescribeInvocationResults」をご参照ください。
パラメーター | 例 | 説明 |
RegionId | cn-hangzhou | コマンドが実行されたECSインスタンスのリージョンID。 |
InstanceId | i-bp1hd5ztmab9cgc0 **** | インスタンスのID |
InvokeId | t-hz01x7rtjfy **** | コマンドタスクのID。 |
CommandId | c-hz01x7cn5aj **** | スクリプトID。 |
CommandName | cmd-ホスト名 | コマンドの名前。 |
CommandType | RunShellScript | コマンドのタイプ。 |
CommandContent | hostname | コマンドのプレーンテキストの内容。 |
ResourceOwnerUid | 160998252992 **** | コマンド呼び出し元のAlibaba CloudアカウントID。 |
CallerUid | 160998252992 **** | コマンド呼び出し元のアカウントID。 |
CallerType | customer | コマンド呼び出し元の呼び出しモード。 |
タイムアウト | 60 | コマンドタスクのタイムアウト期間。 単位は秒です。 |
頻度 | 0*14 * *? | コマンドが実行されるスケジュール。 このパラメーターの値はcron式です。 詳細については、「Cron式」をご参照ください。 |
パラメーター | {} | カスタムパラメーターがコマンドに含まれるときに渡されるカスタムパラメーターのキーと値のペア。 |
ユーザー名 | root | ECSインスタンスでコマンドを実行するために使用されるユーザー名。 |
RepeatMode | 期間 | コマンドの実行方法を示します。 |
繰り返し | 2 | ECSインスタンスでコマンドが実行された回数。 |
InvocationStatus | Success | 単一のECSインスタンスのコマンドステータス。 |
ErrorCode | InstanceNotExists | コマンドを送信または実行できない場合に返されるエラーコード。 |
エラー情報 | 指定されたインスタンスが存在しない | コマンドを送信または実行できない場合に返されるエラーメッセージ。 |
ドロップ | 0 | Outputレスポンスパラメーターの値が24 KBを超えたときに切り捨てられ、破棄されたテキストのサイズ。 |
Output | iZbp1hd5ztmab9cgc0 ****\n | コマンド出力。 |
ExitCode | 0 | コマンドの終了コード。 |
CreationTime | 2021-09-26T05:47:20Z | コマンドタスクが作成された時刻。 |
StartTime | 2021-09-26T05:47:20Z | ECSインスタンスでコマンドの実行が開始された時刻。 |
updateTime | 2021-09-26T06:53:00Z | コマンドタスクのステータスが更新された時刻。 |
FinishedTime | 2021-09-26T06:53:00Z | コマンドタスクが完了した時刻。 |
StopTime | 2021-09-26T06:53:00Z | ECSインスタンスでコマンドの実行が停止した時刻。 StopInvocation操作を呼び出して実行を手動で停止した場合、値は操作が呼び出された時刻です。 |
ファイル送信レコードに含まれるパラメーターを次の表に示します。 有効な値などのパラメーターの使用方法の詳細については、「DescribeSendFileResults」をご参照ください。
パラメーター | 例 | 説明 |
RegionId | cn-hangzhou | ファイルが送信されたECSインスタンスのリージョンID。 |
InstanceId | i-bp1hd5ztmab9cgc0 **** | インスタンスのID |
InvokeId | f-hz01xeva44 **** | ファイル送信タスクのID。 |
FileName | sendfile-test.txt | ファイルの名前 |
ContentType | Base64 | ファイルのコンテンツタイプ。 |
説明 | テストのために使用される | ファイルの説明。 |
FileContent | c2VuZCBmaWxlIHRlc3Q= | ファイルの内容。 |
FileGroup | root | ファイルのグループ。 |
FileMode | 0644 | リモートファイルに対する権限。 |
FileOwner | root | リモートファイルの所有者。 |
ResourceOwnerUid | 16099825299 **** | ファイル送信者のAlibaba CloudアカウントID。 |
CallerUid | 16099825299 **** | ファイル送信者のアカウントID。 |
CallerType | customer | ファイル送信者の呼び出しモード。 |
上書き | true | ファイルが送信されたファイルと同じ名前の場合、ファイルが宛先ディレクトリで上書きされたかどうかを示します。 |
TargetDir | /ルート | ファイルが送信された宛先ディレクトリ。 |
タイムアウト | 60 | ファイル送信タスクのタイムアウト時間。 単位は秒です。 |
InvocationStatus | Success | ファイル送信タスクのステータス。 |
ErrorCode | FileAlreadyExists | ファイルのECSインスタンスへの送信に失敗したときに返されるエラーコード |
エラー情報 | ファイルは既に存在します: sendfile-test.txt | ファイルのECSインスタンスへの送信に失敗した場合、またはECSインスタンスでのファイル送信タスクの実行に失敗した場合に返されるエラーメッセージ。 |
CreationTime | 2021-09-28T05:31:04Z | ファイル送信タスクの作成時刻。 |
StartTime | 2021-09-28T05:31:04Z | ECSインスタンスでファイル送信タスクの実行が開始された時刻。 |
updateTime | 2021-09-28T05:31:04Z | ファイル送信タスクのステータスが更新された時刻。 |
FinishTime | 2021-09-28T05:31:04Z | ファイル送信タスクが完了した時刻。 |