如何使用Windows中的Cloud Watch监控AWS EC2上的可用磁盘空间

时间:2016-05-25 15:12:57

标签: amazon-web-services monitoring amazon-cloudwatch

我希望在磁盘空间剩余10%的情况下发出警报。

我阅读了一些关于如何使用Cloud Watch监控可用磁盘空间的文章,但我认为它似乎只适用于Linux。

您是否有任何监控Windows可用磁盘空间的解决方案?

提前致谢。

5 个答案:

答案 0 :(得分:7)

这是如何配置Windows 2016 EC2实例以报告可用磁盘空间(或服务器上的任何其他性能计数器)

  • 下载示例AWS.EC2.Windows.CloudWatch.json文件。这是我找到的地方。 https://s3.amazonaws.com/ec2-downloads-windows/CloudWatchConfig/AWS.EC2.Windows.CloudWatch.json

  • 在此处复制Windows Server 2016 EC2实例上的示例AWS.EC2.Windows.CloudWatch.json文件 C:\Program Files\Amazon\SSM\Plugins\awsCloudWatch\

  • 编辑AWS.EC2.Windows.CloudWatch.json并将IsEnabled设为true

  • 根据需要添加其他指标。配置中有一个样本用于内存使用。复制/粘贴此内容并更改度量标准名称,如下所示:

{
    "Id": "PerformanceCounterDisk",
    "FullName": "AWS.EC2.Windows.CloudWatch.PerformanceCounterComponent.PerformanceCounterInputComponent,AWS.EC2.Windows.CloudWatch",
    "Parameters": {
        "CategoryName": "LogicalDisk",
        "CounterName": "% Free Space",
        "InstanceName": "C:",
        "MetricName": "FreeDiskPercentage",
        "Unit": "Percent",
        "DimensionName": "InstanceId",
        "DimensionValue": "{instance_id}"
    }
}
  • 以管理员身份运行Powershell并运行 Restart-Service AmazonSSMAgent

  • 新的CloudWatch指标几乎立即出现在AWS CloudWatch中。

  • 根据需要配置AWS CloudWatch警报。

此外,我制作了一个简短视频,其中提供了有关在Windows Server 2016上进行此设置的一些提示。

https://www.youtube.com/watch?v=xKVrJJyG-4I

AWS的以下指南包含分步指南。 http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/send_logs_to_cwl_instances.html#send_logs_cwl_configfile

答案 1 :(得分:6)

  1. 下载并安装最新的EC2Config到您的Windows实例(https://aws.amazon.com/developertools/5562082477397515
  2. 在此处编辑设置文件C:\ Program Files \ Amazon \ Ec2ConfigService \ Settings \ AWS.EC2.Windows.CloudWatch.json
  3. 在适当的地方插入一些计数器

        {    
            "Id": "PerformanceCounterMemory",
            "FullName": "AWS.EC2.Windows.CloudWatch.PerformanceCounterComponent.PerformanceCounterInputComponent,AWS.EC2.Windows.CloudWatch",
            "Parameters": {
                "CategoryName": "Memory",
                "CounterName": "Available MBytes",
                "InstanceName": "",
                "MetricName": "Available-Memory",
                "Unit": "Gigabytes",
                "DimensionName": "InstanceId",
                "DimensionValue": "{instance_id}"
            }
        },
        {
            "Id": "PerformanceCounterDisk",
            "FullName": "AWS.EC2.Windows.CloudWatch.PerformanceCounterComponent.PerformanceCounterInputComponent,AWS.EC2.Windows.CloudWatch",
            "Parameters": {
                "CategoryName": "LogicalDisk",
                "CounterName": "% Free Space",
                "InstanceName": "C:",
                "MetricName": "FreeDiskPct",
                "Unit": "Percent",
                "DimensionName": "InstanceId",
                "DimensionValue": "{instance_id}"
            }
        }
    

    确保将它们包含在流程部分中:

    "Flows": {
                "Flows": 
                [
                    "(ApplicationEventLog,SystemEventLog),CloudWatchLogs",
                    "(PerformanceCounterMemory,PerformanceCounterDisk),CloudWatch"
                ]
            }
    

    请记住使用cloudwatch政策权限设置用户的密钥和密码。

    1. 重新启动EC2Config服务。跟踪日志中的进度:C:\ Program Files \ Amazon \ Ec2ConfigService \ Logs \ Ec2ConfigLog.txt
    2. 在新的FreeDiskPct计数器上在cloudwatch中创建警报。

答案 2 :(得分:1)

在Windows EC2实例中(在Server 2019上测试) 根据您的实例类型下载并安装CloudWatch Agent。

AWS CloudWatch Agent Installation

在那之后,您会注意到一项名为Amazon CloudWatch Agent的新服务:直到您对其进行配置后,它才能启动。

要配置运行位于 C:\ Program Files \ Amazon \ AmazonCloudWatchAgent \ amazon-cloudwatch-agent-config-wizard.exe的向导的向导

回答所有问题(您可以跳过日志分析和选择Basic指标获取免费存储百分比),最终将在 C:\ Program Files \ Amazon \ AmazonCloudWatchAgent 中创建一个名为config.json的文件。

将此文件移动到 C:\ ProgramData \ Amazon \ AmazonCloudWatchAgent ,将其重命名为 amazon-cloudwatch-agent.json 并启动服务Cloudwatch Agent。

该服务应启动并收集指标,检查日志以查看是否存在任何错误

如果在位于 C:\ ProgramData \ Amazon \ AmazonCloudWatchAgent \ Logs 的日志中,您将看到此...

2020/05/27 16:11:27我! Config已经翻译成TOML C:\ ProgramData \ Amazon \ AmazonCloudWatchAgent \ amazon-cloudwatch-agent.toml 2020-05-27T14:11:31Z我! cloudwatch:获得唯一的汇总列表[] 2020-05-27T14:11:31Z我!启动AmazonCloudWatchAgent 2020-05-27T14:11:31Z我!启用的标签:host = [您的主机] 2020-05-27T14:11:31Z我!代理配置:间隔:1m0s,安静:false, 主机名:[您的主机],刷新间隔:1s 2020-05-27T14:11:31Z我! cloudwatch:使用ForceFlush发布间隔:1m0s,发布抖动:23s 2020-05-27T14:11:31Z我!在:8125开始了statsd服务 2020-05-27T14:11:31Z我! Statsd监听器正在监听:[::]:8125

...一切顺利,只要您已将IAM角色附加到您的实例,以授予它向Cloudwatch报告的权限。

查看此:CloudWatch permissions

然后,您可以在Cloudwatch的CWAgent Parameters部分找到所有新定义的指标,以便创建警报

答案 3 :(得分:0)

我认为基本问题是在 CloudWatch for Windows 实例中设置磁盘利用率警报。我希望您知道要在 CloudWatch 中获取磁盘指标,您需要安装 CloudWatch 代理,这涉及上面人们已经提到的多个步骤。我们从 AWS CloudWatch 代理获取 Windows 实例的可用空间百分比。所以要设置高磁盘利用率警报,我们需要选择警报条件低于或等于 10% 或根据您的要求。我希望这能回答您的问题。alarm condition for windows disk

答案 4 :(得分:-1)

以下链接可能会有所帮助。它基于使用Python的简单API。因此,基本上您不需要为此安装任何其他软件。在这种情况下,拥有适当的防火墙可能就足够了。 https://www.shubhamdipt.com/blog/how-to-monitor-disk-space-and-performance-of-your-servers