{"id":13821509,"url":"https://github.com/sensu-plugins/sensu-plugins-aws","last_synced_at":"2025-05-16T15:07:28.330Z","repository":{"id":26718542,"uuid":"30175941","full_name":"sensu-plugins/sensu-plugins-aws","owner":"sensu-plugins","description":"This plugin provides native AWS instrumentation for monitoring and metrics collection, including: health and metrics for various AWS services, such as EC2, RDS, ELB, and more, as well as handlers for EC2, SES, and SNS.","archived":false,"fork":false,"pushed_at":"2023-05-12T11:15:36.000Z","size":878,"stargazers_count":81,"open_issues_count":49,"forks_count":139,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-05-12T14:03:51.949Z","etag":null,"topics":["autoscaling","aws","aws-monitoring","aws-networking","certificate-manager","cloudfront","cloudwatch","ebs","ec2","elasticache","emr","load-balancer","metrics","monitoring","rds","sensu","sensu-handler","sensu-plugins","sns","sqs"],"latest_commit_sha":null,"homepage":"http://sensu-plugins.io","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sensu-plugins.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-02-02T07:25:45.000Z","updated_at":"2024-05-31T08:25:35.000Z","dependencies_parsed_at":"2024-06-19T00:13:05.985Z","dependency_job_id":"f9ad0648-001b-46b0-8b6a-36be59377d03","html_url":"https://github.com/sensu-plugins/sensu-plugins-aws","commit_stats":null,"previous_names":[],"tags_count":83,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sensu-plugins%2Fsensu-plugins-aws","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sensu-plugins%2Fsensu-plugins-aws/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sensu-plugins%2Fsensu-plugins-aws/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sensu-plugins%2Fsensu-plugins-aws/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sensu-plugins","download_url":"https://codeload.github.com/sensu-plugins/sensu-plugins-aws/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254553958,"owners_count":22090417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autoscaling","aws","aws-monitoring","aws-networking","certificate-manager","cloudfront","cloudwatch","ebs","ec2","elasticache","emr","load-balancer","metrics","monitoring","rds","sensu","sensu-handler","sensu-plugins","sns","sqs"],"created_at":"2024-08-04T08:01:23.051Z","updated_at":"2025-05-16T15:07:28.300Z","avatar_url":"https://github.com/sensu-plugins.png","language":"Ruby","readme":"## Sensu-Plugins-aws\n\n[![Build Status](https://travis-ci.org/sensu-plugins/sensu-plugins-aws.svg?branch=master)](https://travis-ci.org/sensu-plugins/sensu-plugins-aws)\n[![Gem Version](https://badge.fury.io/rb/sensu-plugins-aws.svg)](https://badge.fury.io/rb/sensu-plugins-aws.svg)\n[![Sensu Bonsai Asset](https://img.shields.io/badge/Bonsai-Download%20Me-brightgreen.svg?colorB=89C967\u0026logo=sensu)](https://bonsai.sensu.io/assets/sensu-plugins/sensu-plugins-aws)\n\n## Sensu Asset\nThe Sensu assets packaged from this repository are built against the Sensu Ruby runtime environment. When using these assets as part of a Sensu Go resource (check, mutator or handler), make sure you include the corresponding Sensu Ruby runtime asset in the list of assets needed by the resource. The current ruby-runtime assets can be found [here](https://bonsai.sensu.io/assets/sensu/sensu-ruby-runtime) in the [Bonsai Asset Index](bonsai.sensu.io).\n\n## Functionality\n\n**check-alb-target-group-health.rb**\n\n**check-asg-instances-created.rb**\n\n**check-asg-instances-inservice.rb**\n\n**check-autoscaling-cpucredits.rb**\n\n**check-beanstalk-elb-metric.rb**\n\n**check-certificate-expiry.rb**\n\n**check-cloudwatch-alarm**\n\n**check-cloudwatch-alarm-multi**\n\n**check-cloudwatch-alarms**\n\n**check-cloudwatch-composite-metric**\n\n**check-cloudwatch-metric**\n\n**check-cloudfront-tag**\n\n**check-configservice-rules**\n\n**check-dynamodb-capacity.rb**\n\n**check-dynamodb-throttle.rb**\n\n**check-direct-connect-virtual-interfaces.rb**\n\n**check-ebs-snapshots.rb**\n\n**check-ebs-burst-limit.rb**\n\n**check-ec2-cpu_balance.rb**\n\n**check-ec2-filter.rb**\n\n**check-ec2-network.rb**\n\n**check-ecs-service-health.rb**\n\n**check-efs-metric.rb**\n\n**check-eip-allocation.rb**\n\n**check-elasticache-failover.rb**\n\n**check-elb-certs.rb**\n\n**check-elb-health-fog.rb**\n\n**check-elb-health-sdk.rb**\n\n**check-elb-health.rb**\n\n**check-elb-instances-inservice.rb**\n\n**check-elb-latency.rb**\n\n**check-elb-nodes.rb**\n\n**check-elb-sum-requests.rb**\n\n**check-emr-cluster.rb**\n\n**check-emr-steps.rb**\n\n**check-eni-status.rb**\n\n**check-instance-events.rb**\n\n**check-instance-health.rb**\n\n**check-kms-key.rb**\n\n**check-rds-events.rb**\n\n**check-rds-pending.rb**\n\n**check-rds.rb**\n\n**check-redshift-events.rb**\n\n**check-reserved-instances.rb**\n\n**check-route53-domain-expiration.rb**\n\n**check-s3-bucket.rb**\n\n**check-s3-bucket-visibility.rb**\n\n**check-s3-object.rb**\n\n**check-s3-tag.rb**\n\n**check-ses-limit.rb**\n\n**check-ses-statistics.rb**\n\n**check-sns-subscriptions**\n\n**check-sqs-messages.rb**\n\n**check-subnet-ip-consumption**\n\n**check-vpc-nameservers**\n\n**check-instances-count.rb**\n\n**check-vpc-vpn.rb**\n\n**handler-ec2_node.rb**\n\n**handler-scale-asg-down.rb**\n\n**handler-scale-asg-up.rb**\n\n**handler-ses.rb**\n\n**handler-sns.rb**\n\n**metrics-asg.rb**\n\n**metrics-autoscaling-instance-count.rb**\n\n**metrics-billing.rb**\n\n**metrics-ec2-count.rb**\n\n**metrics-ec2-filter.rb**\n\n**metrics-elasticache.rb**\n\n**metrics-elb-full.rb**\n\n**metrics-elb.rb**\n\n**metrics-emr-steps.rb**\n\n**metrics-rds.rb**\n\n**metrics-s3.rb**\n\n**metrics-ses.rb**\n\n**metrics-sqs.rb**\n\n\n## Files\n\n* /bin/check-alb-target-group-health.rb\n* /bin/check-asg-instances-created.rb\n* /bin/check-autoscaling-cpucredits.rb\n* /bin/check-asg-instances-inservice.rb\n* /bin/check-beanstalk-elb-metric.rb\n* /bin/check-certificate-expiry.rb\n* /bin/check-configservice-rules.rb\n* /bin/check-cloudfront-tag.rb\n* /bin/check-cloudwatch-alarm.rb\n* /bin/check-cloudwatch-alarm-multi.rb\n* /bin/check-cloudwatch-alarms.rb\n* /bin/check-cloudwatch-metric.rb\n* /bin/check-cloudwatch-composite-metric.rb\n* /bin/check-dynamodb-capacity.rb\n* /bin/check-dynamodb-throttle.rb\n* /bin/check-direct-connect-virtual-interfaces.rb\n* /bin/check-ebs-burst-limit.rb\n* /bin/check-ebs-snapshots.rb\n* /bin/check-ec2-filter.rb\n* /bin/check-ec2-network.rb\n* /bin/check-ecs-service-health.rb\n* /bin/check-efs-metric.rb\n* /bin/check-elasticache-failover.rb\n* /bin/check-elb-certs.rb\n* /bin/check-elb-health-fog.rb\n* /bin/check-elb-health-sdk.rb\n* /bin/check-elb-health.rb\n* /bin/check-elb-instances-inservice.rb\n* /bin/check-elb-latency.rb\n* /bin/check-elb-nodes.rb\n* /bin/check-elb-sum-requests.rb\n* /bin/check-emr-cluster.rb\n* /bin/check-emr-steps.rb\n* /bin/check-eni-status.rb\n* /bin/check-expiring-reservations.rb\n* /bin/check-instance-events.rb\n* /bin/check-rds-events.rb\n* /bin/check-rds-pending.rb\n* /bin/check-rds.rb\n* /bin/check-redshift-events.rb\n* /bin/check-route53-domain-expiration.rb\n* /bin/check-s3-object.rb\n* /bin/check-s3-tag.rb\n* /bin/check-ses-limit.rb\n* /bin/check-ses-statistics.rb\n* /bin/check-sqs-messages.rb\n* /bin/check-subnet-ip-consumption.rb\n* /bin/check-vpc-nameservers.rb\n* /bin/check_vpc_vpn.py\n* /bin/check_vpc_vpn.rb\n* /bin/handler-ec2_node.rb\n* /bin/handler-ses.rb\n* /bin/handler-sns.rb\n* /bin/metrics-autoscaling-instance-count.rb\n* /bin/check-instances-count.rb\n* /bin/metrics-asg.rb\n* /bin/metrics-billing.rb\n* /bin/metrics-ec2-count.rb\n* /bin/metrics-ec2-filter.rb\n* /bin/metrics-elasticache.rb\n* /bin/metrics-elb-full.rb\n* /bin/metrics-elb.rb\n* /bin/metrics-emr-steps.rb\n* /bin/metrics-rds.rb\n* /bin/metrics-reservation-utilization.rb\n* /bin/metrics-s3.rb\n* /bin/metrics-ses.rb\n* /bin/metrics-sqs.rb\n\n## Usage\n\n**handler-ses**\n\n1. Configure [authentication](#authentication)\n2. Enable the handler in `/etc/sensu/conf.d/handlers/ses.json`:\n```\n{\n  \"handlers\": {\n    \"ses\": {\n      \"type\": \"pipe\",\n      \"command\": \"handler-ses.rb\"\n    }\n  }\n}\n```\n3. Configure the handler in `/etc/sensu/conf.d/ses.json`:\n```\n{\n  \"ses\": {\n    \"mail_from\": \"sensu@example.com\",\n    \"mail_to\": \"monitor@example.com\",\n    \"region\": \"us-east-1\",\n    \"subscriptions\": {\n      \"subscription_name\": {\n        \"mail_to\": \"teamemail@example.com\"\n      }\n    }\n  }\n}\n```\n\n**handler-sns**\n\n`handler-sns` can be used to send alerts to Email, HTTP endpoints, SMS, or any other [subscription type](http://docs.aws.amazon.com/sns/latest/dg/welcome.html) supported by SNS.\n\n1. Create an SNS topic and subscription [[Docs]](http://docs.aws.amazon.com/sns/latest/dg/GettingStarted.html)\n1. Configure [authentication](#authentication)\n2. Enable the handler in `/etc/sensu/conf.d/handlers/sns.json`:\n```\n{\n  \"handlers\": {\n    \"sns\": {\n      \"type\": \"pipe\",\n      \"command\": \"handler-sns.rb\"\n    }\n  }\n}\n```\n3. Configure the handler in `/etc/sensu/conf.d/sns.json`:\n```\n{\n  \"sns\": {\n    \"topic_arn\": \"arn:aws:sns:us-east-1:111111111111:topic\",\n    \"region\": \"us-east-1\"\n  }\n}\n```\n## Installation\n\n[Installation and Setup](http://sensu-plugins.io/docs/installation_instructions.html)\n\nNote:  In addition to the standard installation requirements the installation of this gem will require compiling the nokogiri gem.  Due to this you'll need certain development packages on your system.\n\nOn Ubuntu systems run the following to install build dependencies:\n\n```\nsudo apt-get install build-essential libxml2-dev zlib1g-dev\n```\n\nOn CentOS systems, run the following to install build dependencies:\n```\nsudo yum groupinstall -y \"Development Tools\"\nsudo yum install -y libxml2-devel zlib-devel\n```\n\nIf you'd like to avoid compiling nokogiri and other gems on every system where you need to install this plugin collection, please have a look at [the Sensu guide for pre-compiling plugin packages](https://docs.sensu.io/sensu-core/latest/guides/pre-compile-plugins/).\n\n## Authentication\n\nAWS credentials are required to execute these checks. Starting with AWS-SDK v2 there are a few\nmethods of passing credentials to the check:\n\n1. Use a [credential file](http://docs.aws.amazon.com/sdk-for-ruby/v2/developer-guide/setup-config.html#aws-ruby-sdk-credentials-shared). Place the credentials in `~/.aws/credentials`. On Unix-like systems this is going to be `/opt/sensu/.aws/credentials`. Be sure to restrict the file to the `sensu` user.\n```\n[default]\naws_access_key_id = \u003caccess_key\u003e\naws_secret_access_key = \u003csecret_access_key\u003e\n```\n\n2. Use an [EC2 instance profile](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html). If the checks are executing on an EC2 instance you can give the instance an IAM role and authentication will be handled automatically.\n\nSee the [AWS-SDK docs](http://docs.aws.amazon.com/sdkforruby/api/#Configuration) for more details on\ncredential configuration.\n\nSome of the checks accept credentials with `aws_access_key` and `aws_secret_access_key` options\nhowever this method is deprecated as it is insecure to pass credentials on the command line. Support\nfor these options will be removed in future releases.\n\nNo matter which authentication method is used you should restrict AWS API access to the minimum required to run the checks. In general this is done by limiting the sensu IAM user/role to the necessary `Describe` calls for the services being checked.\n","funding_links":[],"categories":["Ruby"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsensu-plugins%2Fsensu-plugins-aws","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsensu-plugins%2Fsensu-plugins-aws","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsensu-plugins%2Fsensu-plugins-aws/lists"}