sensu-plugins-elasticsearch 0.1.1 → 0.1.2

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: 3e32bc62a5f093d54feea77dcb4320d64b925ff6
4
- data.tar.gz: 932dbbc17c02a6da8966f852f4194c32d47a4e1a
3
+ metadata.gz: 6ed1e5b2be5e2312ace43d768501b9dc7ee06998
4
+ data.tar.gz: 247045e2d44a0fdf7e72d9d6ab7fccaf9ec799eb
5
5
  SHA512:
6
- metadata.gz: 61c0080cae862113e78cee86fcbf19c0d4d0c8b698498d1ed476a537a2e450d8b279ce820773598365d4084f1b54e61fdd6a1c2b6881c4ad6412cacc54bc40f1
7
- data.tar.gz: 692c33f619f532d6d7c989069ee2524d8e4d2c7c852bf46bb1d9442665ee252b8ddb839e6687df302283971040f37fae97cbc500e2d7bb78c6ed41fc079ed27c
6
+ metadata.gz: da755db21691233c63e64a7fb51979ccf616e502f8e4935726bae4592258a915d27c4a24eef4f4fbf71d07640efcff82e0d5ce99de7de50b922fbda1de50577d
7
+ data.tar.gz: 9d29e89be06ab137540eed13ab6e0c753167069b333d3a277ed7e872e468662bb8066e535b5570be19b6b1ad3a7d9438cb814e46f9b0d04daa1ec2555205591d
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -3,14 +3,17 @@ This project adheres to [Semantic Versioning](http://semver.org/).
3
3
 
4
4
  This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
5
5
 
6
- ## Unreleased][unreleased]
6
+ ## [Unreleased][unreleased]
7
+
8
+ ## [0.1.2] - 2015-08-11
9
+ ### Added
10
+ - add parameters for elasticsearch auth
7
11
 
8
12
  ## [0.1.1] - 2015-07-14
9
13
  ### Changed
10
14
  - updated sensu-plugin gem to 1.2.0
11
15
 
12
16
  ## [0.1.0] - 2015-07-06
13
-
14
17
  ### Added
15
18
  - `check-es-node-status` node status check
16
19
 
@@ -23,16 +26,19 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
23
26
  - put deps in alpha order in gemspec
24
27
  - update documentation links in README and CONTRIBUTING
25
28
 
26
- ## 0.0.1 - 2015-05-21
27
-
28
- ### Added
29
- - initial release
30
-
31
29
  ## [0.0.2] - 2015-06-02
32
-
33
30
  ### Fixed
34
31
  - added binstubs
35
32
 
36
33
  ### Changed
37
34
  - removed cruft from /lib
38
35
 
36
+ ## 0.0.1 - 2015-05-21
37
+ ### Added
38
+ - initial release
39
+
40
+ [unreleased]: https://github.com/sensu-plugins/sensu-plugins-elasticsearch/compare/0.1.2...HEAD
41
+ [0.1.2]: https://github.com/sensu-plugins/sensu-plugins-elasticsearch/compare/0.1.1...0.1.2
42
+ [0.1.1]: https://github.com/sensu-plugins/sensu-plugins-elasticsearch/compare/0.1.0...0.1.1
43
+ [0.1.0]: https://github.com/sensu-plugins/sensu-plugins-elasticsearch/compare/0.0.2...0.1.0
44
+ [0.0.2]: https://github.com/sensu-plugins/sensu-plugins-elasticsearch/compare/0.0.1...0.0.2
@@ -30,6 +30,7 @@
30
30
  require 'sensu-plugin/check/cli'
31
31
  require 'rest-client'
32
32
  require 'json'
33
+ require 'base64'
33
34
 
34
35
  #
35
36
  # ES Cluster Status
@@ -61,8 +62,23 @@ class ESClusterStatus < Sensu::Plugin::Check::CLI
61
62
  proc: proc(&:to_i),
62
63
  default: 30
63
64
 
65
+ option :user,
66
+ description: 'Elasticsearch User',
67
+ short: '-u USER',
68
+ long: '--user USER'
69
+
70
+ option :password,
71
+ description: 'Elasticsearch Password',
72
+ short: '-P PASS',
73
+ long: '--password PASS'
74
+
64
75
  def get_es_resource(resource)
65
- r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}#{resource}", timeout: config[:timeout])
76
+ headers = {}
77
+ if config[:user] && config[:password]
78
+ auth = 'Basic ' + Base64.encode64("#{config[:user]}:#{config[:password]}").chomp
79
+ headers = { 'Authorization' => auth }
80
+ end
81
+ r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}#{resource}", timeout: config[:timeout], headers: headers)
66
82
  JSON.parse(r.get)
