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

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

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

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

注記

AWS Systems Manager は SSM Agent から CloudWatch エージェントへの移行をサポートし、64 ビットバージョンの Windows でのみログとメトリクスを収集します。他のオペレーティングシステムで CloudWatch エージェントをセットアップする方法と、CloudWatch エージェントの使用方法の詳細については、Amazon CloudWatch ユーザーガイドの「CloudWatch エージェントを使用して Amazon Elastic Compute Cloud のインスタンスとオンプレミスサーバーからメトリクスを収集する」を参照してください。

CloudWatch エージェントは、サポートされている他のオペレーティングシステムでも使用できますが、Systems Manager を使用してツールの移行を実行することはできません。

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

重要

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

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

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

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

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

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

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

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

Session Manager のアクティビティのモニタリングについては、セッションアクティビティの監査 および セッションアクティビティのログ記録 を参照してください。

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

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

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

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

注記

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

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

重要

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

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

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

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

開始する前に

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

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

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

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

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

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

注記

AWS Systems Manager は SSM Agent から CloudWatch エージェントへの移行をサポートし、64 ビットバージョンの Windows でのみログとメトリクスを収集します。他のオペレーティングシステムで CloudWatch エージェントをセットアップする方法と、CloudWatch エージェントの使用方法の詳細については、Amazon CloudWatch ユーザーガイドの「CloudWatch エージェントを使用して Amazon Elastic Computer Cloud のインスタンスとオンプレミスサーバーからメトリクスを収集する」を参照してください。

CloudWatch エージェントは、サポートされている他のオペレーティングシステムでも使用できますが、Systems Manager を使用してツールの移行を実行することはできません。

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

注記

{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. ローカルホスト名の値を保持するには、{local_hostname} ではなく {hostname} を指定します。

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

  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/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 などのドメインにマップされます。ローカルホスト名の値を保持するには、{local_hostname} ではなく {hostname} を指定します。

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

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

  2. ナビゲーションペインで、[Run Command] を選択し、[Run command] を選択します。

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

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

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

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

  7. [Version(バージョン)] に、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} は、ACloudWatch エージェントが含まれている Amazon ディレクトリの場所 (通常は C:\Program Files) を表します。

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

  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/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} は、ACloudWatch エージェントが含まれている Amazon ディレクトリの場所 (通常は C:\Program Files) を表します。

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

4:SSM Agent でログ収集を無効にするには (コンソール)

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

  2. ナビゲーションペインで、[Run Command] を選択し、[Run command] を選択します。

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

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

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

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

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

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

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

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

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

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

{Env:ProgramFiles} は、ACloudWatch エージェントが含まれている Amazon ディレクトリの場所 (通常は C:\Program Files) を表します。

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

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

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

SSM Agent でのログ収集へのロールバック

ログ収集に再び SSM Agent を使用する場合は、以下の手順に従います。

ステップ 1: SSM Agent から設定データを取得する

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

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

    {Env:ProgramFiles} は、Amazon ディレクトリがある場所 (通常は C:\Program Files) を表します。

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

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

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

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

  2. ナビゲーションペインで、[Run Command] を選択し、[Run command] を選択します。

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

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

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

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

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

3:SSM Agent でログ収集を有効に戻すには (コンソール)

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

  2. ナビゲーションペインで、[Run Command] を選択し、[Run command] を選択します。

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

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

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

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

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