Amazon web services 在AWS CloudWatch for Windows实例中监视内存使用情况
默认情况下,CloudWatch不监视内存使用情况。因此,我尝试使用AWS将其添加到我的Windows实例中 这就是我所做的:Amazon web services 在AWS CloudWatch for Windows实例中监视内存使用情况,amazon-web-services,amazon-ec2,monitoring,amazon-cloudwatch,Amazon Web Services,Amazon Ec2,Monitoring,Amazon Cloudwatch,默认情况下,CloudWatch不监视内存使用情况。因此,我尝试使用AWS将其添加到我的Windows实例中 这就是我所做的: 我创建了一个名为custom metrics user的用户。然后我存储了访问权限和密钥 我创建了一个内联策略并将其附加到用户。看起来是这样的: { “版本”:“2012-10-17”, “声明”:[ { “效果”:“允许”, “操作”:[“cloudwatch:PutMetricData”、“cloudwatch:GetMetricStatistics”、“clou
custom metrics user
的用户。然后我存储了访问权限和密钥{
“版本”:“2012-10-17”,
“声明”:[
{
“效果”:“允许”,
“操作”:[“cloudwatch:PutMetricData”、“cloudwatch:GetMetricStatistics”、“cloudwatch:ListMetrics”、“ec2:DescripteTags”],
“资源”:“*”
}
]
}
AWS.EC2.Windows.CloudWatch.json
文件已经存在.json
文件。更改后,它的外观如下所示:
{
“引擎配置”:{
“轮询间隔”:“00:00:15”,
“组成部分”:[
{
“Id”:“ApplicationEventLog”,
“全名”:“AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch”,
“参数”:{
“LogName”:“应用程序”,
“级别”:“1”
}
},
{
“Id”:“SystemEventLog”,
“全名”:“AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch”,
“参数”:{
“日志名”:“系统”,
“级别”:“7”
}
},
{
“Id”:“SecurityEventLog”,
“全名”:“AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch”,
“参数”:{
“日志名”:“安全性”,
“级别”:“7”
}
},
{
“Id”:“ETW”,
“全名”:“AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch”,
“参数”:{
“LogName”:“Microsoft Windows WinINet/Analytical”,
“级别”:“7”
}
},
{
“Id”:“IISLog”,
“全名”:“AWS.EC2.Windows.CloudWatch.IisLog.IisLogInputComponent,AWS.EC2.Windows.CloudWatch”,
“参数”:{
“LogDirectoryPath”:“C:\\inetpub\\logs\\LogFiles\\W3SVC1”
}
},
{
“Id”:“CustomLogs”,
“全名”:“AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch”,
“参数”:{
“LogDirectoryPath”:“C:\\CustomLogs\\”,
“时间戳格式”:“MM/dd/yyyy HH:MM:ss”,
“编码”:“UTF-8”,
“过滤器”:“,
“CultureName”:“en US”,
“TimeZoneKind”:“本地”
}
},
{
“Id”:“PerformanceCounter”,
“全名”:“AWS.EC2.Windows.CloudWatch.PerformanceCounterComponent.PerformanceCounterInputComponent,AWS.EC2.Windows.CloudWatch”,
“参数”:{
“CategoryName”:“内存”,
“计数器名称”:“可用MB”,
“InstanceName”:“,
“MetricName”:“内存”,
“单位”:“兆字节”,
“维度名称”:“实例ID”,
“DimensionValue”:“{instance_id}”
}
},
{
“Id”:“CloudWatchLogs”,
“全名”:“AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch”,
“参数”:{
“AccessKey”:“,
“秘密密钥”:“秘密密钥”,
“区域”:“us-east-1”,
“日志组”:“默认日志组”,
“日志流”:“{instance_id}”
}
},
{
“Id”:“CloudWatch”,
“全名”:“AWS.EC2.Windows.CloudWatch.CloudWatch.CloudWatchOutputComponent,AWS.EC2.Windows.CloudWatch”,
“参数”:
{
“AccessKey”:“AKIAIK2U6EU675354BQ”,
“保密密钥”:“nPyk9ntdwW0y5oaw8353fsdfTi0e5/imx5Q09vz”,
“区域”:“us-east-1”,
“命名空间”:“系统/窗口”
}
}
],
“流动”:{
“流动”:
[
“性能计数器,CloudWatch”
]
}
}
}
我没有收到任何错误,但在Cloud Watch控制台中没有显示内存度量。博客上说要等10-15分钟才能显示指标,但我已经等了一个小时了。出了什么问题?首先,您需要向实例添加IAM角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowAccessToSSM",
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData",
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:DescribeLogGroups",
"logs:DescribeLogStreams",
"logs:PutLogEvents"
],
"Resource": [
"*"
]
}
]
}
请注意,不能向现有实例添加角色。所以在发射前就要这样做。
然后,您需要配置可通过以下路径访问的EC2Config
文件(通常):
C:\Program Files\Amazon\Ec2ConfigService\Settings.AWS.EC2.Windows.CloudWatch.json
您应该将以下块添加到JSON
文件中:
...
{
"Id": "PerformanceCounter",
"FullName": "AWS.EC2.Windows.CloudWatch.PerformanceCounterComponent.PerformanceCounterInputComponent,AWS.EC2.Windows.CloudWatch",
"Parameters": {
"CategoryName": "Memory",
"CounterName": "Available MBytes",
"InstanceName": "",
"MetricName": "Memory",
"Unit": "Megabytes",
"DimensionName": "InstanceId",
"DimensionValue": "{instance_id}"
}
}
...
{
"Id": "CloudWatch",
"FullName": "AWS.EC2.Windows.CloudWatch.CloudWatch.CloudWatchOutputComponent,AWS.EC2.Windows.CloudWatch",
"Parameters":
{
"AccessKey": "",
"SecretKey": "",
"Region": "eu-west-1",
"NameSpace": "PerformanceMonitor"
}
}
更改配置文件后,不要忘记重新启动服务器上的EC2Config
服务。您应该能够在CloudWatch
控制台中几分钟后获取内存度量。
实例上的CloudWatch
监视级别也应设置为detailed: