はじめに
本記事は、以下で公開された設定手順に関する英語版の記事の翻訳を掲載しております。機械翻訳となります為、日本語として必ずしも正確な表現ではない可能性がありますが、予めご了承下さい。
また、記事の作成時期よりUIの表示内容等が変更されている可能性があります事も併せてご承知おき下さい。
https://support-turbonomic.force.com/TurbonomicCustomerCommunity/s/article/Setting-up-CloudWatch-Memory-Metrics-on-Linux-Instances-on-AWS
また、製品としての正式なマニュアルとしては、以下URLの内容が該当します。弊社サポートへのお問い合わせの際や、最新の情報としては、こちらのマニュアルの記述をご参照下さい。
https://www.ibm.com/docs/en/tarm/8.8.0?topic=configuration-enabling-collection-memory-statistics-aws
Turbonomicは、CloudWatchに報告されるMemoryUsedを利用しています。このドキュメントでは、AWS Systems Managerを利用して、Linux EC2のMemoryUsedの統計情報をTurbonomicに取り込むために、AWS CloudWatchエージェントを設定することについて説明します。
Windows版をお探しの場合は、こちらをご覧ください:Setting up CloudWatch Memory Metrics on Windows Instances on AWS
ハウツービデオ

前提条件
- EC2にAWS SSM Agentをインストールした状態
- LinuxイメージにはすでにSSM Agentがインストールされています。2017.09以降の日付のAmazon Linux AMIには、Linux SSM Agentがデフォルトでインストールされるようになりました。あなたは、この記事で説明されているように、他のバージョンのLinuxにSSM Agentを手動でインストールする必要があるだけでしょう 。
- IAMロールで次の権限を持つ:AmazonSSMFullAccess
注:IAMロールに必要な最小権限の権限は、AmazonEC2RoleforSSM(アクション"ssm"を許可するカスタムポリシー)です。arn:aws:ssm:*:*:parameter/*"リソースへのアクション "GetParameter"を許可するカスタムポリシー、JSONの例を参照)
IAMロールのアタッチ
System Managerで各Linux EC2インスタンスを設定するには、各EC2インスタンスに上記の権限を持つIAMロールをアタッチする必要がある。
- EC2インスタンスを選択し、Actions>Instance Settings>Attach/Replace IAM roleをクリックする。次に、必要な権限を持つIAMロールを選択し、適用をクリックする(以下の例を参照)。

これで、EC2インスタンスにアタッチされたロールが表示されるはずです(下のTurbo_CWを参照)。
なお、複数のインスタンスにIAMロールを追加するためにスクリプトによるアプローチが必要な場合は、Turbolonomicサポートにお問い合わせください。
LinuxインスタンスへのCloudWatch Agentのインストール
- 設定したいアカウントと地域の 'System Manager' サービスに移動します。
- ナビゲーションペインで、「コマンドの実行」を選択し、「コマンドの実行」

をクリックします。
- コマンド文書リストで、AWS-ConfigureAWSPackageを選択します。

- Targets領域で、CloudWatchエージェントをインストールするインスタンスまたは複数のインスタンスを選択します。特定のインスタンスが表示されない場合、Run Command用に設定されていない可能性があります。
- アクション」リストで、「インストール」を選択します。
- Name」フィールドに、「AmazonCloudWatchAgent」と入力します。
- 最新バージョンのエージェントをインストールするには、「Version」を「latest」に設定したままにしてください。
- 次の画面では、コマンドの送信が成功したことを示す確認メッセージが表示され、数秒後にステータスが「Success」になります。

エージェントコンフィギュレーションの作成
CW Agentは、どのメトリクスをCW Namespaceに送信するか、その他の必要なデータを定義するために設定されます。 以下のJSONは最小限の要件を表しており、変更することはできません。 デフォルトでは、この設定はVMが存在するリージョンにメトリクスを保存することになります。
これは次のステップで使用されます。
{
"agent": {
"metrics_collection_interval": 60,
"logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log"
},
"metrics": {
"metrics_collected": {
"mem": {
"measurement": [
{"name": "used", "rename": "MemoryUsed"},
{"name": "mem_available", "rename": "MemoryAvailable"}
]
}
},
"append_dimensions": {
"InstanceId": "${aws:InstanceId}"
}
}
}
また、CW Namespace (CWAgent は未定義の場合のデフォルト)、region (インスタンスが動作するリージョンにデータが配置されるデフォルトのリージョン) のオプションパラメータを設定できます。 注意 収集するメトリクスを追加しても Turbonomic には反映されません - 現時点では Used Memory のみ収集されます。詳しくは、AWSのドキュメントを参照してください。
パラメータストアの作成
複数のEC2インスタンスに展開できるように、上記の構成でパラメータストアを作成する必要があります。
- 設定したいアカウントと地域の 'System Manager' サービスに移動します。
- ナビゲーションペインで、Parameter Store を選択し、Create Parameterをクリックします。

- 上記のステップで作成したJSONエージェント設定をコピーして、Valueフィールドに貼り付けます(すべてのオプションはデフォルトのままにしておきます)

- Name]フィールドには、任意の名前を入力できますが、次のステップで同じ名前を使用する必要があります、例えば、CloudWatchLinuxを使用しました。
- パラメータの作成 ]をクリックすると、パラメータが作成されたというメッセージと、パラメータの一覧が表示されます。

CloudWatch設定ファイルのデプロイメント
- システムマネージャー」ナビゲーションペインで、「コマンドの実行」を選び、「コマンドの実行」をクリックする
- コマンド ドキュメント リストで、AmazonCloudWatch-ManageAgentを選択します。
- アクション]で[設定]を選択します。
- モードは ec2のまま
- オプションのコンフィグレーションソースを ssmに変更する
- Optional Configuration Location]に、Parameter Store(前のセクション)で作成したパラメータと同じ名前を入力します。この例では、CloudWatchLinuxというパラメータです。
- Optional RestartはYesに設定すること(これはインスタンスではなくCloudWatchエージェントを再起動します)

- ターゲット領域で、CloudWatch Configuration onをデプロイするインスタンスまたは複数のインスタンスを選択します。

- ここで「実行」をクリックすると、このように表示されます。

インストール完了
インスタンスがMemory Metricsを送信していることを確認するには、CloudWatchのページでMetricsをクリックし、CWAgent ネームスペースを探し(プロセスが正常に動作した場合のみ作成されます)、InstanceIdをクリックします > Linuxインスタンスごとに2つのMetricsがあるはずです、 'MemeoryUsed' をクリックしてデータが収集されていることを確認してください。

Turbonomicのユーザーインターフェースに表示されるまで、最大で30分程度かかる場合があります。
参考文献