インスタンスログの CloudWatch Logs への送信 (CloudWatch エージェント) - AWS Systems Manager

インスタンスログの CloudWatch Logs への送信 (CloudWatch エージェント)

インスタンスのメトリクスとログを収集するには、SSM エージェント を使用する代わりに、Amazon CloudWatch エージェント を設定して使用できます。SSM エージェント よりも CloudWatch エージェント を使用したほうが、EC2 インスタンスのメトリクスを多く収集できます。また、CloudWatch エージェント を使用すると、オンプレミスのサーバーからもメトリクスを収集できます。

エージェントの構成設定を Systems Manager パラメータストア に保存して CloudWatch エージェント で使用することもできます。

注記

Currently, AWS Systems Manager supports migrating from SSM エージェント to the CloudWatch エージェント for collecting logs and metrics on 64-bit versions of Windows only. For information about setting up the CloudWatch エージェント on other operating systems, and for complete information about using the CloudWatch エージェント, see Collect metrics from Amazon Elastic Compute Cloud instances and on-premises servers with the CloudWatch エージェント in the Amazon CloudWatch ユーザーガイド.

You can use the CloudWatch エージェント on other supported operating systems, but you will not be able to use Systems Manager to perform a tool migration.

SSM エージェント は、実行、スケジュールされたアクション、エラー、ヘルスステータスを各インスタンスのログファイルに書き込みます。インスタンスに手動で接続してログファイルを表示し、SSM エージェント を使用してトラブルシューティングを行うと、時間がかかります。インスタンスを効率的にモニタリングするには、このログデータを Amazon CloudWatch Logs に送信するように SSM エージェント 自体または CloudWatch エージェント を設定できます。

重要

CloudWatch エージェント 統合エージェントによって、ログデータを Amazon CloudWatch Logs に送信するツールとしての SSM エージェント が置き換えられました。SSM エージェントを使用したログデータの送信のサポートは今後廃止されます。ログ収集プロセスには、統合された CloudWatch エージェント のみを使用することをお勧めします。詳細については、以下のトピックを参照してください。

CloudWatch Logs を使用すると、ログデータのリアルタイムのモニタリング、1 つ以上のメトリクスフィルターを作成してのログデータの検索とフィルター、および必要に応じた履歴データのアーカイブと取得を行うことができます。CloudWatch Logs の詳細については、『Amazon CloudWatch Logs User Guide』を参照してください。

ログデータを Amazon CloudWatch Logs に送信するようにエージェントを設定すると、以下の利点があります。

  • すべての SSM エージェント ログファイルを集中管理するログファイルストレージ。

  • エラーを調査するためのファイルへの迅速なアクセス。

  • ログファイルの無制限の保持 (設定可能)。

  • ログは、インスタンスのステータスに関係なく維持し、アクセスできます。

  • メトリクスやアラームなど、CloudWatch の他の機能へのアクセス。

Session Manager モニタリング活動の詳細については、「セッションアクティビティのログ記録と監査」を参照してください。

Windows Server インスタンスのログ収集を CloudWatch エージェント に移行する

サポートされている Windows Server インスタンスで現在 SSM エージェント を使用して SSM エージェント のログファイルを Amazon CloudWatch Logs に送信している場合は、Systems Manager を使用して SSM エージェント からログ収集ツールとして CloudWatch エージェント に移行できます。また、構成設定も移行できます。

CloudWatch エージェント は、32 ビットバージョンの Windows Server ではサポートされていません。

64 ビットの Windows Server の EC2 インスタンスの場合、CloudWatch エージェント への移行は自動または手動で実行できます。オンプレミスサーバーと仮想マシンの場合、プロセスは手動で実行する必要があります。

注記

移行プロセス中に、CloudWatch へのデータ送信が中断または重複する場合があります。メトリクスとログデータは、移行の完了後に、再度 CloudWatch に正確に記録されます。

一部のインスタンスで移行をテストしてから、フリート全体を CloudWatch エージェント に移行することをお勧めします。必要に応じて、移行後に再度 SSM エージェント に戻してログ収集を行うことができます。

重要

以下の場合、このトピックで説明している手順を使用して CloudWatch エージェント に移行することはできません。

  • SSM エージェント の既存の設定で、複数のリージョンを指定している場合。

  • SSM エージェント の既存の設定で、複数のアクセス/シークレットキー認証情報のセットを指定している場合。

上記の場合は、SSM エージェント でのログ収集を無効にし、移行プロセスを使わずに CloudWatch エージェント をインストールする必要があります。詳細については、以下のトピックを参照してください。

開始する前に

CloudWatch エージェント に移行してログ収集を開始する前に、移行を実行するインスタンスが以下の要件を満たしていることを確認します。

  • OS が 64 ビットバージョンの Windows Server である。

  • SSM エージェント 2.2.93.0 以降がインスタンスにインストールされている。

  • インスタンスでモニタリングするように SSM エージェント が設定されている。

CloudWatch エージェント への自動移行

Windows Server の EC2 インスタンスに限り、AWS Systems Manager コンソール、または AWS CLI を使用して、ログ収集ツールとして CloudWatch エージェント に移行します。

注記

Currently, AWS Systems Manager supports migrating from SSM エージェント to the CloudWatch エージェント for collecting logs and metrics on 64-bit versions of Windows only. For information about setting up the CloudWatch エージェント on other operating systems, and for complete information about using the CloudWatch エージェント, see Collect metrics from Amazon Elastic Compute Cloud instances and on-premises servers with the CloudWatch エージェント in the Amazon CloudWatch ユーザーガイド.

You can use the CloudWatch エージェント on other supported operating systems, but you will not be able to use Systems Manager to perform a tool migration.

移行が成功したら、CloudWatch で結果をチェックし、必要なメトリクス、ログ、または Windows イベントログが収集されていることを確認します。結果に満足したら、オプションとして CloudWatch エージェント の構成設定を パラメータストア に保存するすることができます。移行が失敗した場合や、結果が不満足なものである場合は、SSM エージェント でのログ収集へのロールバックことができます。

注記

{hostname} エントリが含まれているソース設定ファイルを移行する場合、移行が完了した後で {hostname} エントリがフィールドの値を変更できることに注意してください。たとえば、次の "LogStream": "{hostname}" エントリが MyLogServer001 という名前のサーバーにマッピングされているとします。

{ "Id": "CloudWatchIISLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch", "Parameters": { "AccessKey": "", "SecretKey": "", "Region": "us-east-1", "LogGroup": "Production-Windows-IIS", "LogStream": "{hostname}" } }

移行後、このエントリは ip-11-1-1-11.production.ExampleCompany.com などのドメインにマップされます。ローカルホスト名の値を保持するには、{hostname} ではなく {local_hostname} を指定します。

CloudWatch エージェント に自動的に移行するには (コンソール)

  1. https://console.aws.amazon.com/systems-manager/ で AWS Systems Manager コンソールを開きます。

  2. ナビゲーションペインで、[Run Command] を選択し、次に [Run command (コマンドの実行)] を選択します。

  3. [Command document (コマンドのドキュメント)] リストで、AmazonCloudWatch-MigrateCloudWatchAgent を選択します。

  4. [Targets] セクションでオプションを選択し、更新するインスタンスを選択します。

  5. [Run] を選択します。

CloudWatch エージェント に自動的に移行するには (AWS CLI)

  • 次のコマンドを実行します。

    aws ssm send-command --document-name AmazonCloudWatch-MigrateCloudWatchAgent --targets Key=instanceids,Values=ID1,ID2,ID3

    ID1ID2ID3 は、更新するインスタンスの ID ( i-02573cafcfEXAMPLE など) です。

CloudWatch エージェント への手動での移行

オンプレミスの Windows Server インスタンス、または Windows Server の EC2 インスタンスの場合は、以下のステップに従って、ログ収集を Amazon CloudWatch エージェント に手動で移行します。

注記