67
83
  rescue Errno::ECONNREFUSED
68
84
  critical 'Connection refused'
@@ -29,6 +29,7 @@
29
29
  require 'sensu-plugin/check/cli'
30
30
  require 'rest-client'
31
31
  require 'json'
32
+ require 'base64'
32
33
 
33
34
  #
34
35
  # ES File Descriptiors
@@ -66,8 +67,23 @@ class ESFileDescriptors < Sensu::Plugin::Check::CLI
66
67
  proc: proc(&:to_i),
67
68
  default: 80
68
69
 
70
+ option :user,
71
+ description: 'Elasticsearch User',
72
+ short: '-u USER',
73
+ long: '--user USER'
74
+
75
+ option :password,
76
+ description: 'Elasticsearch Password',
77
+ short: '-P PASS',
78
+ long: '--password PASS'
79
+
69
80
  def get_es_resource(resource)
70
- r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}#{resource}", timeout: config[:timeout])
81
+ headers = {}
82
+ if config[:user] && config[:password]
83
+ auth = 'Basic ' + Base64.encode64("#{config[:user]}:#{config[:password]}").chomp
84
+ headers = { 'Authorization' => auth }
85
+ end
86
+ r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}#{resource}", timeout: config[:timeout], headers: headers)
71
87
  JSON.parse(r.get)
72
88
  rescue Errno::ECONNREFUSED
73
89
  warning 'Connection refused'
@@ -95,7 +111,7 @@ class ESFileDescriptors < Sensu::Plugin::Check::CLI
95
111
  end
96
112
  end
97
113
 
98
- def run # rubocop:disable all
114
+ def run
99
115
  open = acquire_open_fds
100
116
  max = acquire_max_fds
101
117
  used_percent = ((open.to_f / max.to_f) * 100).to_i
data/bin/check-es-heap.rb CHANGED
@@ -29,6 +29,7 @@
29
29
  require 'sensu-plugin/check/cli'
30
30
  require 'rest-client'
31
31
  require 'json'
32
+ require 'base64'
32
33
 
33
34
  #
34
35
  # ES Heap
@@ -74,13 +75,28 @@ class ESHeap < Sensu::Plugin::Check::CLI
74
75
  description: 'Use the WARNING and CRITICAL threshold numbers as percentage indicators of the total heap available',
75
76
  default: false
76
77
 
78
+ option :user,
79
+ description: 'Elasticsearch User',
80
+ short: '-u USER',
81
+ long: '--user USER'
82
+
83
+ option :password,
84
+ description: 'Elasticsearch Password',
85
+ short: '-W PASS',
86
+ long: '--password PASS'
87
+
77
88
  def acquire_es_version
78
89
  info = acquire_es_resource('/')
79
90
  info['version']['number']
80
91
  end
81
92
 
82
93
  def acquire_es_resource(resource)
83
- r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}#{resource}", timeout: config[:timeout])
94
+ headers = {}
95
+ if config[:user] && config[:password]
96
+ auth = 'Basic ' + Base64.encode64("#{config[:user]}:#{config[:password]}").chomp
97
+ headers = { 'Authorization' => auth }
98
+ end
99
+ r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}#{resource}", timeout: config[:timeout], headers: headers)
84
100
  JSON.parse(r.get)
85
101
  rescue Errno::ECONNREFUSED
86
102
  warning 'Connection refused'
@@ -90,7 +106,7 @@ class ESHeap < Sensu::Plugin::Check::CLI
90
106
  warning 'Elasticsearch API returned invalid JSON'
91
107
  end
92
108
 
93
- def acquire_heap_data(return_max = false) # rubocop:disable all
109
+ def acquire_heap_data(return_max = false)
94
110
  if Gem::Version.new(acquire_es_version) >= Gem::Version.new('1.0.0')
95
111
  stats = acquire_es_resource('/_nodes/_local/stats?jvm=true')
96
112
  node = stats['nodes'].keys.first
@@ -109,7 +125,7 @@ class ESHeap < Sensu::Plugin::Check::CLI
109
125
  end
110
126
  end
111
127
 
112
- def run # rubocop:disable all
128
+ def run
113
129
  if config[:percentage]
114
130
  heap_used, heap_max = acquire_heap_data(true)
115
131
  heap_used_ratio = ((100 * heap_used) / heap_max).to_i
@@ -30,6 +30,7 @@
30
30
  require 'sensu-plugin/check/cli'
31
31
  require 'rest-client'
32
32
  require 'json'
33
+ require 'base64'
33
34
 
34
35
  class ESNodeStatus < Sensu::Plugin::Check::CLI
35
36
  option :host,
@@ -52,8 +53,23 @@ class ESNodeStatus < Sensu::Plugin::Check::CLI
52
53
  proc: proc(&:to_i),
53
54
  default: 30
54
55
 
56
+ option :user,
57
+ description: 'Elasticsearch User',
58
+ short: '-u USER',
59
+ long: '--user USER'
60
+
61
+ option :password,
62
+ description: 'Elasticsearch Password',
63
+ short: '-P PASS',
64
+ long: '--password PASS'
65
+
55
66
  def get_es_resource(resource)
56
- r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}#{resource}", timeout: config[:timeout])
67
+ headers = {}
68
+ if config[:user] && config[:password]
69
+ auth = 'Basic ' + Base64.encode64("#{config[:user]}:#{config[:password]}").chomp
70
+ headers = { 'Authorization' => auth }
71
+ end
72
+ r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}#{resource}", timeout: config[:timeout], headers: headers)
57
73
  JSON.parse(r.get)
58
74
  rescue Errno::ECONNREFUSED
59
75
  critical 'Connection refused'
@@ -31,6 +31,7 @@
31
31
  require 'sensu-plugin/metric/cli'
32
32
  require 'rest-client'
33
33
  require 'json'
34
+ require 'base64'
34
35
 
35
36
  #
36
37
  # ES Cluster Metrics
@@ -62,13 +63,28 @@ class ESClusterMetrics < Sensu::Plugin::Metric::CLI::Graphite
62
63
  proc: proc(&:to_i),
63
64
  default: 30
64
65
 
66
+ option :user,
67
+ description: 'Elasticsearch User',
68
+ short: '-u USER',
69
+ long: '--user USER'
70
+
71
+ option :password,
72
+ description: 'Elasticsearch Password',
73
+ short: '-P PASS',
74
+ long: '--password PASS'
75
+
65
76
  def acquire_es_version
66
77
  info = get_es_resource('/')
67
78
  info['version']['number']
68
79
  end
69
80
 
70
81
  def get_es_resource(resource)
71
- r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}#{resource}", timeout: config[:timeout])
82
+ headers = {}
83
+ if config[:user] && config[:password]
84
+ auth = 'Basic ' + Base64.encode64("#{config[:user]}:#{config[:password]}").chomp
85
+ headers = { 'Authorization' => auth }
86
+ end
87
+ r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}#{resource}", timeout: config[:timeout], headers: headers)
72
88
  JSON.parse(r.get)
73
89
  rescue Errno::ECONNREFUSED
74
90
  warning 'Connection refused'
@@ -38,6 +38,7 @@
38
38
  require 'sensu-plugin/metric/cli'
39
39
  require 'rest-client'
40
40
  require 'json'
41
+ require 'base64'
41
42
 
42
43
  #
43
44
  # ES Node Graphite Metrics
@@ -93,8 +94,23 @@ class ESNodeGraphiteMetrics < Sensu::Plugin::Metric::CLI::Graphite
93
94
  boolean: true,
94
95
  default: false
95
96
 
97
+ option :user,
98
+ description: 'Elasticsearch User',
99
+ short: '-u USER',
100
+ long: '--user USER'
101
+
102
+ option :password,
103
+ description: 'Elasticsearch Password',
104
+ short: '-P PASS',
105
+ long: '--password PASS'
106
+
96
107
  def get_es_resource(resource)
97
- r = RestClient::Resource.new("http://#{config[:server]}:#{config[:port]}#{resource}?pretty", timeout: config[:timeout])
108
+ headers = {}
109
+ if config[:user] && config[:password]
110
+ auth = 'Basic ' + Base64.encode64("#{config[:user]}:#{config[:password]}").chomp
111
+ headers = { 'Authorization' => auth }
112
+ end
113
+ r = RestClient::Resource.new("http://#{config[:server]}:#{config[:port]}#{resource}?pretty", timeout: config[:timeout], headers: headers)
98
114
  JSON.parse(r.get)
99
115
  rescue Errno::ECONNREFUSED
100
116
  warning 'Connection refused'
