翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
クイックスタート: AWS OpsWorks と Chef を使用して CloudWatch Logs エージェントをインストールする
CloudWatch Logs エージェントをインストールし、サードパーティーのシステム AWS OpsWorks およびクラウドインフラストラクチャ自動化ツールである Chef を使用してログストリームを作成できます。Chef は、コンピューターにソフトウェアをインストールして設定するために記述する「レシピ」と、レシピのコレクションである「クックブック」を使用して、設定とポリシーの配布タスクを実行します。詳細については、「Chef
以下の Chef のレシピの例は、各 EC2 インスタンスで 1 個のログファイルをモニタリングする方法を示しています。レシピでは、ロググループとしてスタック名を、ログストリーム名としてインスタンスのホスト名を使用します。複数のログファイルをモニタリングする場合は、複数のロググループとログストリームを作成するようにレシピを拡張する必要があります。
ステップ 1: カスタムレシピを作成する
recipes を保存するリポジトリを作成します。 は Git と Subversion AWS OpsWorks をサポートします。または、アーカイブを Amazon S3 に保存できます。クックブックリポジトリの構造は、AWS OpsWorks ユーザーガイドの「クックブックリポジトリ」で説明されています。以下の例では、クックブックの名前を logs
と仮定します。install.rb レシピは、CloudWatch Logs エージェントをインストールします。クックブックの例は (CloudWatchLogs-Cookbooks.zip
以下のコードを含む metadata.rb というファイルを作成します。
#metadata.rb name 'logs' version '0.0.1'
CloudWatch Logs 設定ファイルを作成するには、
#config.rb template "/tmp/cwlogs.cfg" do cookbook "logs" source "cwlogs.cfg.erb" owner "root" group "root" mode 0644 end
CloudWatch Logs エージェントをダウンロードしてインストールします。
# install.rb directory "/opt/aws/cloudwatch" do recursive true end remote_file "/opt/aws/cloudwatch/awslogs-agent-setup.py" do source "https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py" mode "0755" end execute "Install CloudWatch Logs agent" do command "/opt/aws/cloudwatch/awslogs-agent-setup.py -n -r
region
-c /tmp/cwlogs.cfg" not_if { system "pgrep -f aws-logs-agent-setup" } end
注記
上記の例では、us-east-1、us-west-1、us-west-2、ap-south-1、ap-northeast-2、ap-southeast-1、ap-southeast-2、ap-northeast-1、eu-central-1、eu-west-1、または sa-east-1 リージョン
のいずれかに置き換えます。
エージェントのインストールが失敗した場合は、python-dev
パッケージがインストールされていることを確認します。そうでない場合は、次のコマンドを使用して、エージェントのインストールを再試行します。
sudo apt-get -y install python-dev
このレシピでは cwlogs.cfg.erb テンプレートファイルを使用しています。このファイルを変更してどのようなファイルを記録するかなど様々な属性を指定できます。これらの属性の詳細については、「CloudWatch Logs エージェントのリファレンス」を参照してください。
[general] # Path to the AWSLogs agent's state file. Agent uses this file to maintain # client side state across its executions. state_file = /var/awslogs/state/agent-state ## Each log file is defined in its own section. The section name doesn't ## matter as long as its unique within this file. # #[kern.log] # ## Path of log file for the agent to monitor and upload. # #file = /var/log/kern.log # ## Name of the destination log group. # #log_group_name = kern.log # ## Name of the destination log stream. # #log_stream_name = {instance_id} # ## Format specifier for timestamp parsing. # #datetime_format = %b %d %H:%M:%S # # [<%= node[:opsworks][:stack][:name] %>] datetime_format = [%Y-%m-%d %H:%M:%S] log_group_name = <%= node[:opsworks][:stack][:name].gsub(' ','_') %> file = <%= node[:cwlogs][:logfile] %> log_stream_name = <%= node[:opsworks][:instance][:hostname] %>
テンプレートは、スタック設定およびデプロイメント JSON の対応する属性を参照してスタック名およびホスト名を取得します。記録するファイルを指定する属性は cwlogs クックブックの default.rb 属性ファイル (logs/attributes/default.rb) で定義されます。
default[:cwlogs][:logfile] = '/var/log/aws/opsworks/opsworks-agent.statistics.log'
ステップ 2: AWS OpsWorks スタックを作成する
AWS OpsWorks コンソールを https://console.aws.amazon.com/opsworks/
://https://www..com で開きます。 -
OpsWorks Dashboard で、スタックの追加を選択して AWS OpsWorks スタックを作成します。
-
[Add stack] 画面で [Chef 11 stack] を選択します。
-
[Stack name] に、名前を入力します。
-
[Use custom Chef Cookbooks] で、[Yes] を選択します。
-
[Repository type] で、使用するリポジトリのタイプを選択します。上記の例を使用する場合は、[Http Archive] を選択します。
-
[Repository URL] に、前のステップで作成したクックブックを保存したリポジトリを入力します。上記の例を使用する場合は、「
https://s3.amazonaws.com/aws-cloudwatch/downloads/CloudWatchLogs-Cookbooks.zip
」と入力します。 -
[Add Stack] を選択し、スタックを作成します。
ステップ 3: IAM ロールを拡張する
AWS OpsWorks インスタンスで CloudWatch Logs を使用するには、インスタンスで使用される IAM ロールを拡張する必要があります。
-
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、[Policies]、[Create Policy] の順に選択します。
-
[Create Policy] ページの [Create Your Own Policy] で、[Select] を選択します。カスタムポリシー作成の詳細については、「Amazon EC2 ユーザーガイド」の「Amazon EC2 のアイデンティティベースのポリシー」を参照してください。
-
[Review Policy] ページで、[Policy Name] にポリシーの名前を入力します。
-
[Policy Document] に、次のポリシーをコピーして貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
-
[ポリシーを作成] を選択します。
-
ナビゲーションペインでロールを選択し、コンテンツペインでロール名に AWS OpsWorks スタックで使用されるインスタンスロールの名前を選択します。スタックの設定でスタックが使用しているロールが見つかります(デフォルトは
aws-opsworks-ec2-role
です)。注記
チェックボックスではなく、ロールの名前を選択します。
-
[Permissions] タブを開き、[Managed Policies] で [Attach Policy] を選択します。
-
[Attach Policy] ページのテーブルヘッダー ([Filter] と [Search] の横) で、[Policy Type]、[Customer Managed Policies] を選択します。
-
[Customer Managed Policies (カスタマーマネージドポリシー)] で、上で作成した IAM ポリシーを選択し、[Attach Policy (ポリシーを添付する)] を選択します。
ユーザーとポリシーの詳細については、IAM ユーザーガイドの 「IAM ユーザーとグループ」および「IAM ポリシーを管理する」を参照してください。
ステップ 4: レイヤーを追加する
AWS OpsWorks コンソールを https://console.aws.amazon.com/opsworks/
://https://https://https://https://https -
ナビゲーションペインで [Layers] を選択します。
-
コンテンツペインでレイヤーを選択し、[Add layer] を選択します。
-
[OpsWorks] タブの [Layer type] で [Custom] を選択します。
-
[Name] および [Short name] フィールドにレイヤーの長い名前と短い名前を入力し、[Add layer] を選択します。
-
レシピタブのカスタム Chef レシピには、ライフサイクル AWS OpsWorks イベントに対応する設定、設定、デプロイ、デプロイ解除、シャットダウンの見出しがいくつかあります。 は、関連するレシピを実行するインスタンスのライフサイクルのこれらのキーポイントでこれらのイベントを AWS OpsWorks トリガーします。
注記
上記のヘッダーが非表示の場合、[Custom Chef Recipes] の [edit] を選択します。
-
[Setup] の隣に「logs::config, logs::install」と入力し、[+] を選択してリストに追加します。次に [Save] を選択します。
AWS OpsWorks は、インスタンスの起動直後に、このレイヤー内の新しいインスタンスごとにこのレシピを実行します。
ステップ 5: インスタンスを追加する
この Layer はインスタンスの設定方法のみを制御しています。次は、Layer にいくつかインスタンスを追加し、起動する必要があります。
AWS OpsWorks コンソールを https://console.aws.amazon.com/opsworks/
://www.com で開きます。 -
ナビゲーションペインで [Instances] を選択し、レイヤーの下にある [+ Instance] を選択します。
-
デフォルト設定を受け入れて [Add Instance] を選択し、レイヤー にインスタンスを追加します。
-
行の [Actions] 列で [start] をクリックしてインスタンスを起動します。
AWS OpsWorks は新しい EC2 インスタンスを起動し、CloudWatch Logs を設定します。準備ができると、インスタンスのステータスがオンラインに変更されます。
ステップ 6: ログを表示する
エージェントが実行されてしばらくしたら、CloudWatch コンソールに新しく作成されたロググループとログストリームを確認してください。
詳細については、「CloudWatch Logs に送信されたログデータを表示する」を参照してください。