はじめに
Dynatrace で AWS 環境を監視する方法として、従来の CloudWatch 連携に加えて、現在は New Cloud Platform Monitoring による AWS connection の作成フローが用意されています。
今回は、Dynatrace と AWS のアカウントがすでにある状態から、Dynatrace の画面操作と AWS CloudFormation を使って AWS アカウントを接続し、Clouds / Explorer / Dashboard / Smartscape でどこまで可視化されるかを確認しました。
今回のゴールは次の4点です。
- Dynatrace に AWS connection を作成する
- CloudFormation で AWS 側の連携リソースを作成する
- Dynatrace 側で connection が
Healthyになることを確認する - AWS リソース、EC2 メトリクス、Smartscape の見え方を確認する
1. Dynatrace の AWS 連携画面を開く
Dynatrace にログインし、以下の画面へ移動します。
Settings
> Collect and capture
> Cloud and virtualization
> AWS
初期状態では、AWS connection がまだ作成されていないため、No AWS connection created yet と表示されます。
ここで New connection をクリックします。
2. Connection model を入力する
最初に、接続名、AWS Account ID、Deployment region を入力します。
今回の設定は以下です。
| 項目 | 値 |
|---|---|
| Connection name | aws-sandbox |
| AWS Account ID | ************ |
| Deployment region | Asia Pacific (Tokyo) |
ここで指定する Deployment region は、Dynatrace 連携用の CloudFormation スタックを作成する AWS リージョンです。今回の場合は東京リージョンを選択しました。
3. Observability options で Recommended を選択する
次に、Observability options を選択します。
Dynatrace の画面では、以下の2つが選択できます。
| 選択肢 | 概要 |
|---|---|
| Recommended | Dynatrace のデフォルト設定で AWS 環境を監視する |
| Advanced | 独自のカスタム設定で AWS 環境を監視する |
今回は初回検証のため、Recommended を選択しました。
Recommended では、画面上では以下が含まれることが示されています。
- Cloud inventory and topology
- Common AWS services and recommended CloudWatch service metrics
- CloudWatch logs
- Ready-made health alerts and warning signals
Advanced では、これらに加えて AWS tag-based filters や AWS tags enrichment などの設定も選択肢に含まれます。
今回はまず標準構成で接続できることを確認したかったため、Recommended のまま進めます。
また、Monitored regions では Asia Pacific (Tokyo) を指定しました。先ほどのDeployment region とは異なり、こちらは監視対象とするリージョンを指定できる箇所です。
4. Settings token と Ingest token を生成する
次に、Dynatrace 側で CloudFormation デプロイに必要な token を生成します。
ここでは以下の2つを生成します。
| Token | 用途 |
|---|---|
| Settings token | Dynatrace 側の設定操作に利用される token。この token は Secret Managerに保持され、 Lambda Function から参照される(多分) |
| Ingest token | AWS 側から Dynatrace へデータを送るために利用される token。この token も同様にSecret Manager に保持され、 Kinesis Firehose から参照される(多分) |
生成後、Download ボタンで CSV をダウンロードします。
この CSV には Dynatrace 側の API にアクセスする際に使用する token が含まれるため、取り扱いにはご注意ください。
5. AWS Console で CloudFormation を起動する
Token 生成後、Deploy CloudFormation in AWS Console が表示されます。
ここから AWS Console の CloudFormation 作成画面へ遷移します。
今回のフローでは、Dynatrace 側で作成した設定をもとに CloudFormation テンプレートが用意されます。AWS 側では、そのテンプレートを使って Dynatrace 連携に必要なリソースを作成します。
6. CloudFormation パラメータを確認する
CloudFormation のパラメータ画面では、Dynatrace tokens、Log ingest、Event ingest、Dynatrace environment、Encryption などを確認します。
デフォルトで、Log ingest は TRUE でした。これは恐らく Kinesis Firehose を介して、 CloudWatch Logs のデータを送る設定と思われます。
| 項目 | 値 |
|---|---|
| Enable logs ingest | TRUE |
| Regions to ingest logs from | ap-northeast-1 |
一方で、Event ingest はデフォルトで FALSE となっていました。こちらはデフォルト設定のままとしました。
| 項目 | 値 |
|---|---|
| Enable events ingest | FALSE |
| Amazon EventBridge bus name | default |
| EventBridge sources list | aws.health |
Event ingest を TRUE にすると、EventBridge 経由で AWS Health などのイベントを Dynatrace に取り込む構成になります。今回は初回接続の切り分けを優先し、イベント取り込みは有効化しませんでした。
Dynatrace environment の項目には、Dynatrace environment URL と monitoring configuration ID が入ります。
今回、Customer Managed Key は使用しないため、CMK は FALSE のままです。このCMK はSecret Manager に利用されるものと思われます。(多分)
| 項目 | 値 |
|---|---|
| Dynatrace environment url | https://********.apps.dynatrace.com |
| Dynatrace monitoring configuration Id | ********-****-****-****-************ |
| Use Customer Managed Key | FALSE |
7. CloudFormation の IAM capability を承認してスタックを作成する
CloudFormation の作成前に、IAM リソース作成と CAPABILITY_AUTO_EXPAND に関する確認チェックが表示されます。
今回のテンプレートでは IAM リソースが作成されるため、以下を承認してスタックを作成します。
- CloudFormation によって IAM リソースがカスタム名で作成される可能性があること
- CloudFormation によって
CAPABILITY_AUTO_EXPANDが必要になる可能性があること
内容を確認したうえで、スタックの作成 をクリックします。
8. CloudFormation スタックの作成完了を確認する
CloudFormation の作成が完了すると、親スタックと複数のネストされたスタックが CREATE_COMPLETE になります。
今回作成された主なスタックは以下です。
| スタック | 説明 |
|---|---|
aws-sandbox |
親スタック |
DynatraceApiClientStack |
Dynatrace configuration API client |
DynatraceIntegrationStack |
metrics and smartscape 用の monitoring integration |
MonitoringRoleStack |
AWS monitoring role |
DynatraceStackSetRoleStack |
nested stackset roles |
DynatraceLogIngest |
AWS logs ingest via Firehose |
各々のスタックのテンプレートを別途保存したので、後で眺めてみることとします。
9. Dynatrace 側で Finish する
CloudFormation の作成が完了したら、Dynatrace のウィザードに戻ります。
Next steps 画面では、Health alerts、Smartscape、Clouds、Dashboards への導線が表示されます。
画面上にも表示されている通り、データが Dynatrace 環境に表示されるまで数分かかる場合があります。
ここでは Finish をクリックして AWS connection 作成を完了します。
10. AWS connection が Healthy になることを確認する
Dynatrace のウィザードが完了すると、AWS 連携一覧に戻ります。作成した connection が表示されます。
今回の確認結果は以下です。
| 項目 | 値 |
|---|---|
| Name | aws-sandbox |
| Status | Healthy |
| Account type | Single |
| Deployed region | ap-northeast-1 |
Status が Healthy になっているため、Dynatrace 側では AWS connection が正常に認識されています。
11. Clouds で AWS services を確認する
それでは、AWS からデータが送られているかを確認しましょう。Dynatrace の Clouds 画面を確認します。
概要画面では、AWS services が 213 件表示されました。
この時点で、AWS アカウント内のクラウドリソースインベントリが Dynatrace に取り込まれていることが分かります。
12. Clouds Explorer で ECS クラスターを確認する
Clouds の Explorer タブでは、カテゴリ別に AWS リソースを確認できます。
今回は Container Platforms を開くと、ECS クラスター default が表示されました。
13. AWS 側の EC2 インスタンス
ついでに検証用の EC2 インスタンスを1台起動させてみました。Apacheを起動し、OneAgentをインストールしています。
14. Dynatrace Dashboard で EC2 メトリクスを確認する
Dynatrace の AWS EC2 ダッシュボードでは、EC2 インスタンス数やリージョン、インスタンスタイプ、CPU 使用率などが表示されました。
Clouds でリソースが見えるだけでなく、EC2 の CloudWatch メトリクスも Dynatrace 上で確認できました。
15. Smartscape でホストとプロセスの関係を確認する
今回の EC2 インスタンスには OneAgent も導入しているため、Smartscape ではホスト、ディスク、ネットワークインターフェース、プロセスの関係も表示されます。
ただ、Service Graph 上はAWS リソースへの関連は表示されていないです。OneAgent で拾ったデータと本件で連携されるデータとの関連が取れているかは、また確認しようと思います。タグをつける必要があるのでしょうか。
まとめ
Dynatrace の New Cloud Platform Monitoring を使うことで、AWS connection の作成から CloudFormation デプロイ、Clouds での確認までを UI ベースで進められました。かなり簡単でしたが、CloudFormation から多くのAWS リソースが作成されているようなので、よく確認が必要だと思いました。
あと、序盤のDynatrace 側で設定ウィザードに入る前に、AWS Organization 向けのウィザードもありそうでした。本格展開する際はこちらの設計が必要になりそうです。
参考
-
Dynatrace Docs: Set up Dynatrace on Amazon Web Services
https://docs.dynatrace.com/docs/ingest-from/amazon-web-services -
Dynatrace Docs: Create AWS connection via Settings
https://docs.dynatrace.com/docs/ingest-from/amazon-web-services/create-an-aws-connection/aws-connection-app-settings -
Dynatrace Docs: Subscribe AWS log groups to be ingested into Dynatrace
https://docs.dynatrace.com/docs/ingest-from/amazon-web-services/ingest-telemetry/cloudwatch-logs/aws-subscribe-log-groups-pp


















