sensu-check-esc 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2c320fb828b6c463bb0c6c8c518589c0b3324e8d
4
+ data.tar.gz: 56d48f060fa571e5ddecd977b6bc3c159f255ad7
5
+ SHA512:
6
+ metadata.gz: 0ba62eb73c617a8e6e44d835bbf4eaba25b6dc2fab790fa22619b5fe3caf7a03e2cec56a3a986ab34a849863615645cc4036d66a1ebb4900792c614d4bbe7931
7
+ data.tar.gz: ce6fbc9d7920cda7c188d84b005229d5231d02dab261ee56ad8801f98309b8ff0f4ed3cbab820abca1eae809487792ef4781da6881cec775dccba1ea586f2df3
data/CHANGELOG.md ADDED
File without changes
data/LICENSE ADDED
File without changes
data/README.md ADDED
File without changes
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'sensu-plugin/check/cli'
4
+ require 'restclient'
5
+ require 'json'
6
+
7
+ class SensuPluginsEscApiAlerts < Sensu::Plugin::Check::CLI
8
+
9
+ # These messages are unactionable, so we don't report them
10
+ @@supressed_messages = [
11
+ "api.security.exception::Security Validation Failed: token is expired",
12
+ "api.users.parammissing::userID is missing/empty",
13
+ "api.controller.tokentenantmissing::token missing / tenant identifier missing",
14
+ "api.controller.serviceenpointbindingnotfound::Could not find a binding for the request [users]"
15
+ ]
16
+
17
+ option :server,
18
+ short: '-s https://api.local',
19
+ description: 'Service Api Server DNS endpoint',
20
+ default: 'https://api.local'
21
+
22
+ option :interval,
23
+ description: 'Check Interval',
24
+ short: '-i',
25
+ default: '60'
26
+
27
+ option :esc_stoken,
28
+ description: 'Security Token',
29
+ short: '-t SETME',
30
+ default: 'SETME'
31
+
32
+ def run
33
+ supressed_message_count=0
34
+ messages_list = []
35
+
36
+ begin
37
+ url = "#{config[:server]}/api/statistics/errors/#{config[:interval]}?token=#{config[:esc_stoken]}"
38
+ result = RestClient.get url
39
+ rescue Exception => e
40
+ critical( "Help, i cant talk to #{url}: #{e.message}")
41
+ end
42
+ critical("no result returned") if result.body.length <= 0
43
+ result = JSON.parse(result)
44
+ ok("No Alerts Found") if result.length == 0
45
+ error("Endpoint did not return an array!!") if !result.is_a? Array
46
+
47
+ # Ok, Lets process the result and determine if there is any errors to report!
48
+ result.each do |message|
49
+ error_list = []
50
+ # Each message can have a list of errors, lets examine them.
51
+ message["error_messages"].each do |message_errors|
52
+ if @@supressed_messages.include? "#{message_errors["descriptor"]}::#{message_errors["message"]}"
53
+ supressed_message_count+=1
54
+ else
55
+ error_list.push "#{message_errors["descriptor"]}::#{message_errors["message"]}"
56
+ end
57
+ end
58
+ messages_list.push "tenant: #{message["tenant"]}, logid: #{message["logid"]}, errors: [ #{error_list.join(',')} ]" if error_list.length >= 1
59
+ end
60
+ ok("ESC API ok, supressed_message_count: #{supressed_message_count.to_s}") if messages_list.length == 0
61
+ warning("ESC API Error Count: #{messages_list.length}, supressed_message_count: #{supressed_message_count.to_s},\n#{messages_list.join(",\n")} ")
62
+ end
63
+
64
+ end
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'sensu-plugin/check/cli'
4
+ require 'restclient'
5
+ require 'json'
6
+
7
+ class SensuPluginsEscCriticalErrors < Sensu::Plugin::Check::CLI
8
+
9
+ option :server,
10
+ short: '-s https://api.local',
11
+ description: 'Service Api Server DNS endpoint',
12
+ default: 'https://api.local'
13
+
14
+ option :esc_stoken,
15
+ description: 'Security Token',
16
+ short: '-t SETME',
17
+ default: 'SETME'
18
+
19
+ def run
20
+ begin
21
+ url = "#{config[:server]}/api/monitoring/errors/critical?token=#{config[:esc_stoken]}"
22
+ result = RestClient.get url
23
+ rescue Exception => e
24
+ critical( "Help, i cant talk to #{url}: #{e.message}")
25
+ end
26
+ critical("no result returned") if result.body.length <= 0
27
+ result = JSON.parse(result)
28
+
29
+ if result["response"] == "No Critical Errors Found"
30
+ ok(result["response"])
31
+ elsif result.to_s.include? "does not exist on eventlog.eventstore"
32
+ critical("ESC ENDPOINT ISSUES: #{result["response"]}")
33
+ else
34
+ messages_list = []
35
+ result.each do |message|
36
+ messages_list.push "#{message["logid"]}: #{message["error"]["Message"]}"
37
+ end
38
+ critical("ESC Critical Error Count: #{result.length}, #{messages_list.join(', ')} ")
39
+ end
40
+
41
+
42
+ end
43
+
44
+ end
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'sensu-plugin/check/cli'
4
+ require 'restclient'
5
+ require 'json'
6
+
7
+ # Example Error Message:
8
+ # {"error"=>{"Message"=>"no archive found for assignmentID: 27018"},
9
+ # "descriptor"=>"api.assignments.assignmentarchivenotfound",
10
+ # "logid"=>"959E84B5-9645-4A63-AE7E-9B9FE62AD3B2",
11
+ # "url"=>"http://api.example.com/api/assignments/27018/download",
12
+ # "time_stamp"=>"2013-01-08T12:37:26-0800",
13
+ # "error_link"=>
14
+ # "http://api.example.com/api/eventlog?logid=959E84B5-9645-4A63-AE7E-9B9FE62AD3B2"}
15
+
16
+
17
+ class SensuPluginsEscGeneralErrors < Sensu::Plugin::Check::CLI
18
+
19
+ option :server,
20
+ short: '-s https://api.local',
21
+ description: 'Service Api Server DNS endpoint',
22
+ default: 'https://api.local'
23
+
24
+ option :esc_stoken,
25
+ description: 'Security Token',
26
+ short: '-t SETME',
27
+ default: 'SETME'
28
+
29
+ @@supressed_messages = [
30
+ "Could not find a binding for the request [users]",
31
+ "userID is missing/empty",
32
+ "token missing / tenant identifier missing",
33
+ "User cannot be found using: deleted",
34
+ "Record not found for Email='deleted'",
35
+ "iPad event",
36
+ "Security Validation Failed: token is expired",
37
+ "discussionID must be set"
38
+ ]
39
+
40
+ def run
41
+ supressed_message_count=0
42
+ begin
43
+ url = "#{config[:server]}/api/monitoring/errors/general?token=#{config[:esc_stoken]}"
44
+ result = RestClient.get url
45
+ rescue Exception => e
46
+ critical( "Help, i cant talk to #{url}: #{e.message}")
47
+ end
48
+ critical("no result returned") if result.body.length <= 0
49
+ ok(result.body.to_s) if result.body.to_s.include? "No Errors Found"
50
+ critical("ESC ENDPOINT ISSUES: #{result.body.to_s}") if result.body.to_s.include? "Index for (system_errors) does not exist on eventlog.eventstore"
51
+ result = JSON.parse(result)
52
+ errors_list=[]
53
+ result.each do |message|
54
+ if @@supressed_messages.include? message["error"]["Message"]
55
+ supressed_message_count+=1
56
+ else
57
+ errors_list.push "#{message["error"]["Message"]}:#{message["error"]["error_link"]}"
58
+ end
59
+ end
60
+
61
+ if errors_list.length > 0
62
+ warning("ESC General Error Count: #{result.length}, suppressed messages: #{supressed_message_count.to_s}, #{errors_list.join(', ')} ")
63
+ else
64
+ ok("suppressed messages: #{supressed_message_count.to_s}")
65
+ end
66
+ end
67
+
68
+ end
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'sensu-plugin/check/cli'
4
+ require 'restclient'
5
+ require 'json'
6
+
7
+ class SensuPluginsEscStuckCron < Sensu::Plugin::Check::CLI
8
+
9
+ option :server,
10
+ short: '-s https://api.local',
11
+ description: 'Service Api Server DNS endpoint',
12
+ default: 'https://api.local'
13
+
14
+ option :esc_stoken,
15
+ description: 'Security Token',
16
+ short: '-t SETME',
17
+ default: 'SETME'
18
+
19
+ def run
20
+ begin
21
+ url = "#{config[:server]}/api/statistics/cron?token=#{config[:esc_stoken]}"
22
+ result = RestClient.get url
23
+ rescue Exception => e
24
+ critical( "Help, i cant talk to #{url}: #{e.message}")
25
+ end
26
+ critical("no result returned") if result.body.length <= 0
27
+ result = JSON.parse(result)
28
+ ok("No Stuck Cron's Found") if result.length == 0
29
+ error("Endpoint did not return an array!!") if !result.is_a? Array
30
+
31
+ # Ok, Lets process the result and determine if there is any errors to report!
32
+ stuck_crons = []
33
+ result.each do |cron|
34
+ if cron["enabled"] == true && cron["cron_stuck"] == true
35
+ stuck_crons.push cron["name"]
36
+ end
37
+ end
38
+ ok("ESC no stuck crons") if stuck_crons.length == 0
39
+ warning("ESC Stuck Crons: #{stuck_crons.length},\n#{stuck_crons.join(",\n")} ")
40
+ end
41
+
42
+ end
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'sensu-plugin/check/cli'
4
+ require 'restclient'
5
+ require 'json'
6
+
7
+
8
+ class SensuPluginsEscSystemErrors < Sensu::Plugin::Check::CLI
9
+
10
+ option :server,
11
+ short: '-s https://api.local',
12
+ description: 'Service Api Server DNS endpoint',
13
+ default: 'https://api.local'
14
+
15
+ option :esc_stoken,
16
+ description: 'Security Token',
17
+ short: '-t SETME',
18
+ default: 'SETME'
19
+
20
+ def run
21
+ begin
22
+ url = "https://#{config[:server]}/api/monitoring/errors/system?token=#{config[:esc_stoken]}"
23
+ result = RestClient.get url
24
+ rescue Exception => e
25
+ critical( "Help, i cant talk to #{url}: #{e.message}")
26
+ end
27
+ critical("no result returned") if result.body.length <= 0
28
+ result = JSON.parse(result)
29
+ ok(result["response"]) if result["response"] == "No System Errors Found"
30
+ messages_list = []
31
+ result.each do |message|
32
+ messages_list.push "#{message["logid"]}:#{message["error"]["Message"]}"
33
+ end
34
+ critical("ESC System Error Count: #{result.length}, #{messages_list.join(', ')} ")
35
+ end
36
+
37
+ end
@@ -0,0 +1,9 @@
1
+ module SensuPluginsEsc
2
+ module Version
3
+ MAJOR = 1
4
+ MINOR = 0
5
+ PATCH = 6
6
+
7
+ VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
+ end
9
+ end
@@ -0,0 +1 @@
1
+ require 'sensu-plugins-esc/version'
metadata ADDED
@@ -0,0 +1,177 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sensu-check-esc
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.6
5
+ platform: ruby
6
+ authors:
7
+ - One University Network
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-10-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sensu-plugin
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rest-client
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: redcarpet
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.3'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 3.3.4
51
+ type: :development
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '3.3'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 3.3.4
61
+ - !ruby/object:Gem::Dependency
62
+ name: bundler
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '1.7'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.7'
75
+ - !ruby/object:Gem::Dependency
76
+ name: github-markup
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.3'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.3'
89
+ - !ruby/object:Gem::Dependency
90
+ name: pry
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '0.10'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '0.10'
103
+ - !ruby/object:Gem::Dependency
104
+ name: rake
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '10.0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '10.0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: yard
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '0.8'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '0.8'
131
+ description: A simple plugin to check esc
132
+ email: "<noemail@oneuni.net>"
133
+ executables:
134
+ - sensu-check-esc-api-alerts.rb
135
+ - sensu-check-esc-critical-errors.rb
136
+ - sensu-check-esc-general-errors.rb
137
+ - sensu-check-esc-stuck-cron.rb
138
+ - sensu-check-esc-system-errors.rb
139
+ extensions: []
140
+ extra_rdoc_files: []
141
+ files:
142
+ - CHANGELOG.md
143
+ - LICENSE
144
+ - README.md
145
+ - bin/sensu-check-esc-api-alerts.rb
146
+ - bin/sensu-check-esc-critical-errors.rb
147
+ - bin/sensu-check-esc-general-errors.rb
148
+ - bin/sensu-check-esc-stuck-cron.rb
149
+ - bin/sensu-check-esc-system-errors.rb
150
+ - lib/sensu-plugins-esc.rb
151
+ - lib/sensu-plugins-esc/version.rb
152
+ homepage: https://oneuni.net
153
+ licenses:
154
+ - NONSTANDARD
155
+ metadata: {}
156
+ post_install_message: You can use the embedded Ruby by setting EMBEDDED_RUBY=true
157
+ in /etc/default/sensu
158
+ rdoc_options: []
159
+ require_paths:
160
+ - lib
161
+ required_ruby_version: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: 1.9.3
166
+ required_rubygems_version: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ">="
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ requirements: []
172
+ rubyforge_project:
173
+ rubygems_version: 2.5.1
174
+ signing_key:
175
+ specification_version: 4
176
+ summary: A simple plugin to check eec status
177
+ test_files: []