logstash-output-opennms 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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: