nagios-splunk 1.0.0 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -13
- data/Rakefile +4 -4
- data/bin/check_splunk +2 -0
- data/lib/nagios/splunk.rb +2 -0
- data/lib/nagios/splunk/check.rb +22 -0
- data/lib/nagios/splunk/cli.rb +19 -1
- data/lib/nagios/splunk/rest_client.rb +8 -4
- data/lib/nagios/splunk/splunk.rb +23 -0
- data/nagios-splunk.gemspec +1 -1
- metadata +18 -17
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
NzhhM2ZjZGE4NjAyYjEwYzczNmY1MzVhMTM5Yjk1ZjkzMmI5ODAxNQ==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 3bb587efb3794782fa89cfd9a82365ad5a8f2df7
|
4
|
+
data.tar.gz: 6695dca86a60dc661ba75db67c77cd9d9f110e1a
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
YzEzYjBmM2NlYTAxYWYzMGRkOTBjY2FhOTgzMjM4NWI5ODRlODQwYmI2ZDVi
|
11
|
-
Y2MzYWNmZDhiNjViMTUwNDMzZDcwZWQ4YTJiYjcwNDg2NDNkY2U=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
Njk2YzlhMjliOTI1MzQ5NWNmY2ZjZDMyMzM0MTYzMzc4ZGQ4MTU1OTM3ZDE5
|
14
|
-
NmJkNDIxZmMwY2ZmMDc1NGEyOWIzMzhkNzUwODZkNzY3ZmE2MzlmMDE5ODQ1
|
15
|
-
ZTcwYjg1OTQwZmQwNjIyOThjYzQyZTJjNzg1ZWMxOTBmNjVkYWI=
|
6
|
+
metadata.gz: 2ae529dbca5d506c8749c6bfed74356e463051e0ac49f8df52af751f9211501625cfc64ca1b92c734c4fb8a530432cdfdb5def42757f126db8d45f63ac7c26cd
|
7
|
+
data.tar.gz: 5e3fe4ef0039241cd2d040a92e8846119d67da564b95ab8ab4c285a22ffe3588ac85b5e41c4c7c0fe8c6f6df1fcf5e9c9ab0086fb4bf650fb05204bfe347adf9
|
data/Rakefile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'rake/testtask'
|
2
|
-
require 'rake/
|
2
|
+
require 'rake/packagetask'
|
3
3
|
|
4
4
|
task :default => :test
|
5
5
|
|
@@ -12,9 +12,9 @@ end
|
|
12
12
|
|
13
13
|
gem_spec = eval(File.read("nagios-splunk.gemspec"))
|
14
14
|
|
15
|
-
Rake::
|
16
|
-
pkg.
|
17
|
-
end
|
15
|
+
#Rake::PackageTask.new(gem_spec) do |pkg|
|
16
|
+
# pkg.spec = gem_spec
|
17
|
+
#end
|
18
18
|
|
19
19
|
desc "remove build files"
|
20
20
|
task :clean do
|
data/bin/check_splunk
CHANGED
data/lib/nagios/splunk.rb
CHANGED
@@ -8,6 +8,7 @@ module Nagios
|
|
8
8
|
POOL_LIST_URL = "/services/licenser/pools"
|
9
9
|
LICENSE_LIST_URL = "/services/licenser/licenses"
|
10
10
|
LICENSE_LOCALSLAVE_URL = "/services/licenser/localslave"
|
11
|
+
CLUSTER_MASTER_INFO_URL = "/services/licenser/localslave"
|
11
12
|
|
12
13
|
autoload :Check, "nagios/splunk/check"
|
13
14
|
autoload :RestClient, "nagios/splunk/rest_client"
|
@@ -15,6 +16,7 @@ module Nagios
|
|
15
16
|
autoload :Exception, "nagios/splunk/exception"
|
16
17
|
autoload :NoPoolsFound, "nagios/splunk/exception"
|
17
18
|
autoload :NoLicensesFound, "nagios/splunk/exception"
|
19
|
+
autoload :Splunk, "nagios/splunk/splunk"
|
18
20
|
|
19
21
|
end
|
20
22
|
end
|
data/lib/nagios/splunk/check.rb
CHANGED
@@ -63,6 +63,28 @@ module Nagios
|
|
63
63
|
return [code, message]
|
64
64
|
end
|
65
65
|
|
66
|
+
def cluster_bundle_status
|
67
|
+
splunk = Splunk.new(rest_client)
|
68
|
+
info = splunk.cluster_master_info
|
69
|
+
errors = info.xpath("//s:key[@name='bundle_validation_errors_on_master']//s:item").map { |n| n.text.chomp }
|
70
|
+
code = (errors.empty? ? 0 : 1)
|
71
|
+
return [code, "Splunk cluster bundle status is #{STATUS[code]} | #{errors.join("\n")}"]
|
72
|
+
end
|
73
|
+
|
74
|
+
def cluster_replication_factor
|
75
|
+
splunk = Splunk.new(rest_client)
|
76
|
+
info = splunk.cluster_master_generation
|
77
|
+
code = info.xpath("//s:key[@name='replication_factor_met']").text.to_i
|
78
|
+
return [code == 1 ? 0 : 1, "Splunk cluster replication factor is #{code == 1 ? "met" : "not met"}"]
|
79
|
+
end
|
80
|
+
|
81
|
+
def cluster_search_factor
|
82
|
+
splunk = Splunk.new(rest_client)
|
83
|
+
info = splunk.cluster_master_generation
|
84
|
+
code = info.xpath("//s:key[@name='search_factor_met']").text.to_i
|
85
|
+
return [code == 1 ? 0 : 1, "Splunk cluster search factor is #{code == 1 ? "met" : "not met"}"]
|
86
|
+
end
|
87
|
+
|
66
88
|
private
|
67
89
|
|
68
90
|
# Compare usage and quota with threshold
|
data/lib/nagios/splunk/cli.rb
CHANGED
@@ -41,6 +41,18 @@ module Nagios
|
|
41
41
|
:default => 'enterprise',
|
42
42
|
:description => "License Stack ID.")
|
43
43
|
|
44
|
+
option(:replication_factor,
|
45
|
+
:long => "--repl-factor",
|
46
|
+
:description => "Check if replication factor is met.")
|
47
|
+
|
48
|
+
option(:search_factor,
|
49
|
+
:long => "--search-factor",
|
50
|
+
:description => "Check if search factor is met.")
|
51
|
+
|
52
|
+
option(:cluster_bundle_status,
|
53
|
+
:long => "--cluster-bundle-status",
|
54
|
+
:description => "Check cluster bundle status.")
|
55
|
+
|
44
56
|
def run(argv = ARGV)
|
45
57
|
parse_options(argv)
|
46
58
|
|
@@ -48,7 +60,13 @@ module Nagios
|
|
48
60
|
splunk = Check.new(client)
|
49
61
|
|
50
62
|
begin
|
51
|
-
if config[:
|
63
|
+
if config[:replication_factor]
|
64
|
+
status, message = splunk.cluster_replication_factor
|
65
|
+
elsif config[:search_factor]
|
66
|
+
status, message = splunk.cluster_search_factor
|
67
|
+
elsif config[:cluster_bundle_status]
|
68
|
+
status, message = splunk.cluster_bundle_status
|
69
|
+
elsif config[:localslave]
|
52
70
|
status, message = splunk.localslave(config[:warn], config[:crit])
|
53
71
|
elsif config[:pool]
|
54
72
|
status, message = splunk.pool_usage(config[:pool], config[:warn], config[:crit])
|
@@ -48,10 +48,14 @@ module Nagios
|
|
48
48
|
# build HTTP connection
|
49
49
|
# @return [Net::HTTP]
|
50
50
|
def client
|
51
|
-
@client ||=
|
52
|
-
|
53
|
-
|
54
|
-
|
51
|
+
@client ||=
|
52
|
+
begin
|
53
|
+
http = Net::HTTP.new(@host, @port)
|
54
|
+
http.use_ssl = @use_ssl
|
55
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE if http.use_ssl?
|
56
|
+
http.set_debug_output $stderr if debug
|
57
|
+
http
|
58
|
+
end
|
55
59
|
end
|
56
60
|
|
57
61
|
def debug
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Nagios
|
2
|
+
module Splunk
|
3
|
+
class Splunk
|
4
|
+
|
5
|
+
attr_accessor :client
|
6
|
+
|
7
|
+
def initialize(client)
|
8
|
+
@client = client
|
9
|
+
end
|
10
|
+
|
11
|
+
def cluster_master_info
|
12
|
+
response = @client.get("/services/cluster/master/info")
|
13
|
+
Nokogiri::Slop(response.body) if response.code.to_i == 200
|
14
|
+
end
|
15
|
+
|
16
|
+
def cluster_master_generation
|
17
|
+
response = @client.get("/services/cluster/master/generation")
|
18
|
+
Nokogiri::Slop(response.body) if response.code.to_i == 200
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/nagios-splunk.gemspec
CHANGED
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nagios-splunk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Horbul
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01
|
11
|
+
date: 2014-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
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
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: mixlib-cli
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
description: Splunk monitoring in Nagios
|
@@ -74,16 +74,17 @@ executables:
|
|
74
74
|
extensions: []
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
77
|
-
- README
|
78
|
-
- Rakefile
|
79
77
|
- bin/check_splunk
|
80
|
-
- lib/nagios/splunk.rb
|
81
78
|
- lib/nagios/splunk/check.rb
|
82
79
|
- lib/nagios/splunk/cli.rb
|
83
80
|
- lib/nagios/splunk/exception.rb
|
84
81
|
- lib/nagios/splunk/rest_client.rb
|
85
|
-
- nagios
|
82
|
+
- lib/nagios/splunk/splunk.rb
|
83
|
+
- lib/nagios/splunk.rb
|
86
84
|
- test/test_helper.rb
|
85
|
+
- README
|
86
|
+
- Rakefile
|
87
|
+
- nagios-splunk.gemspec
|
87
88
|
homepage: https://github.com/mhorbul/nagios-splunk
|
88
89
|
licenses: []
|
89
90
|
metadata: {}
|
@@ -93,17 +94,17 @@ require_paths:
|
|
93
94
|
- lib
|
94
95
|
required_ruby_version: !ruby/object:Gem::Requirement
|
95
96
|
requirements:
|
96
|
-
- -
|
97
|
+
- - '>='
|
97
98
|
- !ruby/object:Gem::Version
|
98
99
|
version: '0'
|
99
100
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
101
|
requirements:
|
101
|
-
- -
|
102
|
+
- - '>='
|
102
103
|
- !ruby/object:Gem::Version
|
103
104
|
version: '0'
|
104
105
|
requirements: []
|
105
106
|
rubyforge_project: nagios-splunk
|
106
|
-
rubygems_version: 2.
|
107
|
+
rubygems_version: 2.0.14
|
107
108
|
signing_key:
|
108
109
|
specification_version: 4
|
109
110
|
summary: Nagios Splunk plugin
|