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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c165a76106a883993225957e07688745f3339cb3
4
- data.tar.gz: 1ef23846b764564b5ec6b71a61de0547b656bae1
3
+ metadata.gz: 51fed44322cd1297e543aa0945ea75f31b26fdda
4
+ data.tar.gz: f6f286dca3e3f7ef6a5c9d4311db4c63caee7b66
5
5
  SHA512:
6
- metadata.gz: 8f4b75b3881e3bf71c14c1589fd4c448c1f062ea7e8782cc31a0bb1e0eb72cd049dbbf92da4400e7c7059a27e9c5fd1f2af7633b634783b1758b44629f1a0af7
7
- data.tar.gz: d1a6baad25139074f2996c3e8adb6721caf2e7e2209191ed9c4db41cfd860a7c76f494ae0cd0e547a78a7d21cdb97fcde8ad627b1b2c27ae5cf3e5b4f049ef47
6
+ metadata.gz: d0076df93fe41f33b997d4a0b644d88f528fa8121c20cb331a9aa2a6994af9b091513f8b18310610146af4101985dc9ac1d9c96139705cae461a2cca0bdf557b
7
+ data.tar.gz: 3d3471be7d1f47b2cd695b843bf88abe43b7a30397a7eaa3853469645c8a4eb1785d4734852fb73e281d4b328c03acf75253e1f6b74b6ead01fa78c8f067081b
data/CHANGELOG.md CHANGED
@@ -1,2 +1,6 @@
1
- ## 1.0.0
2
- - Relax constraint on logstash-core-plugin-api to >= 1.60 <= 2.99
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
- # Each "host" is an identifier, and each item is associated with that host.
13
- # Items are typed on the OpenNMS side. You can send numbers as strings and
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 => :number, :required => true, :default => 4
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
- else
134
+ elsif props_value.is_a?(::Array)
135
+ found[props_key]=props_value
136
+ else
145
137
  if !event.get(props_value)
146
- @logger.warn("Field referenced by #{props_value} is missing")
147
- found[props_key] = props_value.empty? ? "n/a" : props_value
148
- else
149
- found[props_key]=event.get(props_value)
150
- end
151
- end
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.0'
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.0
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: 2016-12-04 00:00:00.000000000 Z
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.0.12
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.0.12
60
+ version: '0'
61
61
  - !ruby/object:Gem::Dependency
62
62
  requirement: !ruby/object:Gem::Requirement
63
63
  requirements: