2017-07-28 122 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}