はじめに
以前ActiveGateを利用したDynatraceによるAWSの監視という記事を投稿しましたが、公式ドキュメントの内容が更新されより簡単にAmazon CloudWatchとDynatraceを連携させることができるようになりました。
本記事では、2024年現在の最新手順について改めて紹介していきます。
事前準備
本記事ではActiveGateを利用して、AWSを監視する方法について紹介していきます。
ActiveGateの導入方法については以下の記事で紹介していますので、ご参考ください!
ActiveGateを利用してAWSを監視する場合、ActiveGateにIAM Roleを割り当てる必要があるためActiveGate用にEC2インスタンスを立てる必要があります。
設定の流れ
- ActiveGateの構築
- IAMロールの作成
- ActiveGate用ロールの作成
- EC2インスタンスにロールを割り当て
- 監視用ロールの作成
- AWSアカウントとDynatraceの接続
オプションで以下を設定していきます。
- AWSのリソースタギング
- サポートサービスの追加
- アラートのためのメトリックイベントの設定
詳細な設定はDynatraceのマニュアルサイトをご参照ください。
ActiveGateの構築
別記事に掲載していますので、そちらを参考にEC2インスタンス上にActiveGateを構築します。
ActiveGateを構築するAWSのアカウントと監視対象とするアカウントは異なっていても問題ありません。また、単一のActiveGateから複数のAWSアカウントを対象とすることも可能です。
ActiveGateから各種サービスのAPI エンドポイントへアクセスできる必要があります。そのためインターネットゲートウェイやNAT ゲートウェイを介してパブリックエンドポイントへアクセスできるVPC内に構築することを推奨しております。
IAMロールの作成
一般的なセットアップ手順では2つのCloudFormationテンプレートを使用して、2つのスタックを作成する必要があります。それぞれ以下のIAMロールとポリシーが作成されます。
- ActiveGate用ロールとポリシー
- 監視用ロールとポリシー
ActiveGate用ロールの作成
ActiveGateをインストールしたEC2インスタンスに割り当てるIAMロールの作成を行います。
- role_based_access_AG_account_template.ymlをダウンロードします
- AWSのコンソール画面からCloudFormationのスタック画面に行き、
スタックの作成 > 新しいリソースを使用 (標準)
を選びます
-
スタックの作成ページでは
既存のテンプレートを選択
を選び、テンプレートファイルのアップロード
から先ほどダウンロードしたrole_based_access_AG_account_template.yml
ファイルをアップロードし、次へ
ボタンをクリックします
-
スタックの詳細を指定ページでは
スタック名
とパラメータを入力します。監視対象なるアカウントID(MonitoredAccountID
)は入力が必須です。入力したら次へ
ボタンをクリックします
-
スタックオプションの設定ページでは特に変更がなければそのまま
次へ
ボタンをクリックします
-
確認して作成ページでは設定を確認し、問題がなければ
AWS CloudFormation によってIAM リソースがカスタム名で作成される場合があることを承認します。
にチェックを入れ、送信
ボタンをクリックします
CloudFormationのスタックがCREATE_COMPLETE
になれば本手順は終了です。
EC2インスタンスにロールを割り当て
ロールの作成が完了したらActiveGateをインストールしたEC2インスタンスにIAM ロールに割り当てます。
- コンソール画面からEC2のページにアクセスし、ActiveGateをインストールしたインスタンスのIAM ロールを変更します
-
IAM ロールを変更ページで先ほど作成したIAM ロール (
Dynatrace_ActiveGate_role
) を選び、IAM ロールの更新
をクリックします
監視用ロールの作成
監視対象となるAWS アカウント上で監視用ロールの作成を行います。
- Dynatraceの
設定
ページからCloud and virtualization > AWS
を開き、Connect new instance
ボタンをクリックします
-
Tokenの右にある
Copy
ボタンをクリックします
- role_based_access_monitored_account_template.ymlをダウンロードします
- AWSのコンソール画面からCloudFormationのスタック画面に行き、
スタックの作成 > 新しいリソースを使用 (標準)
を選びます
-
スタックの作成ページでは
既存のテンプレートを選択
を選び、テンプレートファイルのアップロード
から先ほどダウンロードしたrole_based_access_monitored_account_template.yml
ファイルをアップロードし、次へ
ボタンをクリックします
-
スタックの詳細を指定ページでは、
スタック名
を入力し、ActiveGateAccountID
にActiveGateが構築されているアカウントIDを入力します。ExternalID
は先ほどDynatraceの画面でコピーしたTokenの値を貼り付けます。RoleName
はActiveGate用ロールの作成で指定したMonitoringRoleNameと同じもの (デフォルトDynatrace_monitoring_role
)を入力し、次へ
ボタンをクリックします
-
スタックオプションの設定ページでは特に変更がなければそのまま
次へ
ボタンをクリックします
-
確認して作成ページでは設定を確認し、問題がなければ
AWS CloudFormation によってIAM リソースがカスタム名で作成される場合があることを承認します。
にチェックを入れ、送信
ボタンをクリックします
CloudFormationのスタックがCREATE_COMPLETE
になれば本手順は終了です。
AWSアカウントとDynatraceの接続
ロールの作成が完了したら、Dynatraceの画面に戻り、残りの設定を実施していきます。
-
Connection name
には対象となるAWSアカウントのサービス名や環境などを入力します(例:Payment - Prod
) -
IAM role that Dynatrace should use to get monitoring data
は監視用ロールの作成で作成したロール名を入力します(デフォルト:Dynatrace_monitoring_role
)
-
Your Amazon account ID
は監視対象となるAWS のアカウントIDを入力します - すべて入力し終えたら、
接続
ボタンをクリックします
以上で、AWSの主要な機能に関する監視が開始されます。
数分立ってからAWSのアイコンもしくはCloudsアイコンをクリックすることで情報を確認することができます。
オプション設定
リソースタギング
以前の記事でも記載したように、AWSのタグを利用することで、監視する対象を制限でき、AWSに対するAPIコール数を制限することが可能です。
AWSコンソールから対象となるリソースに対して、タグを指定します。ここではキーにmonitor_dynatrace
、値にtrue
を設定しています。
設定 > Cloud and virtuallzation > AWS
と進んで、先ほど作成した設定の右側にあるペンシルアイコンをクリックします。
Resource to be monitored
欄をMonitor resources selected by tags
に変更し、主要
と値
にAWSの監視対象と同一のものを入力し、保存
ボタンをクリックします。
ここで設定したキーと値が一致したリソースのみを監視するようになります。
サポートサービスの追加
ActiveGateを用いたAWSの監視のメリットはEC2やEBS、ELB、RDSなどの主要なサービス以外の様々なAWSサービスのメトリックを取得可能な点です。DynatraceがサポートしているAWSサービスについては以下から確認ができます。
AWS supporting service metrics
Dynatraceでは選択したサービスに対してAWS CloudWatchのメトリクスを選択して取得することができるため効率よくデータを取得できコスト削減につなげることができます。
リソースタギングと同様に設定したAWSの画面を開き、サポートサービスからAdd service
ボタンもしくはManage services
ボタン(一度、serviceを追加したらManage services
に変わります)をクリックします。
Select service to be monitored...
フィールドから監視したいサービスを選択し、Add service
ボタンをクリックします。
Add service
ボタンをクリックし、監視したいサービスを全て登録したら変更の保存
ボタンをクリックします。
インフラストラクチャ > AWS
を開き、作成したAWS名をクリックすることでAWSの監視画面を開きます。サポートサービス
をクリックすることで先ほど設定したサービスを監視していることが確認できます。
これらのサービスをクリックすることで、詳細を確認することが可能です。
取得するメトリックの編集
再度、設定 > Cloud and virtuallzation > AWS
と進み、AWSの設定画面を開きます。サポートサービスの下のManage services
をクリックします。
監視しているサービスの一覧が表示されるので、メトリックを編集したいAWSサービスの名前をクリックします。
メトリックを追加する場合は、メトリックの追加
ボタンを削除する場合は、該当メトリックの×アイコンをディメンションなどの変更を行う場合は、下矢印アイコンクリックします。
追加したいメトリックを選び、Choose dimension(s)
からディメンションを選択し、メトリックの追加
ボタンをクリックします。
アラートのためのメトリックイベントの設定
サポートサービスで追加取得したメトリックについても、アラートの設定をすることが可能です。Dynatraceではあらかじめ推奨のアラートルールが定義されておりそれを有効にするだけで、細かい閾値の設定などは必要ありません(もちろん閾値を変更することも可能です)。
設定 > Cloud and virtuallzation > AWS
と進み、AWSの設定画面を開き、Manage alerting rules
ボタンをクリックします。
監視しているサポートサービスの内容に応じた推奨のアラートルールが表示されます。全てのルールを作成する場合はCreate all recommended alerting rules
ボタンをクリックします。
特に保存ボタンなどはなく有効になります。個別に設定を変更したい場合はアラートルール名をクリックすることで閾値などを変更可能です。
まとめ
最新の手順では、CloudFormationを使うことでより簡単にAWSの監視を行うことができるようになりました。アラートの設定もデフォルトで用意されているので、監視設計やアラートの設定に割く時間を減らすことができます。
また、AWSの監視についてはEC2インスタンスにOneAgentをインストールすることで、自動でAWSのタグをホスト情報に紐付けてくれたりするので、AWS上でアプリケーションを展開しているのであればぜひ導入を検討してみてください。