Sends AWS Cloudwatch metrics to Loggly
- Clone the git repo
git clone https://github.com/psquickitjayant/cloudwatch-metrics-to-loggly.git
cd cloudwatch-metrics-to-loggly
- Install required npm packages.
npm install
- zip up your code
zip -r cloudwatchMetrics2Loggly.zip index.js node_modules
The resulting zip (cloudwatchMetrics2Loggly.zip) is what you will upload to AWS.
For all of the AWS setup, I used the AWS console following this example. Below, you will find a high-level description of how to do this. I also found this blog post on how to set things up using the command line tools.
- Create Role
- Sign in to your AWS account and open IAM console https://console.aws.amazon.com/iam/
- In your IAM console create a new Role say, 'cloudwatch-full-access'
- Select Role Type as 'AWS Lambda'
- Apply policy 'CloudWatchFullAccess' and save.
- Create KMS Key
- Create a KMS key - http://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html
- Encrypt the Loggly Customer Token using the AWS CLI - aws kms encrypt --key-id alias/<your KMS key arn> --plaintext "<your loggly customer token>"
- Copy the base-64 encoded, encrypted token from step 2's CLI output (CiphertextBlob attribute) and replace it with the "your KMS encypted key" in the script at line no 13
- Create lambda function
- https://console.aws.amazon.com/lambda/home
- Click "Create a Lambda function" button. (Choose "Upload a .ZIP file") * Name: cloudwatchMetrics2Loggly * Upload lambda function (zip file you made above.) * Handler:* index.handler * Set Role : cloudwatch-full-access * Set Timeout to 2 minutes
- Go to your Lamda function and select the "Event sources" tab * Click on Add Event Source * Event Source Type : Cloudwatch Events - Schedule * Name : Provide any customized name. e.g. cloudwatchMetrics2Loggly Event Source * Description: Invokes Lambda function in every 5 minutes * Schedule expression : rate(5 minutes) * Enable Event Source : Enable Now Now click on submit and wait for the events to occur in Loggly
NOTE: Always use latest version of AWSCLI. Some features like KMS may not work on older versions of AWSCLI. To upgrade, use the command given below
pip install --upgrade awscli