2017-07-28 119 views
0

我按照本文中的步骤http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html#mon-scripts-systems监控我的服务器的内存使用情况并将数据提交给CloudWatch。无法使用Amazon CloudWatch监控脚本监控使用缓冲区和缓存的Amazon Linux内存

可以使用的其中一个度量标准是​​,它收集并发送以兆字节为单位的MemoryUsed指标。此选项报告用于缓​​存和缓冲区,以及应用程序和操作系统分配的内存。与其他内存度量标准相比,此内存度量标准非常重要,因为此度量标准还会收集缓存和缓冲区中使用的内存。其他内存指标只收集freeused内存以确定我的服务器是否内存不足。

不幸的是输出,当我试图运行脚本:

[[email protected] ~]# ~/aws-scripts-mon/mon-put-instance-data.pl --mem-used-incl-cache-buff --verify --verbose 

ERROR: No metrics specified for collection and submission to CloudWatch. 

For more information, run 'mon-put-instance-data.pl --help' 

我已经按照文档中的先决条件,以确保所有必需的工具首次安装。我错过了什么?

回答

-1

尝试这样的事:

[如果你想送您的自定义数据] 在/ usr/local/bin目录/ AWS CloudWatch的把度量数据--namespace “TomcatOpenFiles” --dimensions INSTANCE_ID =” curl -s http://169.254.169.254/latest/meta-data/instance-id“--metric名 ”TomcatOpenFiles“ --value $ Tomcat_Openfiles --region AP-南1

[如果你想发送AWS定义的数据] 的/ opt/AWS-脚本-MON /周一放-instance-data.pl --mem-util --mem-used --mem-avail --disk-space-util --disk-space-used --disk-space-avail --memory-units = gigabytes - -disk-space-units = gigabytes --disk-path =/--from-cron

1

我想你需要的是:

~/aws-scripts-mon/mon-put-instance-data.pl --mem-used-incl-cache-buff --mem-used 

--mem-used标志将告诉您要使用的内存和​​告诉它包括高速缓存和缓冲区的脚本。

为了验证这一点,你可以运行这些命令2和比较输出:

~/aws-scripts-mon/mon-put-instance-data.pl --mem-used --verify --verbose 
~/aws-scripts-mon/mon-put-instance-data.pl --mem-used-incl-cache-buff --mem-used --verify --verbose 
0

我在自定义的指标使用。正如@Tartaglia所述,您需要启用mem-used切换器来报告内存统计信息。您可以查看Perl脚本并查看它是如何计算的。

没有缓冲区和缓存:

mon-put-instance-data.pl --mem-used 

输出:

Payload:{"MetricData":[{"MetricName":"MemoryUsed","Unit":"Megabytes","Value":4915.6640625,"Timestamp":1501356451} 

随着缓冲区和缓存:

mon-put-instance-data.pl --mem-used-incl-cache-buff --mem-used 

输出:

Payload:{"MetricData":[{"MetricName":"MemoryUsed","Unit":"Megabytes","Value":5690.55078125,"Timestamp":1501356486}