# EC2 add log to cloudwatch
1.install cloudwatch agent
```powershell
msiexec /i https://s3.amazonaws.com/amazoncloudwatch-agent/windows/amd64/latest/amazon-cloudwatch-agent.msi
```
default path:C:\Program Files\Amazon\AmazonCloudWatchAgent

2. add IAM role to EC2 for cloudwatch agent
add role name:CloudWatchAgentServerRole with policy “CloudWatchAgentServerPolicy“

3. System Manager新增 agent config

```json
{
"logs":{
"logs_collected":{
"files":{
"collect_list":[
{
"file_path":"C:\\Logs\\**.log",
"log_group_name":"EC2/MyApplication",
"log_stream_name":"{instance_id}",
"timestamp_format":"%Y-%m-%d %H:%M:%S,%f",
"multi_line_start_pattern": "{timestamp_format}"
}
]
},
"windows_events":{
"collect_list":[
{
"event_format":"xml",
"event_levels":[
"WARNING",
"ERROR",
"CRITICAL"
],
"event_name":"System",
"log_group_name":"System",
"log_stream_name":"{instance_id}",
"retention_in_days":30
}
]
}
}
},
"metrics":{
"aggregation_dimensions":[
[
"InstanceId"
]
],
"append_dimensions":{
"AutoScalingGroupName":"${aws:AutoScalingGroupName}",
"ImageId":"${aws:ImageId}",
"InstanceId":"${aws:InstanceId}",
"InstanceType":"${aws:InstanceType}"
},
"metrics_collected":{
"LogicalDisk":{
"measurement":[
"% Free Space"
],
"metrics_collection_interval":60,
"resources":[
"*"
]
},
"Memory":{
"measurement":[
"% Committed Bytes In Use"
],
"metrics_collection_interval":60
},
"statsd":{
"metrics_aggregation_interval":60,
"metrics_collection_interval":10,
"service_address":":8125"
}
}
}
}
```
4. 啟動服務, 載入AWS Systems Manager名為 “AmazonCloudWatch-windows”的設定
```powershell
& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c ssm:AmazonCloudWatch-windows
```
5.編輯保留設定 資料要留多久
