クイックスタート: 起動時に EC2 Linux インスタンスに CloudWatch Logs エージェントをインストールして設定する - Amazon CloudWatch Logs

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

クイックスタート: 起動時に EC2 Linux インスタンスに CloudWatch Logs エージェントをインストールして設定する

ヒント

このセクションで説明した古い CloudWatch Logs エージェントは、非推奨になる予定です。代わりに、ログとメトリクスの両方を収集できる新しい統合 CloudWatch エージェントを使用することを強くお勧めします。さらに、古い CloudWatch Logs エージェントには Python 3.3 以前が必要であり、これらのバージョンはデフォルトでは新しい EC2 インスタンスにインストールされません。統合 CloudWatch エージェントの詳細については、「 エージェントのインストール」を参照してください CloudWatch

このセクションの残りの部分では、古い CloudWatch Logs エージェントの使用について説明します。

起動時に EC2 Linux インスタンスに古い CloudWatch Logs エージェントをインストールする

起動時にインスタンスにパラメータ情報を渡す Amazon EC2 の機能である Amazon EC2 ユーザーデータを使用して、そのインスタンスに CloudWatch Logs エージェントをインストールして設定できます。 CloudWatch Logs エージェントのインストールおよび設定情報を Amazon EC2 に渡すには、Amazon S3 バケットなどのネットワークの場所にある設定ファイルを指定します。

複数のログソースから単一のログストリームにデータを送信する設定はサポートされていません。

前提条件

ロググループとログストリームをすべて記述したエージェントの設定ファイルを作成します。これは、モニタリングするログファイルとそのアップロード先のロググループおよびログストリームが記述されているテキストファイルです。エージェントはこの設定ファイルを使用して記述されたすべてのログファイルのモニタリングおよびアップロードを開始します。エージェント設定ファイルの設定の詳細については、「CloudWatch Logs エージェントのリファレンス」を参照してください。

以下は、Amazon Linux 2 のサンプルエージェント設定ファイルです。

[general] state_file = /var/lib/awslogs/state/agent-state [/var/log/messages] file = /var/log/messages log_group_name = /var/log/messages log_stream_name = {instance_id} datetime_format = %b %d %H:%M:%S

以下は、Ubuntu のサンプルエージェント設定ファイルです。

[general] state_file = /var/awslogs/state/agent-state [/var/log/syslog] file = /var/log/syslog log_group_name = /var/log/syslog log_stream_name = {instance_id} datetime_format = %b %d %H:%M:%S
IAM ロールを設定するには
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで、[Policies]、[Create Policy] の順に選択します。

  3. [Create Policy] ページの [Create Your Own Policy] で、[Select] を選択します。カスタムポリシー作成の詳細については、Linux インスタンス用の Amazon EC2 ユーザーガイドAmazon EC2 の IAM ポリシーを参照してください。

  4. [Review Policy] ページで、[Policy Name] にポリシーの名前を入力します。

  5. [Policy Document] に、次のポリシーをコピーして貼り付けます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::myawsbucket/*" ] } ] }
  6. [ポリシーの作成] を選択します。

  7. ナビゲーションペインで [Roles]、[Create New Role] の順に選択します。

  8. [Set Role Name] ページで、ロールの名前を入力し、[Next Step] を選択します。

  9. [Select Role Type] ページで、[Amazon EC2 ] の隣にある [Select] を選択します。

  10. [Attach Policy] ページのテーブルのヘッダーで、[Policy Type]、[Customer Managed] の順に選択します。

  11. 作成した IAM ポリシーを選択し、[Next Step (次のステップ)] を選択します。

  12. [ロールの作成] を選択します。

    ユーザーとポリシーの詳細については、IAM ユーザーガイドの 「IAM ユーザーとグループ」および「IAM ポリシーを管理する」を参照してください。

新しいインスタンスを起動して CloudWatch Logs を有効にするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. [Launch Instance] (インスタンスの起動) を選択します。

    詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「インスタンス起動ウィザードを使用したインスタンスの起動」を参照してください。

  3. [ステップ 1: Amazon Machine Image (AMI) を選択する] ページで、起動する Linux インスタンスタイプを選択し、[ステップ 2: インスタンスタイプを選択する] ページで [Next: Configure Instance Details] を選択します。

    cloud-init が Amazon Machine Image (AMI) に含まれていることを確認します。Amazon Linux AMIs、および Ubuntu および RHEL 用の AMIs にはすでに cloud-init が含まれていますが、 の CentOS およびその他の AMIs には含まれていない AWS Marketplace 場合があります。

  4. [ステップ 3: インスタンスの詳細を設定する] ページの [IAM role (IAM ロール)] で、作成した IAM ロールを選択します。

  5. [Advanced Details] の [User data] で、以下のスクリプトをボックス内に貼り付けます。その後、スクリプトを更新するには、[-c] オプションの値を、エージェント設定ファイルの位置に変更します。

    #!/bin/bash curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O chmod +x ./awslogs-agent-setup.py ./awslogs-agent-setup.py -n -r us-east-1 -c s3://DOC-EXAMPLE-BUCKET1/my-config-file
  6. そのほかインスタンスへの必要な変更を行い、起動設定を確認して [Launch] を選択します。

  7. エージェントがしばらく実行されると、 CloudWatch コンソールに新しく作成されたロググループとログストリームが表示されます。

    詳細については、「Logs に送信された CloudWatch ログデータを表示する」を参照してください。