sensu-extensions-snmp-trap 0.0.12 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sensu/extensions/snmp-trap.rb +59 -6
- data/lib/sensu/extensions/snmp-trap/snmp-patch.rb +4 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d5ef1ace4e6db46ada2a1af63d43ec120423aa0
|
4
|
+
data.tar.gz: 0e5192ef22a7c8c72d1552f4ab8ec1036459f161
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12221123c60ed7e98bb028e53e6bc7e36e942894a28a01bd54cc8d8886d5ac8f5697a4abc7effa39b5759249f8a0839bf87a8ea4f3e1a4fab40df011a7b2af22
|
7
|
+
data.tar.gz: 3a706a9964258ea92cdeca593a8abe174086f11adf6c4010b39e557e71b4b2e63e0869b42decd7dd504dd7e9b2893e49ec11de622bc68f06fe3990e592aa0e5d
|
@@ -66,20 +66,72 @@ module Sensu
|
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
|
+
def determine_mib_preload(module_name)
|
70
|
+
preload = []
|
71
|
+
if @mib_map[module_name]
|
72
|
+
@mib_map[module_name][:imports].each do |import|
|
73
|
+
if @mib_map[import]
|
74
|
+
preload << @mib_map[import][:mib_file]
|
75
|
+
end
|
76
|
+
preload << determine_mib_preload(import)
|
77
|
+
end
|
78
|
+
else
|
79
|
+
@logger.fatal("snmp trap check extension unknown mib preload", :module_name => module_name)
|
80
|
+
end
|
81
|
+
preload.flatten
|
82
|
+
end
|
83
|
+
|
84
|
+
def create_mib_map!
|
85
|
+
@logger.debug("snmp trap check extension creating mib map", :mibs_dir => options[:mibs_dir])
|
86
|
+
@mib_map = {}
|
87
|
+
Dir.glob(File.join(options[:mibs_dir], "*")).each do |mib_file|
|
88
|
+
mib_contents = IO.read(mib_file)
|
89
|
+
module_name = mib_contents.scan(/([\w-]+)\s+DEFINITIONS\s+::=\s+BEGIN/).flatten.first
|
90
|
+
details = {
|
91
|
+
:mib_file => mib_file,
|
92
|
+
:imports => mib_contents.scan(/FROM\s+([\w-]+)/).flatten
|
93
|
+
}
|
94
|
+
if @mib_map.has_key?(module_name)
|
95
|
+
@logger.debug("snmp trap check extension overriding mib map entry", {
|
96
|
+
:module_name => module_name,
|
97
|
+
:details => details
|
98
|
+
})
|
99
|
+
end
|
100
|
+
@mib_map[module_name] = details
|
101
|
+
end
|
102
|
+
@mib_map.each_key do |module_name|
|
103
|
+
@mib_map[module_name][:preload] = determine_mib_preload(module_name)
|
104
|
+
end
|
105
|
+
puts @mib_map
|
106
|
+
@mib_map
|
107
|
+
end
|
108
|
+
|
69
109
|
def load_mibs!
|
70
110
|
@logger.debug("snmp trap check extension importing mibs", {
|
71
111
|
:mibs_dir => options[:mibs_dir],
|
72
112
|
:imported_dir => options[:imported_dir]
|
73
113
|
})
|
74
|
-
|
75
|
-
|
76
|
-
|
114
|
+
@mib_map.each do |module_name, details|
|
115
|
+
@logger.debug("snmp trap check extension importing mib", {
|
116
|
+
:module_name => module_name,
|
117
|
+
:details => details
|
118
|
+
})
|
77
119
|
begin
|
78
|
-
|
79
|
-
|
120
|
+
@logger.debug("snmp trap check extension mib dependencies", {
|
121
|
+
:module_name => module_name,
|
122
|
+
:details => details
|
123
|
+
})
|
124
|
+
unless details[:preload].empty?
|
125
|
+
arguments = "-p "
|
126
|
+
arguments << details[:preload].map { |preload| preload }.join(" -p ")
|
127
|
+
else
|
128
|
+
arguments = nil
|
129
|
+
end
|
130
|
+
SNMP::MIB.import_module(details[:mib_file], options[:imported_dir], arguments)
|
80
131
|
rescue StandardError, SyntaxError => error
|
81
132
|
@logger.debug("snmp trap check extension failed to import mib", {
|
82
|
-
:
|
133
|
+
:module_name => module_name,
|
134
|
+
:details => details,
|
83
135
|
:error => error
|
84
136
|
})
|
85
137
|
end
|
@@ -160,6 +212,7 @@ module Sensu
|
|
160
212
|
|
161
213
|
def start_trap_processor!
|
162
214
|
@processor = Thread.new do
|
215
|
+
create_mib_map!
|
163
216
|
load_mibs!
|
164
217
|
loop do
|
165
218
|
process_trap(@traps.pop)
|
@@ -13,13 +13,13 @@ module SNMP
|
|
13
13
|
@sensu_logger.warn("snmp trap check extension mib warning", :warning => message.downcase)
|
14
14
|
end
|
15
15
|
|
16
|
-
def import_module(module_file, mib_dir=DEFAULT_MIB_PATH,
|
16
|
+
def import_module(module_file, mib_dir=DEFAULT_MIB_PATH, raw_arguments=nil)
|
17
17
|
raise "smidump tool must be installed" unless import_supported?
|
18
18
|
FileUtils.makedirs mib_dir
|
19
|
-
# PATCH: add
|
20
|
-
|
19
|
+
# PATCH: add arguments support
|
20
|
+
arguments = raw_arguments ? " #{raw_arguments}" : ""
|
21
21
|
# PATCH: redirect STDERR to /dev/null
|
22
|
-
mib_hash = `smidump#{
|
22
|
+
mib_hash = `smidump#{arguments} -k -f python #{module_file} 2>/dev/null`
|
23
23
|
mib = eval_mib_data(mib_hash)
|
24
24
|
if mib
|
25
25
|
module_name = mib["moduleName"]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-extensions-snmp-trap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sensu-Extensions and contributors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sensu-extension
|