Monitoring Memory and Disk Metrics for Amazon EC2 Linux Instances

From DevOps Notebook
Revision as of 13:48, 8 November 2019 by MilosZ (talk | contribs)

Requirements

In order for script to work either IAM role or awscreds.conf file needs to be configure.

Required packages

Amazon Linux

  • login with ec2-user
$ sudo yum install -y perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https perl-Digest-SHA.x86_64

Ubuntu

  • login with ubuntu user
$ sudo apt-get update && \
  sudo apt-get install libwww-perl libdatetime-perl unzip

Install Monitoring Scripts

$ cd /opt/ && sudo curl https://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.2.zip -O
$ sudo unzip CloudWatchMonitoringScripts-1.2.2.zip && \
  sudo rm CloudWatchMonitoringScripts-1.2.2.zip && \
  cd aws-scripts-mon

Setup crontab

Crontab needs to be setup in order to push data periodically to cloudwatch
Bellow cron is example, you should add paremeters for metrics you need,
which you can have by running:

 /opt/aws-scripts-mon/mon-put-instance-data.pl --help 

Crontab:

*/5 * * * * /opt/aws-scripts-mon/mon-put-instance-data.pl --mem-used-incl-cache-buff --mem-util --disk-space-util --disk-path=/ --from-cron