0
0

More than 1 year has passed since last update.

【AWS】EC2のログをOpsworksを用いてCloudWatchへ転送する。

Last updated at Posted at 2021-11-04

はじめに

アプリケーションのログをCloudWatchへ転送することが出来ると、
Logs insightsで統計的な分析が出来たり、
CloudWatch Alermと連携させて特定のlogを検出すれば通知させたり
することが出来ます。

今回はOpsworksでEC2を管理している場合での、CloudWatchへのログの転送方法を紹介します。

転送方法

OpsworksではStackという概念があり、Stackの中にLayersと呼ばれる管理単位があり、この中でEC2インスタンスを管理します。
(Stack > Layers > EC2インスタンス という関係)

CloudWatchへの転送の設定はLayersの設定変更のページで行います。
※ インスタンス単位で設定するワケではないので、対象となるLayers内で管理されているEC2全てでCloudWatchへの転送設定が反映されます。

対象となるLayersを選択、CloudWatch Logs タブを開き、Editボタンを押します。
スクリーンショット 2021-10-19 15.31.05.png

CloudWatch Logs integrationOnにし、Stream command logsYesにすれば、
Stream custom logs に記述したパスのlogを転送させることが出来ます。

ただし、上の画像の注意文にあるように、今のままではIAMのポリシーが無いので、
CloudWatch Logsへの転送を可能にするには、Default IAM instance profileのIAMロールにAWSOpsWorksCloudWatchLogsポリシーをアタッチする必要があります。

IAMロールにポリシーのアタッチ

Default IAM instance profileはStackページのstack settingsで確認できます。

スクリーンショット 2021-11-04 19.16.47.png

Advanced options の項目にDefault IAM instance profile は載っています。
ここからIAMロールのページへ飛べます。

スクリーンショット 2021-10-19 15.39.41.png

該当のIAMロールのページへジャンプしたら、「ポリシーをアタッチします」ボタンをクリックします。
スクリーンショット 2021-10-19 15.46.39.png

AWSOpsWorksCloudWatchLogs で検索し、チェックボックスにチェックを入れたら「ポリシーのアタッチ」をクリックします。

スクリーンショット 2021-10-19 15.48.05.png

これでCloudWatch Logsに転送する許可設定が出来ました。
あとは、先ほどのEdit画面のStream Custom Logsの欄に転送したいlogのパスを記入します。
例) /var/www/rails_app/log/production.log 
「Save」ボタンを押して暫くすると設定が反映されます。

反映

「Save」して暫くすると、対象レイアーのインスタンス内で/var/awslogs が自動生成されます。
細かい設定は /var/awslogs/etc/awslogs.confで変更できますが、名前の変更くらいなので使うことは無いと思います。

暫くするとCloudWatchのロググループに反映されます。
ロググループの命名規則は
Stack名/Layers名/指定したパス名
となります。

これでCloudWatchへのログ転送完了となります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0