logstash-output-opennms 0.1.0 → 0.1.1
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 +4 -4
- data/CHANGELOG.md +6 -2
- data/lib/logstash/outputs/opennms.rb +24 -29
- data/logstash-output-opennms.gemspec +4 -3
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51fed44322cd1297e543aa0945ea75f31b26fdda
|
4
|
+
data.tar.gz: f6f286dca3e3f7ef6a5c9d4311db4c63caee7b66
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0076df93fe41f33b997d4a0b644d88f528fa8121c20cb331a9aa2a6994af9b091513f8b18310610146af4101985dc9ac1d9c96139705cae461a2cca0bdf557b
|
7
|
+
data.tar.gz: 3d3471be7d1f47b2cd695b843bf88abe43b7a30397a7eaa3853469645c8a4eb1785d4734852fb73e281d4b328c03acf75253e1f6b74b6ead01fa78c8f067081b
|
data/CHANGELOG.md
CHANGED
@@ -1,2 +1,6 @@
|
|
1
|
-
## 1.
|
2
|
-
-
|
1
|
+
## 0.1.1
|
2
|
+
- The order for event parms can be defined in the
|
3
|
+
logstash config.
|
4
|
+
- Date/Time format was incorrect. Error was fixed.
|
5
|
+
## 0.1.0
|
6
|
+
- Initial version of the logstash-output-opennms.
|
@@ -9,22 +9,8 @@ require "rexml/document"
|
|
9
9
|
# server. The event `@timestamp` will automatically be associated with the
|
10
10
|
# OpenNMS item data.
|
11
11
|
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
# OpenNMS will Do The Right Thing.
|
15
|
-
#
|
16
|
-
# In the OpenNMS UI, ensure that your hostname matches the value referenced by
|
17
|
-
# `opennms_host`. Create the item with the key as it appears in the field
|
18
|
-
# referenced by `opennms_key`. In the item configuration window, ensure that the
|
19
|
-
# type dropdown is set to OpenNMS Trapper. Also be sure to set the type of
|
20
|
-
# information that OpenNMS should expect for this item.
|
21
|
-
#
|
22
|
-
# This plugin does not currently send in batches. While it is possible to do
|
23
|
-
# so, this is not supported. Be careful not to flood your OpenNMS server with
|
24
|
-
# too many events per second.
|
25
|
-
#
|
26
|
-
# NOTE: This plugin will log a warning if a necessary field is missing. It will
|
27
|
-
# not attempt to resend if OpenNMS is down, but will log an error message.
|
12
|
+
# NOTE: This plugin will log a warning if a necessary field is missing. It
|
13
|
+
# will not attempt to resend if OpenNMS is down, but will log an error message.
|
28
14
|
|
29
15
|
class LogStash::Outputs::OpenNMS < LogStash::Outputs::Base
|
30
16
|
config_name "opennms"
|
@@ -56,7 +42,7 @@ class LogStash::Outputs::OpenNMS < LogStash::Outputs::Base
|
|
56
42
|
|
57
43
|
# The field name which holds the OpenNMS ... This can be a sub-field of
|
58
44
|
# the @metadata field.
|
59
|
-
config :opennms_event_uei, :validate => :string, :default => "uei.opennms.org/logstash"
|
45
|
+
config :opennms_event_uei, :validate => :string, :default => "uei.opennms.org/elastic/logstash/generic/state/1"
|
60
46
|
|
61
47
|
# The field name which holds the OpenNMS ... This can be a sub-field of
|
62
48
|
# the @metadata field.
|
@@ -64,7 +50,7 @@ class LogStash::Outputs::OpenNMS < LogStash::Outputs::Base
|
|
64
50
|
|
65
51
|
# The field name which holds the OpenNMS ... This can be a sub-field of
|
66
52
|
# the @metadata field.
|
67
|
-
config :opennms_event_severity, :validate => :
|
53
|
+
config :opennms_event_severity, :validate => :string, :required => true, :default => "Warning"
|
68
54
|
|
69
55
|
# The field name which holds the OpenNMS ... This can be a sub-field of
|
70
56
|
# the @metadata field.
|
@@ -81,6 +67,10 @@ class LogStash::Outputs::OpenNMS < LogStash::Outputs::Base
|
|
81
67
|
# This directive cannot be used in conjunction with the single-value directives
|
82
68
|
# `opennms_key` and `opennms_value`.
|
83
69
|
config :opennms_event_parms, :validate => :hash
|
70
|
+
|
71
|
+
# The field name which holds the OpenNMS ... This can be a sub-field of
|
72
|
+
# the @metadata field.
|
73
|
+
config :opennms_event_parms_order, :validate => :array
|
84
74
|
|
85
75
|
public
|
86
76
|
def register
|
@@ -141,14 +131,16 @@ class LogStash::Outputs::OpenNMS < LogStash::Outputs::Base
|
|
141
131
|
props.each do |props_key,props_value|
|
142
132
|
if props_value.is_a?(::Hash)
|
143
133
|
found[props_key] = validate_props(event,props_value,{})
|
144
|
-
|
134
|
+
elsif props_value.is_a?(::Array)
|
135
|
+
found[props_key]=props_value
|
136
|
+
else
|
145
137
|
if !event.get(props_value)
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
138
|
+
@logger.warn("Field referenced by #{props_value} is missing")
|
139
|
+
found[props_key] = props_value.empty? ? "n/a" : props_value
|
140
|
+
else
|
141
|
+
found[props_key]=event.get(props_value)
|
142
|
+
end
|
143
|
+
end
|
152
144
|
end
|
153
145
|
found
|
154
146
|
end # def validate_props
|
@@ -162,12 +154,14 @@ class LogStash::Outputs::OpenNMS < LogStash::Outputs::Base
|
|
162
154
|
event_doc += "<uei>" + message['uei'] + "</uei>"
|
163
155
|
event_doc += "<source>" + message['source'] + "</source>"
|
164
156
|
event_doc += "<nodeid>" + message['nodeid'] + "</nodeid>" if !message['nodeid'].empty?
|
165
|
-
event_doc += "<time>" + Time.now.strftime("%A %d %B %Y %H:%M:%S o'clock GMT") + "</time>"
|
157
|
+
event_doc += "<time>" + Time.now.strftime("%A, %d %B %Y %H:%M:%S o'clock GMT") + "</time>"
|
166
158
|
event_doc += "<host>" + message['origin'] + "</host>"
|
167
159
|
event_doc += "<interface>" + message['interface'] + "</interface>" if !message['interface'].empty?
|
168
160
|
event_doc += "<service>" + message ['service'] + "</service>" if !message['service'].empty?
|
169
161
|
event_doc += "<parms>"
|
170
|
-
message['parms'].each do |parm_name, parm_value|
|
162
|
+
#message['parms'].each do |parm_name, parm_value|
|
163
|
+
message['parms_order'].each do |parm_name|
|
164
|
+
parm_value = message['parms'][parm_name]
|
171
165
|
next if parm_name == 'severity'
|
172
166
|
event_doc += "<parm>"
|
173
167
|
event_doc += "<parmName><![CDATA[" + parm_name + "]]></parmName>"
|
@@ -175,7 +169,7 @@ class LogStash::Outputs::OpenNMS < LogStash::Outputs::Base
|
|
175
169
|
event_doc += "</parm>"
|
176
170
|
end
|
177
171
|
event_doc += "</parms>"
|
178
|
-
event_doc += "<descr>" + message['description'] + "</descr>" if !message['description'].empty?
|
172
|
+
#event_doc += "<descr>" + message['description'] + "</descr>" if !message['description'].empty?
|
179
173
|
event_doc += "<logmsg>" + message['logmsg'] + "</logmsg>" if !message['logmsg'].empty?
|
180
174
|
event_doc += "<severity>" + message['severity'] + "</severity>"
|
181
175
|
event_doc += "</event>"
|
@@ -233,8 +227,9 @@ class LogStash::Outputs::OpenNMS < LogStash::Outputs::Base
|
|
233
227
|
'description' => @opennms_event_description.to_s,
|
234
228
|
'logmsg' => @opennms_event_logmsg.to_s,
|
235
229
|
'parms' => @opennms_event_parms,
|
230
|
+
'parms_order' => @opennms_event_parms_order
|
236
231
|
}
|
237
|
-
|
232
|
+
|
238
233
|
message = validate_props(event,message_map,{})
|
239
234
|
|
240
235
|
#message['parms'].each do |k,v|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'logstash-output-opennms'
|
3
|
-
s.version = '0.1.
|
3
|
+
s.version = '0.1.1'
|
4
4
|
s.licenses = ["Apache License (2.0)"]
|
5
5
|
s.summary = "This output sends a xml document (event) to an OpenNMS server."
|
6
6
|
s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
|
@@ -20,7 +20,8 @@ Gem::Specification.new do |s|
|
|
20
20
|
# Gem dependencies
|
21
21
|
s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
|
22
22
|
s.add_runtime_dependency "logstash-codec-plain"
|
23
|
-
s.add_development_dependency "logstash-devutils", ">= 0.0.12"
|
23
|
+
#s.add_development_dependency "logstash-devutils", ">= 0.0.12"
|
24
|
+
s.add_development_dependency "logstash-devutils"
|
24
25
|
s.add_development_dependency "logstash-filter-mutate"
|
25
26
|
s.add_development_dependency "longshoreman"
|
26
|
-
end
|
27
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-output-opennms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- schneidermatic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -49,7 +49,7 @@ dependencies:
|
|
49
49
|
requirements:
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: 0
|
52
|
+
version: '0'
|
53
53
|
name: logstash-devutils
|
54
54
|
prerelease: false
|
55
55
|
type: :development
|
@@ -57,7 +57,7 @@ dependencies:
|
|
57
57
|
requirements:
|
58
58
|
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: 0
|
60
|
+
version: '0'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
requirement: !ruby/object:Gem::Requirement
|
63
63
|
requirements:
|