0
0

CloudWatch カスタムディメンション追加

Last updated at Posted at 2024-04-29

はじめに

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 'スクリプトのパス'
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