@@ -194,7 +210,7 @@ class ESNodeGraphiteMetrics < Sensu::Plugin::Metric::CLI::Graphite
194
210
  node['indices'].each do |type, index|
195
211
  index.each do |k, v|
196
212
  # #YELLOW
197
- unless k =~ /(_time$)/ || v =~ /\d+/ # rubocop:disable IfUnlessModifier
213
+ unless k =~ /(_time$)/ || v =~ /\d+/
198
214
  metrics["indices.#{type}.#{k}"] = v
199
215
  end
200
216
  end
@@ -202,7 +218,7 @@ class ESNodeGraphiteMetrics < Sensu::Plugin::Metric::CLI::Graphite
202
218
 
203
219
  node['transport'].each do |k, v|
204
220
  # #YELLOW
205
- unless k =~ /(_size$)/ # rubocop:disable IfUnlessModifier
221
+ unless k =~ /(_size$)/
206
222
  metrics["transport.#{k}"] = v
207
223
  end
208
224
  end
@@ -31,6 +31,7 @@
31
31
  require 'sensu-plugin/metric/cli'
32
32
  require 'rest-client'
33
33
  require 'json'
34
+ require 'base64'
34
35
 
35
36
  #
36
37
  # ES Node Metrics
@@ -55,9 +56,24 @@ class ESMetrics < Sensu::Plugin::Metric::CLI::Graphite
55
56
  proc: proc(&:to_i),
56
57
  default: 9200
57
58
 
58
- def run # rubocop:disable all
59
- ln = RestClient::Resource.new "http://#{config[:host]}:#{config[:port]}/_cluster/nodes/_local", timeout: 30
60
- stats = RestClient::Resource.new "http://#{config[:host]}:#{config[:port]}/_cluster/nodes/_local/stats", timeout: 30
59
+ option :user,
60
+ description: 'Elasticsearch User',
61
+ short: '-u USER',
62
+ long: '--user USER'
63
+
64
+ option :password,
65
+ description: 'Elasticsearch Password',
66
+ short: '-P PASS',
67
+ long: '--password PASS'
68
+
69
+ def run
70
+ headers = {}
71
+ if config[:user] && config[:password]
72
+ auth = 'Basic ' + Base64.encode64("#{config[:user]}:#{config[:password]}").chomp
73
+ headers = { 'Authorization' => auth }
74
+ end
75
+ ln = RestClient::Resource.new "http://#{config[:host]}:#{config[:port]}/_cluster/nodes/_local", timeout: 30, headers: headers
76
+ stats = RestClient::Resource.new "http://#{config[:host]}:#{config[:port]}/_cluster/nodes/_local/stats", timeout: 30, headers: headers
61
77
  ln = JSON.parse(ln.get)
62
78
  stats = JSON.parse(stats.get)
63
79
  timestamp = Time.now.to_i
@@ -2,7 +2,7 @@ module SensuPluginsElasticsearch
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- PATCH = 1
5
+ PATCH = 2
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-elasticsearch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu Plugins and contributors
@@ -30,7 +30,7 @@ cert_chain:
30
30
  8sHuVruarogxxKPBzlL2is4EUb6oN/RdpGx2l4254+nyR+abg//Ed27Ym0PkB4lk
31
31
  HP0m8WSjZmFr109pE/sVsM5jtOCvogyujQOjNVGN4gz1wwPr
32
32
  -----END CERTIFICATE-----
33
- date: 2015-07-14 00:00:00.000000000 Z
33
+ date: 2015-08-12 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: rest-client
@@ -150,14 +150,14 @@ dependencies:
150
150
  requirements:
151
151
  - - '='
152
152
  - !ruby/object:Gem::Version
153
- version: '0.30'
153
+ version: 0.32.1
154
154
  type: :development
155
155
  prerelease: false
156
156
  version_requirements: !ruby/object:Gem::Requirement
157
157
  requirements:
158
158
  - - '='
159
159
  - !ruby/object:Gem::Version
160
- version: '0.30'
160
+ version: 0.32.1
161
161
  - !ruby/object:Gem::Dependency
162
162
  name: rspec
163
163
  requirement: !ruby/object:Gem::Requirement
@@ -237,7 +237,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
237
237
  version: '0'
238
238
  requirements: []
239
239
  rubyforge_project:
240
- rubygems_version: 2.4.6
240
+ rubygems_version: 2.4.8
241
241
  signing_key:
242
242
  specification_version: 4
243
243
  summary: Sensu plugins for elasticsearch
metadata.gz.sig CHANGED
Binary file