{hostname} エントリが含まれているソース設定ファイルを移行する場合、移行が完了した後で {hostname} エントリがフィールドの値を変更できることに注意してください。たとえば、次の "LogStream": "{hostname}" エントリが MyLogServer001 という名前のサーバーにマッピングされているとします。

{ "Id": "CloudWatchIISLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch", "Parameters": { "AccessKey": "", "SecretKey": "", "Region": "us-east-1", "LogGroup": "Production-Windows-IIS", "LogStream": "{hostname}" } }

移行後、このエントリは ip-11-1-1-11.production.ExampleCompany.com などのドメインにマップされます。ローカルホスト名の値を保持するには、{hostname} ではなく {local_hostname} を指定します。

ステップ 1: CloudWatch エージェントをインストールするには (コンソール)

  1. https://console.aws.amazon.com/systems-manager/ で AWS Systems Manager コンソールを開きます。

  2. ナビゲーションペインで、[Run Command] を選択し、次に [Run command (コマンドの実行)] を選択します。

  3. [Command document (コマンドのドキュメント)] リストで、AWS-ConfigureAWSPackage を選択します。

  4. [Targets] セクションでオプションを選択し、更新するインスタンスを選択します。

  5. [アクション] リストで、Install を選択します。

  6. [名前] に AmazonCloudWatchAgent と入力します。

  7. [バージョン] に、latest と入力します (デフォルトで提供されていない場合)。

  8. [Run (実行)] を選択します。

ステップ 2: 設定データの JSON 形式を更新するには

  • CloudWatch エージェント の既存の構成設定の JSON 形式を更新するには、AWS Systems Manager [Run Command] を使用するか、RDP 接続を通じて直接インスタンスにログインすることで、以下の Windows PowerShell コマンドを 1 回に 1 つずつインスタンスで実行します。

    cd ${Env:ProgramFiles}\\Amazon\\AmazonCloudWatchAgent
    .\\amazon-cloudwatch-agent-config-wizard.exe --isNonInteractiveWindowsMigration

    {Env:ProgramFiles} は、CloudWatch エージェント が含まれている Amazon フォルダの場所 (通常は C:\Program Files) を表します。

ステップ 3: CloudWatch エージェントを設定して開始するには (コンソール)

  1. https://console.aws.amazon.com/systems-manager/ で AWS Systems Manager コンソールを開きます。

  2. ナビゲーションペインで、[Run Command] を選択し、次に [Run command (コマンドの実行)] を選択します。

  3. [Command document (コマンドのドキュメント)] リストで、AWS-RunPowerShellScript を選択します。

  4. [Targets] セクションでオプションを選択し、更新するインスタンスを選択します。

  5. [Commands] ボックスに、次の 2 つのコマンドを入力します。

    cd ${Env:ProgramFiles}\Amazon\AmazonCloudWatchAgent
    .\amazon-cloudwatch-agent-ctl.ps1 -a fetch-config -m ec2 -c file:config.json -s

    {Env:ProgramFiles} は、CloudWatch エージェント が含まれている Amazon フォルダの場所 (通常は C:\Program Files) を表します。

  6. [Run (実行)] を選択します。

ステップ 4: SSM エージェント でログコレクションを無効にするには (コンソール)

  1. https://console.aws.amazon.com/systems-manager/ で AWS Systems Manager コンソールを開きます。

  2. ナビゲーションペインで、[Run Command] を選択し、次に [Run command (コマンドの実行)] を選択します。

  3. [Command document (コマンドのドキュメント)] リストで、AWS-ConfigurecloudWatch を選択します。

  4. [Targets] セクションでオプションを選択し、更新するインスタンスを選択します。

  5. [Status (ステータス)] リストで、Disabled を選択します。

  6. [Run (実行)] を選択します。

    以上の手順を完了したら、CloudWatch で結果をチェックし、必要なメトリクス、ログ、または Windows イベントログが収集されていることを確認します。結果に満足したら、オプションとして CloudWatch エージェント の構成設定を パラメータストア に保存するすることができます。移行が失敗した場合や、結果が不満足なものである場合は、SSM エージェント でのログ収集へのロールバックことができます。

