如何在 windows 中使用 Cloud Watch 监控 AWS EC2 上的空闲磁盘 space
How to monitor free disk space at AWS EC2 with Cloud Watch in windows
我想在我的磁盘还剩 10% 时发出警报 space。
我阅读了一些关于如何使用 Cloud Watch 监控空闲磁盘 space 的文章,但我认为它似乎仅适用于 linux。
您是否有监控 windows 的空闲磁盘 space 的解决方案?
提前致谢。
- 下载最新的 EC2Config 并将其安装到您的 windows 实例 (https://aws.amazon.com/developertools/5562082477397515)
- 在此处编辑设置文件 C:\Program Files\Amazon\Ec2ConfigService\Settings\AWS.EC2.Windows.CloudWatch.json
在适当的地方插入一些计数器
{
"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 policy权限的用户的key和secret。
- 重新启动 EC2Config 服务。在日志中关注进度:C:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2ConfigLog.txt
- 在 cloudwatch 中为您的新 FreeDiskPct 计数器创建一个警报。
这是如何配置 Windows 2016 EC2 实例以报告可用磁盘 space(或您服务器上的任何其他性能计数器)
下载示例 AWS.EC2.Windows.CloudWatch.json
文件。这是我找到一个的地方。
https://s3.amazonaws.com/ec2-downloads-windows/CloudWatchConfig/AWS.EC2.Windows.CloudWatch.json
将示例 AWS.EC2.Windows.CloudWatch.json 文件复制到您的 Windows Server 2016 EC2 实例上
C:\Program Files\Amazon\SSM\Plugins\awsCloudWatch\
编辑 AWS.EC2.Windows.CloudWatch.json 并设置 IsEnabled 为真
根据需要添加其他指标。配置中有一个内存使用示例。 Copy/paste 并像这样更改指标名称:
{
"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
在 Windows EC2 实例中(在 Server 2019 上测试)
根据您的实例类型下载并安装 CloudWatch Agent。
AWS CloudWatch Agent Installation
之后您会注意到一个名为 Amazon CloudWatch Agent 的新服务:在您配置它之前它不会启动。
配置 运行 向导位于 C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-config-wizard.exe
回答所有问题(您可以跳过日志分析并选择免费存储百分比的基本指标),最终将在 C:\Program [=46] 中创建一个名为 config.json 的文件=]
将此文件移动到 C:\ProgramData\Amazon\AmazonCloudWatchAgent,将其重命名为 amazon-cloudwatch-agent.json 并启动服务 Cloudwatch 代理。
服务应该启动并收集指标,检查日志以查看是否有任何错误
如果在位于 C:\ProgramData\Amazon\AmazonCloudWatchAgent\Logs 的日志中,您会看到这个...
2020/05/27 16:11:27 I! Config has been translated into TOML
C:\ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.toml
2020-05-27T14:11:31Z I! cloudwatch: get unique roll up list []
2020-05-27T14:11:31Z I! Starting AmazonCloudWatchAgent
2020-05-27T14:11:31Z I! Tags enabled: host=[your host]
2020-05-27T14:11:31Z I! Agent Config: Interval:1m0s, Quiet:false,
Hostname:[your host], Flush Interval:1s 2020-05-27T14:11:31Z I!
cloudwatch: publish with ForceFlushInterval: 1m0s, Publish Jitter: 23s
2020-05-27T14:11:31Z I! Started the statsd service on :8125
2020-05-27T14:11:31Z I! Statsd listener listening on: [::]:8125
...一切顺利,只要您已将 IAM 角色附加到您的实例以授予其向 cloudwatch 报告的权限。
然后您可以在 Cloudwatch 的 CWAgent 参数部分找到所有新定义的指标,以便您可以创建警报
我认为基本问题是在 CloudWatch 中为 Windows 实例设置磁盘利用率警报。我希望您知道要在 CloudWatch 中获取磁盘指标,您需要安装 CloudWatch 代理,这涉及上面人们已经提到的多个步骤。我们从 AWS CloudWatch 代理获取 Windows 实例的免费 space 百分比。因此,要为高磁盘利用率设置警报,我们需要 select 警报条件低于或等于 10% 或根据您的要求。我希望这能回答你的问题。alarm condition for windows disk
我想在我的磁盘还剩 10% 时发出警报 space。
我阅读了一些关于如何使用 Cloud Watch 监控空闲磁盘 space 的文章,但我认为它似乎仅适用于 linux。
您是否有监控 windows 的空闲磁盘 space 的解决方案?
提前致谢。
- 下载最新的 EC2Config 并将其安装到您的 windows 实例 (https://aws.amazon.com/developertools/5562082477397515)
- 在此处编辑设置文件 C:\Program Files\Amazon\Ec2ConfigService\Settings\AWS.EC2.Windows.CloudWatch.json
在适当的地方插入一些计数器
{
"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 policy权限的用户的key和secret。
- 重新启动 EC2Config 服务。在日志中关注进度:C:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2ConfigLog.txt
- 在 cloudwatch 中为您的新 FreeDiskPct 计数器创建一个警报。
这是如何配置 Windows 2016 EC2 实例以报告可用磁盘 space(或您服务器上的任何其他性能计数器)
下载示例
AWS.EC2.Windows.CloudWatch.json
文件。这是我找到一个的地方。 https://s3.amazonaws.com/ec2-downloads-windows/CloudWatchConfig/AWS.EC2.Windows.CloudWatch.json将示例 AWS.EC2.Windows.CloudWatch.json 文件复制到您的 Windows Server 2016 EC2 实例上
C:\Program Files\Amazon\SSM\Plugins\awsCloudWatch\
编辑 AWS.EC2.Windows.CloudWatch.json 并设置 IsEnabled 为真
根据需要添加其他指标。配置中有一个内存使用示例。 Copy/paste 并像这样更改指标名称:
{
"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
在 Windows EC2 实例中(在 Server 2019 上测试) 根据您的实例类型下载并安装 CloudWatch Agent。
AWS CloudWatch Agent Installation
之后您会注意到一个名为 Amazon CloudWatch Agent 的新服务:在您配置它之前它不会启动。
配置 运行 向导位于 C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-config-wizard.exe
回答所有问题(您可以跳过日志分析并选择免费存储百分比的基本指标),最终将在 C:\Program [=46] 中创建一个名为 config.json 的文件=]
将此文件移动到 C:\ProgramData\Amazon\AmazonCloudWatchAgent,将其重命名为 amazon-cloudwatch-agent.json 并启动服务 Cloudwatch 代理。
服务应该启动并收集指标,检查日志以查看是否有任何错误
如果在位于 C:\ProgramData\Amazon\AmazonCloudWatchAgent\Logs 的日志中,您会看到这个...
2020/05/27 16:11:27 I! Config has been translated into TOML C:\ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.toml 2020-05-27T14:11:31Z I! cloudwatch: get unique roll up list [] 2020-05-27T14:11:31Z I! Starting AmazonCloudWatchAgent 2020-05-27T14:11:31Z I! Tags enabled: host=[your host] 2020-05-27T14:11:31Z I! Agent Config: Interval:1m0s, Quiet:false, Hostname:[your host], Flush Interval:1s 2020-05-27T14:11:31Z I! cloudwatch: publish with ForceFlushInterval: 1m0s, Publish Jitter: 23s 2020-05-27T14:11:31Z I! Started the statsd service on :8125 2020-05-27T14:11:31Z I! Statsd listener listening on: [::]:8125
...一切顺利,只要您已将 IAM 角色附加到您的实例以授予其向 cloudwatch 报告的权限。
然后您可以在 Cloudwatch 的 CWAgent 参数部分找到所有新定义的指标,以便您可以创建警报
我认为基本问题是在 CloudWatch 中为 Windows 实例设置磁盘利用率警报。我希望您知道要在 CloudWatch 中获取磁盘指标,您需要安装 CloudWatch 代理,这涉及上面人们已经提到的多个步骤。我们从 AWS CloudWatch 代理获取 Windows 实例的免费 space 百分比。因此,要为高磁盘利用率设置警报,我们需要 select 警报条件低于或等于 10% 或根据您的要求。我希望这能回答你的问题。alarm condition for windows disk