はじめに
CloudWatchメトリクスのカスタムディメンション追加に関する備忘録
今回はEC2上でテストスクリプトを実行してメトリクスを受け取る。
1. EC2インスタンスにSSH接続
bash
ssh -i 'キーペアのパス' ec2-user@'EC2のパブリック IPv4 DNS'
2. CloudWatch エージェントのインストール
bash
sudo yum install amazon-cloudwatch-agent
3. CloudWatchエージェントの構成ファイル編集
以下のコマンドでvimを開く
bash
sudo vim /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
以下をコピペして保存
今回はインスタンスIDとインスタンスタイプを追加取得する
json
"metrics": {
"append_dimensions": {
"InstanceId": "${aws:InstanceId}",
"InstanceType": "${aws:InstanceType}"
}
}
以下のコマンドでエージェントを再起動する
bash
sudo systemctl restart amazon-cloudwatch-agent
4. CloudWatchダッシュボードの作成
1.マネジメントコンソールでCloudWacthを開く
2.カスタムダッシュボードからダッシュボードの作成
3.適当な名前を入力して作成を押す
5. SDKインストール
bash
pip install boto3
6. テストスクリプトをローカルに配置
python
import boto3
import psutil
cloudwatch = boto3.client('cloudwatch',region_name='ap-northeast-1') # リージョンを入力
def send_cpu_utilization(instance_id, cpu_utilization):
response = cloudwatch.put_metric_data(
Namespace='EC2/CPUUtilization',
MetricData=[
{
'MetricName': 'CPUUtilization',
'Dimensions': [
{
'Name': 'InstanceId',
'Value': instance_id
},
],
'Value': cpu_utilization,
'Unit': 'Percent'
},
]
)
print(response)
if __name__ == '__main__':
instance_id = 'your-instance-id' # インスタンスの ID を指定します
cpu_utilization = psutil.cpu_percent(interval=1) # CPU 使用率を取得します
send_cpu_utilization(instance_id, cpu_utilization)
7. クレデンシャルの設定
下記コマンドを実行してアクセスキーID、シークレットアクセスキーを入力
bash
aws configure
8. テストスクリプトの転送
bash
scp -i 'キーペアのパス' 'スクリプトのパス' ec2-user@'EC2のパブリック IPv4 DNS':~/
9. テストスクリプトの実行
以下が問題なく実行できればコンソールのダッシュボードからメトリクスを確認できる
bash
python 'スクリプトのパス'