CloudWatch エージェント の構成設定を パラメータストア に保存する

Amazon CloudWatch エージェント 設定ファイルの内容を パラメータストア に保存できます。この設定データをパラメータに保持すると、その構成設定を複数のインスタンスで継承できるため、構成ファイルの作成や手動の更新をインスタンスで行う必要がなくなります。たとえば、Run Command を使用してパラメータの内容を複数のインスタンスの設定ファイルに書き込んだり、ステートマネージャー を使用してインスタンスのフリート全体で CloudWatch エージェント 構成設定の設定ドリフトを回避したりできます。

CloudWatch エージェント 設定ウィザードを実行すると、このウィザードで構成設定を新しいパラメータとして パラメータストア に保存できます。CloudWatch エージェント 設定ウィザードの詳細については、「ウィザードを使用して CloudWatch エージェント 設定ファイルを作成する」を参照してください。

ウィザードを実行しても、設定をパラメータとして保存するオプションを選択しなかった場合や、CloudWatch エージェント 設定ファイルを手動で作成した場合は、インスタンスでデータを取得してパラメータとして次のファイルに保存できます。

${Env:ProgramFiles}\Amazon\AmazonCloudWatchAgent\config.json

{Env:ProgramFiles} は、CloudWatch エージェント が含まれている Amazon フォルダの場所 (通常は C:\Program Files) を表します。

このファイルの JSON のバックアップを作成し、インスタンス自体とは異なる場所に保持することをお勧めします。

パラメータの作成方法については、「Systems Manager パラメータの作成」を参照してください。

CloudWatch エージェント の詳細については、Amazon CloudWatch ユーザーガイド の「CloudWatch エージェントを使用して Amazon Elastic Compute Cloud インスタンスとオンプレミスサーバーからメトリクスを収集する」を参照してください。

SSM エージェント でのログ収集へのロールバック

ログ収集に再び SSM エージェント を使用する場合は、以下の手順に従います。

ステップ 1: SSM エージェント から設定データを取得するには

  1. ログ収集に再び SSM エージェント を使用するインスタンスで、SSM エージェント 設定ファイルの内容を見つけます。通常、この JSON ファイルは次の場所にあります。

    ${Env:ProgramFiles}\\Amazon\\SSM\\Plugins\\awsCloudWatch\\AWS.EC2.Windows.CloudWatch.json

    {Env:ProgramFiles} は、Amazon フォルダがある場所 (通常は C:\Program Files) を表します。

  2. このデータをテキストファイルにコピーし、後のステップで使用します。

    JSON のバックアップは、インスタンス自体とは異なる場所に保存することをお勧めします。

ステップ 2: CloudWatch エージェント をアンインストールするには (コンソール)

  1. https://console.aws.amazon.com/systems-manager/ で AWS Systems Manager コンソールを開きます。

  2. ナビゲーションペインで、[Run Command] を選択し、次に [Run command (コマンドの実行)] を選択します。

  3. [Command document (コマンドのドキュメント)] リストで、AWS-ConfigureAWSPackage を選択します。

  4. [Targets] セクションでオプションを選択し、更新するインスタンスを選択します。

  5. [アクション] リストで、Uninstall を選択します。

  6. [名前] に AmazonCloudWatchAgent と入力します。

  7. [Run (実行)] を選択します。

ステップ 3: SSM エージェント のログ収集を再度有効にするには (コンソール)

  1. https://console.aws.amazon.com/systems-manager/ で AWS Systems Manager コンソールを開きます。

  2. ナビゲーションペインで、[Run Command] を選択し、次に [Run command (コマンドの実行)] を選択します。

  3. [Command document (コマンドのドキュメント)] リストで、AWS-ConfigureCloudWatch を選択します。

  4. [Targets] セクションでオプションを選択し、更新するインスタンスを選択します。

  5. [Status (ステータス)] リストで、Enabled を選択します。

  6. [Properties (プロパティ)] ボックスに、テキストファイルとして前に保存した設定データの内容を貼り付けます。

  7. [Run (実行)] を選択します。