Skip to main content

Maintain AWS CloudWatch log streams

Project description

AWS Cloudwatch Log minder

AWS CloudWatch logs is an useful logging system, but it has two quircks. It does not allow you too set a default retention period for newly created log groups, and it does not delete empty log streams that are older than the retention period. This utility:

  1. sets a default retention period on log groups without a period set.
  2. removes empty log streams older than the retention period of the log group

You can use it as a command line utility. You can also install it as an AWS Lambda function and have your logs kept in order, NoOps style!

install the log minder

to install the log minder, type:

pip install aws-cloudwatch-log-minder

set default retention period

to set the default retention period on log groups without one, type:

cwlog-minder --dry-run set-log-retention --days 30

This will show you which log groups will have its retention period set. Remove the --dry-run and it the retention period will be set. If you wish to set the retention of all log groups to the same value, type:

cwlog-minder --dry-run set-log-retention --days 30 --overwrite

delete empty log streams

To delete empty log streams older than the retention period, type:

cwlog-minder --dry-run delete-empty-log-streams

This will show you which empty log streams will be deleted. Remove the --dry-run and these stream will be deleted.

deploy the log minder

To deploy the log minder as an AWS Lambda, type:

git clone https://github.com/binxio/aws-cloudwatch-log-minder.git
cd aws-cloudwatch-log-minder
aws cloudformation deploy \
	--capabilities CAPABILITY_IAM \
	--stack-name aws-cloudwatch-log-minder \
	--template-file ./cloudformation/aws-cloudwatch-log-minder.yaml \
	--parameter-overrides LogRetentionInDays=30

This will install the log minder in your AWS account and run every hour.

delete empty log groups

To delete empty log groups, type:

cwlog-minder --dry-run delete-empty-log-groups

This will show you which empty log groups will be deleted. Remove the --dry-run and these groups will be deleted. Do not use this command, if your log groups are managed by CloudFormation or Terraform.

verbose

export LOG_LEVEL=DEBUG
cwlog-minder ...

region and profile selection

AWS regions and credential profiles can be selected via command line arguments or environment variables.

region via parameter

cwlog-minder --region eu-west-1 ...

region via environment

export AWS_DEFAULT_REGION=eu-west-1
cwlog-minder ...

profile via parameter

cwlog-minder --profile dev ...

profile via environment

export AWS_PROFILE=dev
cwlog-minder ...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aws-cloudwatch-log-minder-0.6.1.tar.gz (11.1 kB view details)

Uploaded Source

File details

Details for the file aws-cloudwatch-log-minder-0.6.1.tar.gz.

File metadata

File hashes

Hashes for aws-cloudwatch-log-minder-0.6.1.tar.gz
Algorithm Hash digest
SHA256 7a3f88432dff985339fe8d3d0dfdb0591f47bdcc561e76c955a2dd75251f5258
MD5 a41645c392290bfc69641ea2c00df201
BLAKE2b-256 d2c20b6fc51ecadafc62905434408c60660fe0b513b8dc8d249a257ee787559a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page