AWS CloudWatch代理程序安装在本地时, 缓冲指标/日志数据以在连接恢复之后上传. 可以通过编辑代理程序配置文件来配置缓冲设置。下面是一个示例配置文件:
{
"metrics": {
"metrics_collected": {
"cpu": {
"measurements": [
"cpu_usage_idle",
"cpu_usage_iowait"
],
"metrics_collection_interval": 300,
"totalcpu": true
}
},
"metric_dimensions": [
[
"InstanceId",
"${aws:InstanceId}"
]
],
"append_dimensions": {
"AutoScalingGroupName": "${aws:AutoScalingGroupName}"
}
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/nginx/access.log",
"log_group_name": "example-log-group",
"log_stream_name": "{instance_id}_access.log",
"datetime_format": "%d/%b/%Y:%H:%M:%S %z"
},
{
"file_path": "/var/log/nginx/error.log",
"log_group_name": "example-log-group",
"log_stream_name": "{instance_id}_error.log",
"datetime_format": "%Y-%m-%d %H:%M:%S"
}
]
}
},
"log_stream_name": "{instance_id}",
"force_flush_interval": 5
},
"state_file_location": "/var/awslogs/state/agent-state"
}
在配置文件中,标志“force_flush_interval”设置用于定义缓冲池何时将数据推入CloudWatch。 在此示例中,它设置为5秒。 这意味着CloudWatch代理程序将在5秒内缓冲5秒内收集到的所有数据,并尝试将其上传到CloudWatch。 如果连接恢复,缓冲池中的数据将被上传。
为了确保最佳结果,请确保在连接故障时,端口8080和8443都是开放的,并使用适当的安全组策略和网络 ACL。