Amazon web services 在AWS CloudWatch for 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

默认情况下,CloudWatch不监视内存使用情况。因此,我尝试使用AWS将其添加到我的Windows实例中

这就是我所做的:

  • 我创建了一个名为
    custom metrics user
    的用户。然后我存储了访问权限和密钥

  • 我创建了一个内联策略并将其附加到用户。看起来是这样的:

    {
    “版本”:“2012-10-17”,
    “声明”:[
    { 
    “效果”:“允许”,
    “操作”:[“cloudwatch:PutMetricData”、“cloudwatch:GetMetricStatistics”、“cloudwatch:ListMetrics”、“ec2:DescripteTags”],
    “资源”:“*”
    } 
    ] 
    }
    

  • 我启动了一个Windows实例[2012 R2 Base AMI]。通过RDP访问实例后,我发现
    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”
    ]
    }
    } 
    }
    

  • 我在EC2ConfigSettings下启用了CloudWatch日志集成

  • 我重新启动了EC2Config服务


  • 我没有收到任何错误,但在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: