sensu-plugins-aws 9.0.1 → 10.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2699fc4c1516d96d17ab77403d5e075a31004085
4
- data.tar.gz: 8ceba90a9f7520263f2c7687244c6e1ff2440feb
3
+ metadata.gz: 00a5f6aca217d3a130aea8c8d73dde6db86bd936
4
+ data.tar.gz: 9e22380ee25815367496409e313fa851e398ca74
5
5
  SHA512:
6
- metadata.gz: 4271137f66f70f6a6b42a2e83a93f3d82333e94f3a1346d41a79ae8744e008ee156d2baf5f8c58479eed55df439b5f20a9910c445401b1ff04d41f17290f8d40
7
- data.tar.gz: b69bb4b2a860fe2adf24caa6f2e1815b960c21be8339c1fa54b170fdced41e53b365fa3fc812d63cd363a88493d523d08144324a3d7f644edecb6a8c4035f07c
6
+ metadata.gz: 4591894d2d5eff391c32379d82e9c23cc89acdee4f9bc61ae4829bb13450dd4e131cbfaad7f3cfc6cf09c15cd84b68a5f80a1fd3df9802543c934429736b889e
7
+ data.tar.gz: d8b4af39056d5e11140b46739a0a6d21adf9a866b99c697d943e33a7c43e225ff129319d69db80be00d00a69eea8081f78babf24a6bdcc40bcafd2933ee4fcf8
data/CHANGELOG.md CHANGED
@@ -5,6 +5,13 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [10.0.0] - 2017-10-24
9
+ ### Breaking Changes
10
+ - handler-ses.rb, handler-sns.rb: Update to AWS-SDK v2. With the update to AWS-SDK v2 these handlers no longer take `access_key`, `secret_key`, or `use_ami_role` settings. Authentication should be configured per [here](https://github.com/sensu-plugins/sensu-plugins-aws/blob/master/README.md#authentication). (@eheydrick)
11
+
12
+ ### Changed
13
+ - Update to `aws-sdk` 2.10 (@eheydrick)
14
+
8
15
  ## [9.0.1] - 2017-10-17
9
16
  ### Fixed
10
17
  - metrics-billing.rb: replace `-s` with `-S` for services definition to prevent conflict with scheme option (@boutetnico)
@@ -387,7 +394,8 @@ WARNING: This release contains major breaking changes that will impact all user
387
394
  ### Added
388
395
  - initial release
389
396
 
390
- [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/9.0.0...HEAD
397
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/10.0.0...HEAD
398
+ [10.0.0]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/9.0.1...10.0.0
391
399
  [9.0.1]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/9.0.0...9.0.1
392
400
  [9.0.0]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/8.3.1...9.0.0
393
401
  [8.3.1]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/8.3.0...8.3.1
data/README.md CHANGED
@@ -219,14 +219,25 @@
219
219
  ## Usage
220
220
 
221
221
  **handler-ses**
222
+
223
+ 1. Configure [authentication](#authentication)
224
+ 2. Enable the handler in `/etc/sensu/conf.d/handlers/ses.json`:
225
+ ```
226
+ {
227
+ "handlers": {
228
+ "ses": {
229
+ "type": "pipe",
230
+ "command": "handler-ses.rb"
231
+ }
232
+ }
233
+ }
234
+ ```
235
+ 3. Configure the handler in `/etc/sensu/conf.d/ses.json`:
222
236
  ```
223
237
  {
224
238
  "ses": {
225
239
  "mail_from": "sensu@example.com",
226
240
  "mail_to": "monitor@example.com",
227
- "use_ami_role": true,
228
- "access_key": "myaccesskey",
229
- "secret_key": "mysecretkey",
230
241
  "region": "us-east-1",
231
242
  "subscriptions": {
232
243
  "subscription_name": {
@@ -238,13 +249,28 @@
238
249
  ```
239
250
 
240
251
  **handler-sns**
252
+
253
+ `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.
254
+
255
+ 1. Create an SNS topic and subscription [[Docs]](http://docs.aws.amazon.com/sns/latest/dg/GettingStarted.html)
256
+ 1. Configure [authentication](#authentication)
257
+ 2. Enable the handler in `/etc/sensu/conf.d/handlers/sns.json`:
258
+ ```
259
+ {
260
+ "handlers": {
261
+ "sns": {
262
+ "type": "pipe",
263
+ "command": "handler-sns.rb"
264
+ }
265
+ }
266
+ }
267
+ ```
268
+ 3. Configure the handler in `/etc/sensu/conf.d/sns.json`:
241
269
  ```
242
270
  {
243
271
  "sns": {
244
272
  "topic_arn": "arn:aws:sns:us-east-1:111111111111:topic",
245
- "use_ami_role": true,
246
- "access_key": "MY_KEY",
247
- "secret_key": "MY_secret"
273
+ "region": "us-east-1"
248
274
  }
249
275
  }
250
276
  ```
data/bin/handler-ses.rb CHANGED
@@ -11,7 +11,7 @@
11
11
  # for details.
12
12
 
13
13
  require 'sensu-handler'
14
- require 'aws-sdk-v1'
14
+ require 'aws-sdk'
15
15
 
16
16
  class SESNotifier < Sensu::Handler
17
17
  def event_name
@@ -52,19 +52,6 @@ class SESNotifier < Sensu::Handler
52
52
  mail_to
53
53
  end
54
54
 
55
- def use_ami_role
56
- use_ami_role = settings['ses']['use_ami_role']
57
- use_ami_role.nil? ? true : use_ami_role
58
- end
59
-
60
- def aws_access_key
61
- settings['ses']['access_key'] || ''
62
- end
63
-
64
- def aws_access_secret
65
- settings['ses']['secret_key'] || ''
66
- end
67
-
68
55
  def region
69
56
  settings['ses']['region'] || 'us-east-1'
70
57
  end
@@ -88,23 +75,27 @@ class SESNotifier < Sensu::Handler
88
75
  "#{action_to_string} - #{event_name}: #{@event['check']['notification']}"
89
76
  end
90
77
 
91
- if use_ami_role
92
- AWS.config(region: region)
93
- else
94
- AWS.config(access_key_id: aws_access_key,
95
- secret_access_key: aws_access_secret,
96
- region: region)
97
- end
78
+ message = {
79
+ subject: {
80
+ data: subject
81
+ },
82
+ body: {
83
+ text: {
84
+ data: body
85
+ }
86
+ }
87
+ }
98
88
 
99
- ses = AWS::SimpleEmailService.new
89
+ ses = Aws::SES::Client.new(region: region)
100
90
 
101
91
  begin
102
- timeout 10 do
92
+ Timeout.timeout(10) do
103
93
  ses.send_email(
104
- subject: subject,
105
- from: mail_from,
106
- to: [mail_to.split(',')],
107
- body_text: body
94
+ source: mail_from,
95
+ destination: {
96
+ to_addresses: mail_to.split(',')
97
+ },
98
+ message: message
108
99
  )
109
100
 
110
101
  puts 'mail -- sent alert for ' + event_name + ' to ' + mail_to.to_s
data/bin/handler-sns.rb CHANGED
@@ -1,20 +1,16 @@
1
1
  #!/usr/bin/env ruby
2
2
  #
3
- # This handler assumes it runs on an ec2 instance with an iam role
4
- # that has permission to send to the sns topic specified in the config.
5
- # This removes the requirement to specify an access key and secret access key.
6
- # See http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html
3
+ # Send notifications to an SNS topic
7
4
  #
8
5
  # Requires the aws-sdk gem.
9
6
  #
10
- # Setting required in sns.json
11
- # topic_are : The arn for the destination sns topic
7
+ # See README for usage information
12
8
  #
13
9
  # Released under the same terms as Sensu (the MIT license); see LICENSE
14
10
  # for details
15
11
 
16
12
  require 'sensu-handler'
17
- require 'aws-sdk-v1'
13
+ require 'aws-sdk'
18
14
  require 'erubis'
19
15
 
20
16
  class SnsNotifier < Sensu::Handler
@@ -30,19 +26,6 @@ class SnsNotifier < Sensu::Handler
30
26
  "#{@event['client']['name']}/#{@event['check']['name']}"
31
27
  end
32
28
 
33
- def use_ami_role
34
- use_ami_role = settings['sns']['use_ami_role']
35
- use_ami_role.nil? ? true : use_ami_role
36
- end
37
-
38
- def aws_access_key
39
- settings['sns']['access_key'] || ''
40
- end
41
-
42
- def aws_access_secret
43
- settings['sns']['secret_key'] || ''
44
- end
45
-
46
29
  def message
47
30
  template = if template_file && File.readable?(template_file)
48
31
  File.read(template_file)
@@ -60,25 +43,21 @@ class SnsNotifier < Sensu::Handler
60
43
  end
61
44
 
62
45
  def handle
63
- if use_ami_role
64
- AWS.config(region: region)
65
- else
66
- AWS.config(access_key_id: aws_access_key,
67
- secret_access_key: aws_access_secret,
68
- region: region)
69
- end
70
-
71
- sns = AWS::SNS.new
72
-
73
- t = sns.topics[topic_arn]
46
+ sns = Aws::SNS::Client.new(region: region)
74
47
 
75
48
  subject = if @event['action'].eql?('resolve')
76
49
  "RESOLVED - [#{event_name}]"
77
50
  else
78
51
  "ALERT - [#{event_name}]"
79
52
  end
80
- options = { subject: subject }
81
- t.publish("#{subject} - #{message}", options)
53
+
54
+ options = {
55
+ subject: subject,
56
+ message: "#{subject} - #{message}",
57
+ topic_arn: topic_arn
58
+ }
59
+
60
+ sns.publish(options)
82
61
  rescue => e
83
62
  puts "Exception occured in SnsNotifier: #{e.message}", e.backtrace
84
63
  end
@@ -1,8 +1,8 @@
1
1
  module SensuPluginsAWS
2
2
  module Version
3
- MAJOR = 9
3
+ MAJOR = 10
4
4
  MINOR = 0
5
- PATCH = 1
5
+ PATCH = 0
6
6
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-aws
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.1
4
+ version: 10.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu-Plugins and contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-17 00:00:00.000000000 Z
11
+ date: 2017-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.3'
19
+ version: '2.10'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.3'
26
+ version: '2.10'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: aws-sdk-v1
29
29
  requirement: !ruby/object:Gem::Requirement