sensu-plugins-elasticsearch 1.9.0 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -2
- data/bin/check-es-circuit-breakers.rb +14 -1
- data/bin/check-es-cluster-status.rb +14 -1
- data/bin/check-es-indices-sizes.rb +4 -5
- data/bin/check-es-node-status.rb +14 -1
- data/bin/metrics-es-cluster.rb +14 -1
- data/bin/metrics-es-node-graphite.rb +14 -1
- data/bin/metrics-es-node.rb +14 -1
- data/lib/sensu-plugins-elasticsearch/version.rb +1 -1
- metadata +36 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5642696a8f37d54e95e2be913af5fb1694dee4c86e73e700cc1bb14c4ebdec14
|
4
|
+
data.tar.gz: 253b4e9aaf0a44a6aa1d8224644343b9f5d27d6cadbdb4de73a36e2cb6dfbfb9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c8299a54b50656ac4da0a7682694024586cda2d9228af287de7a83d6579b14155c8aacf01656b170a91ac1728ff1358d55eab3be4621f7146dbff8e843fbd8c
|
7
|
+
data.tar.gz: 519e411301630fcfb1e40af4af6b369f4f08ff2aea3308287aba2f5a9981444fdaea84aa4e348b6c26431797fc794b6d0b5b05f3b6bef50b2d631a91bbe19f0c
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,10 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
|
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
7
|
|
8
|
+
## [1.10.0] - 2018-02-19
|
9
|
+
### Added
|
10
|
+
- check-es-circuit-breakers.rb, check-es-cluster-status.rb, check-es-indices-sizes.rb, check-es-node-status.rb, metrics-es-cluster.rb, metrics-es-node-graphite.rb, metrics-es-node.rb: added `--cert-file` option which allows you to specify a ca-cert to be used to verify TLS (@csoleimani) (@majormoses)
|
11
|
+
|
8
12
|
## [1.9.0] - 2018-02-19
|
9
13
|
### Changed
|
10
14
|
- bin/check-es-node-status.rb: updated to check the status of all nodes in a cluster (@cihangirbesiktas)
|
@@ -213,8 +217,9 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
|
|
213
217
|
- initial release
|
214
218
|
|
215
219
|
|
216
|
-
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-elasticsearch/compare/1.
|
217
|
-
[1.
|
220
|
+
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-elasticsearch/compare/1.10.0...HEAD
|
221
|
+
[1.10.0]: https://github.com/sensu-plugins/sensu-plugins-elasticsearch/compare/1.9.0...1.10.0
|
222
|
+
[1.9.0]: https://github.com/sensu-plugins/sensu-plugins-elasticsearch/compare/1.8.1...1.9.0
|
218
223
|
[1.8.1]: https://github.com/sensu-plugins/sensu-plugins-elasticsearch/compare/1.8.0...1.8.1
|
219
224
|
[1.8.0]: https://github.com/sensu-plugins/sensu-plugins-elasticsearch/compare/1.7.1...1.8.0
|
220
225
|
[1.7.1]: https://github.com/sensu-plugins/sensu-plugins-elasticsearch/compare/1.7.0...1.7.1
|
@@ -69,6 +69,10 @@ class ESCircuitBreaker < Sensu::Plugin::Check::CLI
|
|
69
69
|
short: '-e',
|
70
70
|
long: '--https'
|
71
71
|
|
72
|
+
option :cert_file,
|
73
|
+
description: 'Cert file to use',
|
74
|
+
long: '--cert-file CERT'
|
75
|
+
|
72
76
|
option :localhost,
|
73
77
|
description: 'only check local node',
|
74
78
|
short: '-l',
|
@@ -89,7 +93,16 @@ class ESCircuitBreaker < Sensu::Plugin::Check::CLI
|
|
89
93
|
'http'
|
90
94
|
end
|
91
95
|
|
92
|
-
r =
|
96
|
+
r = if config[:cert_file]
|
97
|
+
RestClient::Resource.new("#{protocol}://#{config[:host]}:#{config[:port]}#{resource}",
|
98
|
+
ssl_ca_file: config[:cert_file].to_s,
|
99
|
+
timeout: config[:timeout],
|
100
|
+
headers: headers)
|
101
|
+
else
|
102
|
+
RestClient::Resource.new("#{protocol}://#{config[:host]}:#{config[:port]}#{resource}",
|
103
|
+
timeout: config[:timeout],
|
104
|
+
headers: headers)
|
105
|
+
end
|
93
106
|
JSON.parse(r.get)
|
94
107
|
rescue Errno::ECONNREFUSED
|
95
108
|
critical 'Connection refused'
|
@@ -83,6 +83,10 @@ class ESClusterStatus < Sensu::Plugin::Check::CLI
|
|
83
83
|
short: '-e',
|
84
84
|
long: '--https'
|
85
85
|
|
86
|
+
option :cert_file,
|
87
|
+
description: 'Cert file to use',
|
88
|
+
long: '--cert-file CERT_FILE'
|
89
|
+
|
86
90
|
option :alert_status,
|
87
91
|
description: 'Only alert when status matches given RED/YELLOW/GREEN or if blank all statuses',
|
88
92
|
long: '--alert-status STATUS',
|
@@ -102,7 +106,16 @@ class ESClusterStatus < Sensu::Plugin::Check::CLI
|
|
102
106
|
'http'
|
103
107
|
end
|
104
108
|
|
105
|
-
r =
|
109
|
+
r = if config[:cert_file]
|
110
|
+
RestClient::Resource.new("#{protocol}://#{config[:host]}:#{config[:port]}#{resource}",
|
111
|
+
ssl_ca_file: config[:cert_file].to_s,
|
112
|
+
timeout: config[:timeout],
|
113
|
+
headers: headers)
|
114
|
+
else
|
115
|
+
RestClient::Resource.new("#{protocol}://#{config[:host]}:#{config[:port]}#{resource}",
|
116
|
+
timeout: config[:timeout],
|
117
|
+
headers: headers)
|
118
|
+
end
|
106
119
|
JSON.parse(r.get)
|
107
120
|
rescue Errno::ECONNREFUSED
|
108
121
|
critical 'Connection refused'
|
@@ -159,12 +159,11 @@ class ESCheckIndicesSizes < Sensu::Plugin::Check::CLI
|
|
159
159
|
def run
|
160
160
|
node_fs_stats = client.nodes.stats metric: 'fs,indices'
|
161
161
|
nodes_being_used = node_fs_stats['nodes'].values.select { |node| node['indices']['store']['size_in_bytes'] > 0 }
|
162
|
-
#
|
163
|
-
# rubocop:disable
|
164
|
-
used_in_bytes = nodes_being_used.map { |node| node['fs']['data'].map { |data| data['total_in_bytes'] - data['available_in_bytes'] }.flatten }.flatten.inject { |sum, x| sum + x }
|
165
|
-
# rubocop:enable LineLength
|
162
|
+
# TODO: come back and cleanup all these rubocop disables with a little refactor
|
163
|
+
# rubocop:disable Style/SingleLineBlockParams
|
164
|
+
used_in_bytes = nodes_being_used.map { |node| node['fs']['data'].map { |data| data['total_in_bytes'] - data['available_in_bytes'] }.flatten }.flatten.inject { |sum, x| sum + x } # rubocop:disable LineLength
|
166
165
|
total_in_bytes = nodes_being_used.map { |node| node['fs']['data'].map { |data| data['total_in_bytes'] }.flatten }.flatten.inject { |sum, x| sum + x }
|
167
|
-
# rubocop:enable SingleLineBlockParams
|
166
|
+
# rubocop:enable Style/SingleLineBlockParams LineLength
|
168
167
|
|
169
168
|
if config[:maximum_megabytes] > 0
|
170
169
|
target_bytes_used = config[:maximum_megabytes] * 1_000_000
|
data/bin/check-es-node-status.rb
CHANGED
@@ -68,6 +68,10 @@ class ESNodeStatus < Sensu::Plugin::Check::CLI
|
|
68
68
|
short: '-e',
|
69
69
|
long: '--https'
|
70
70
|
|
71
|
+
option :cert_file,
|
72
|
+
description: 'Cert file to use',
|
73
|
+
long: '--cert-file CERT_FILE'
|
74
|
+
|
71
75
|
option :all,
|
72
76
|
description: 'Check all nodes in the ES cluster',
|
73
77
|
short: '-a',
|
@@ -87,7 +91,16 @@ class ESNodeStatus < Sensu::Plugin::Check::CLI
|
|
87
91
|
'http'
|
88
92
|
end
|
89
93
|
|
90
|
-
r =
|
94
|
+
r = if config[:cert_file]
|
95
|
+
RestClient::Resource.new("#{protocol}://#{config[:host]}:#{config[:port]}#{resource}",
|
96
|
+
ssl_ca_file: config[:cert_file].to_s,
|
97
|
+
timeout: config[:timeout],
|
98
|
+
headers: headers)
|
99
|
+
else
|
100
|
+
RestClient::Resource.new("#{protocol}://#{config[:host]}:#{config[:port]}#{resource}",
|
101
|
+
timeout: config[:timeout],
|
102
|
+
headers: headers)
|
103
|
+
end
|
91
104
|
r.get
|
92
105
|
rescue Errno::ECONNREFUSED
|
93
106
|
critical 'Connection refused'
|
data/bin/metrics-es-cluster.rb
CHANGED
@@ -90,6 +90,10 @@ class ESClusterMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
90
90
|
short: '-e',
|
91
91
|
long: '--https'
|
92
92
|
|
93
|
+
option :cert_file,
|
94
|
+
description: 'Cert file to use',
|
95
|
+
long: '--cert-file CERT_FILE'
|
96
|
+
|
93
97
|
def acquire_es_version
|
94
98
|
info = get_es_resource('/')
|
95
99
|
info['version']['number']
|
@@ -108,7 +112,16 @@ class ESClusterMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
108
112
|
'http'
|
109
113
|
end
|
110
114
|
|
111
|
-
r =
|
115
|
+
r = if config[:cert_file]
|
116
|
+
RestClient::Resource.new("#{protocol}://#{config[:host]}:#{config[:port]}#{resource}",
|
117
|
+
ssl_ca_file: config[:cert_file].to_s,
|
118
|
+
timeout: config[:timeout],
|
119
|
+
headers: headers)
|
120
|
+
else
|
121
|
+
RestClient::Resource.new("#{protocol}://#{config[:host]}:#{config[:port]}#{resource}",
|
122
|
+
timeout: config[:timeout],
|
123
|
+
headers: headers)
|
124
|
+
end
|
112
125
|
JSON.parse(r.get)
|
113
126
|
rescue Errno::ECONNREFUSED
|
114
127
|
warning 'Connection refused'
|
@@ -115,6 +115,10 @@ class ESNodeGraphiteMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
115
115
|
short: '-e',
|
116
116
|
long: '--https'
|
117
117
|
|
118
|
+
option :cert_file,
|
119
|
+
description: 'Cert file to use',
|
120
|
+
long: '--cert-file CERT_FILE'
|
121
|
+
|
118
122
|
def get_es_resource(resource)
|
119
123
|
headers = {}
|
120
124
|
if config[:user] && config[:password]
|
@@ -128,7 +132,16 @@ class ESNodeGraphiteMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
128
132
|
'http'
|
129
133
|
end
|
130
134
|
|
131
|
-
r =
|
135
|
+
r = if config[:cert_file]
|
136
|
+
RestClient::Resource.new("#{protocol}://#{config[:host]}:#{config[:port]}#{resource}",
|
137
|
+
ssl_ca_file: config[:cert_file].to_s,
|
138
|
+
timeout: config[:timeout],
|
139
|
+
headers: headers)
|
140
|
+
else
|
141
|
+
RestClient::Resource.new("#{protocol}://#{config[:server]}:#{config[:port]}#{resource}?pretty",
|
142
|
+
timeout: config[:timeout],
|
143
|
+
headers: headers)
|
144
|
+
end
|
132
145
|
JSON.parse(r.get)
|
133
146
|
rescue Errno::ECONNREFUSED
|
134
147
|
warning 'Connection refused'
|
data/bin/metrics-es-node.rb
CHANGED
@@ -71,6 +71,10 @@ class ESMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
71
71
|
short: '-e',
|
72
72
|
long: '--https'
|
73
73
|
|
74
|
+
option :cert_file,
|
75
|
+
description: 'Cert file to use',
|
76
|
+
long: '--cert CERT_FILE'
|
77
|
+
|
74
78
|
def acquire_es_version
|
75
79
|
info = get_es_resource('/')
|
76
80
|
info['version']['number']
|
@@ -89,7 +93,16 @@ class ESMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
89
93
|
'http'
|
90
94
|
end
|
91
95
|
|
92
|
-
r =
|
96
|
+
r = if config[:cert_file]
|
97
|
+
RestClient::Resource.new("#{protocol}://#{config[:host]}:#{config[:port]}#{resource}",
|
98
|
+
ssl_ca_file: config[:cert_file].to_s,
|
99
|
+
timeout: config[:timeout],
|
100
|
+
headers: headers)
|
101
|
+
else
|
102
|
+
RestClient::Resource.new("#{protocol}://#{config[:host]}:#{config[:port]}#{resource}",
|
103
|
+
timeout: config[:timeout],
|
104
|
+
headers: headers)
|
105
|
+
end
|
93
106
|
JSON.parse(r.get)
|
94
107
|
rescue Errno::ECONNREFUSED
|
95
108
|
warning 'Connection refused'
|
metadata
CHANGED
@@ -1,43 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-elasticsearch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.10.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: 2018-02-
|
11
|
+
date: 2018-02-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: rest-client
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 1.8.0
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - '='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 1.8.0
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: elasticsearch
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 1.0.14
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 1.0.14
|
41
13
|
- !ruby/object:Gem::Dependency
|
42
14
|
name: aws-es-transport
|
43
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,6 +50,34 @@ dependencies:
|
|
78
50
|
- - "~>"
|
79
51
|
- !ruby/object:Gem::Version
|
80
52
|
version: '2.1'
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: elasticsearch
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: 1.0.14
|
60
|
+
type: :runtime
|
61
|
+
prerelease: false
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 1.0.14
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: rest-client
|
69
|
+
requirement: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - '='
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 1.8.0
|
74
|
+
type: :runtime
|
75
|
+
prerelease: false
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - '='
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: 1.8.0
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: sensu-plugin
|
83
83
|
requirement: !ruby/object:Gem::Requirement
|
@@ -177,33 +177,33 @@ dependencies:
|
|
177
177
|
- !ruby/object:Gem::Version
|
178
178
|
version: '3.2'
|
179
179
|
- !ruby/object:Gem::Dependency
|
180
|
-
name:
|
180
|
+
name: rspec
|
181
181
|
requirement: !ruby/object:Gem::Requirement
|
182
182
|
requirements:
|
183
183
|
- - "~>"
|
184
184
|
- !ruby/object:Gem::Version
|
185
|
-
version:
|
185
|
+
version: '3.1'
|
186
186
|
type: :development
|
187
187
|
prerelease: false
|
188
188
|
version_requirements: !ruby/object:Gem::Requirement
|
189
189
|
requirements:
|
190
190
|
- - "~>"
|
191
191
|
- !ruby/object:Gem::Version
|
192
|
-
version:
|
192
|
+
version: '3.1'
|
193
193
|
- !ruby/object:Gem::Dependency
|
194
|
-
name:
|
194
|
+
name: rubocop
|
195
195
|
requirement: !ruby/object:Gem::Requirement
|
196
196
|
requirements:
|
197
197
|
- - "~>"
|
198
198
|
- !ruby/object:Gem::Version
|
199
|
-
version:
|
199
|
+
version: 0.40.0
|
200
200
|
type: :development
|
201
201
|
prerelease: false
|
202
202
|
version_requirements: !ruby/object:Gem::Requirement
|
203
203
|
requirements:
|
204
204
|
- - "~>"
|
205
205
|
- !ruby/object:Gem::Version
|
206
|
-
version:
|
206
|
+
version: 0.40.0
|
207
207
|
- !ruby/object:Gem::Dependency
|
208
208
|
name: yard
|
209
209
|
requirement: !ruby/object:Gem::Requirement
|