logstash-output-syslog 2.1.4 → 3.0.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: b92e5d61f021cd8d630b491520f02c233bcae7df
4
- data.tar.gz: b50cc369e79d9ab4552de7c46a5cb57d9807bd65
3
+ metadata.gz: 0dc9077162c64d40cf296402a0bb0e936f9de3d2
4
+ data.tar.gz: 790819973615929988a5c0f5ac622f6d3e3e62ac
5
5
  SHA512:
6
- metadata.gz: 258ad74f7c730a7fcb41ffcc6961218f1649a5657d9d2d6d856cf3870da347c22abba9359d608df36fe2a264f947e187e01242c8a9aaf0a16e7ed9afe5f4155e
7
- data.tar.gz: c9df5387c61c812eea0c719bfac116a61f1b5ae45929b05a4c39c24e9aa3d2aa5545602bcf8c429ffe87015bc6350b4ad4b17d1d0a8ac6a00d67dd85daa29c19
6
+ metadata.gz: 1fb8e7e2079dc6f8755be685ff626a44aeb9d0b5c72f7e91918c76e3fcc58e1fa6a0932e89107f55bb05d5dba76765503af407bd9b07f108c2ad2cc9ba6e1765
7
+ data.tar.gz: 9ce3ba29d2a1b4bfbcf222e31ea5e2e944a96d088066a28b6c8caa63218c9cea6c969fe288b52fed22f396bad7cf3bfd330889e45e5486f646788106ae7ef8a2
@@ -1,9 +1,22 @@
1
- # 2.1.4
1
+ ## 3.0.1
2
+ - Relax constraint on logstash-core-plugin-api to >= 1.60 <= 2.99
3
+
4
+ ## 3.0.0
5
+ - breaking,config: Remove deprecated `timestamp` config.
6
+ - internal: migrate to Logstash Event API 2.0
7
+
8
+ ## 2.1.5
9
+ - [Internal] test fix to not depend on json order
10
+
11
+ ## 2.1.4
2
12
  - [Internal] fix tests
3
- # 2.1.3
13
+
14
+ ## 2.1.3
4
15
  - Depend on logstash-core-plugin-api instead of logstash-core, removing the need to mass update plugins on major releases of logstash
5
- # 2.1.2
16
+
17
+ ## 2.1.2
6
18
  - New dependency requirements for logstash-core for the 5.0 release
19
+
7
20
  ## 2.1.1
8
21
  - Add SSL/TLS support to syslog output plugin (thanks @breml)
9
22
  - Added ability to use codecs for this output (thanks @breml)
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012–2015 Elasticsearch <http://www.elastic.co>
1
+ Copyright (c) 2012–2016 Elasticsearch <http://www.elastic.co>
2
2
 
3
3
  Licensed under the Apache License, Version 2.0 (the "License");
4
4
  you may not use this file except in compliance with the License.
data/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  # Logstash Plugin
2
2
 
3
- [![Build
4
- Status](http://build-eu-00.elastic.co/view/LS%20Plugins/view/LS%20Outputs/job/logstash-plugin-output-syslog-unit/badge/icon)](http://build-eu-00.elastic.co/view/LS%20Plugins/view/LS%20Outputs/job/logstash-plugin-output-syslog-unit/)
3
+ [![Travis Build Status](https://travis-ci.org/logstash-plugins/logstash-output-syslog.svg)](https://travis-ci.org/logstash-plugins/logstash-output-syslog)
5
4
 
6
5
  This is a plugin for [Logstash](https://github.com/elastic/logstash).
7
6
 
@@ -56,7 +55,12 @@ gem "logstash-filter-awesome", :path => "/your/local/logstash-filter-awesome"
56
55
  ```
57
56
  - Install plugin
58
57
  ```sh
58
+ # Logstash 2.3 and higher
59
+ bin/logstash-plugin install --no-verify
60
+
61
+ # Prior to Logstash 2.3
59
62
  bin/plugin install --no-verify
63
+
60
64
  ```
61
65
  - Run Logstash with your plugin
62
66
  ```sh
@@ -74,7 +78,12 @@ gem build logstash-filter-awesome.gemspec
74
78
  ```
75
79
  - Install the plugin from the Logstash home
76
80
  ```sh
77
- bin/plugin install /your/local/plugin/logstash-filter-awesome.gem
81
+ # Logstash 2.3 and higher
82
+ bin/logstash-plugin install --no-verify
83
+
84
+ # Prior to Logstash 2.3
85
+ bin/plugin install --no-verify
86
+
78
87
  ```
79
88
  - Start Logstash and proceed to test the plugin
80
89
 
@@ -106,9 +106,6 @@ class LogStash::Outputs::Syslog < LogStash::Outputs::Base
106
106
  # to help you build a new value from other parts of the event.
107
107
  config :sourcehost, :validate => :string, :default => "%{host}"
108
108
 
109
- # timestamp for syslog message
110
- config :timestamp, :validate => :string, :default => "%{@timestamp}", :deprecated => "This setting is no longer necessary. The RFC setting will determine what time format is used."
111
-
112
109
  # application name for syslog message. The new value can include `%{foo}` strings
113
110
  # to help you build a new value from other parts of the event.
114
111
  config :appname, :validate => :string, :default => "LOGSTASH"
@@ -1,10 +1,10 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-output-syslog'
4
- s.version = '2.1.4'
4
+ s.version = '3.0.1'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "Send events to a syslog server."
7
- s.description = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program"
7
+ 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"
8
8
  s.authors = ["Elastic"]
9
9
  s.email = 'info@elastic.co'
10
10
  s.homepage = "http://www.elastic.co/guide/en/logstash/current/index.html"
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.metadata = { "logstash_plugin" => "true", "logstash_group" => "output" }
21
21
 
22
22
  # Gem dependencies
23
- s.add_runtime_dependency "logstash-core-plugin-api", "~> 1.0"
23
+ s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
24
24
  s.add_runtime_dependency 'logstash-codec-plain'
25
25
 
26
26
  s.add_development_dependency 'logstash-devutils'
@@ -3,9 +3,13 @@
3
3
  require "logstash/devutils/rspec/spec_helper"
4
4
  require "logstash/outputs/syslog"
5
5
  require "logstash/codecs/plain"
6
+ require "json"
6
7
 
7
8
  describe LogStash::Outputs::Syslog do
8
9
 
10
+ RFC3164_DATE_TIME_REGEX = "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (0[1-9]|[12][0-9]|3[01]) ([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)"
11
+ RFC3339_DATE_TIME_REGEX = "([0-9]+)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])[Tt]([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]{3})?([Zz]|([+-]([01][0-9]|2[0-3]):[0-5][0-9]))"
12
+
9
13
  it "should register without errors" do
10
14
  plugin = LogStash::Plugin.lookup("output", "syslog").new({"host" => "foo", "port" => "123", "facility" => "kernel", "severity" => "emergency"})
11
15
  expect { plugin.register }.to_not raise_error
@@ -30,21 +34,21 @@ describe LogStash::Outputs::Syslog do
30
34
 
31
35
  context "rfc 3164 and udp by default" do
32
36
  let(:options) { {"host" => "foo", "port" => "123", "facility" => "kernel", "severity" => "emergency"} }
33
- let(:output) { /^<0>.+baz LOGSTASH\[-\]: bar\n/m }
37
+ let(:output) { /^<0>#{RFC3164_DATE_TIME_REGEX} baz LOGSTASH\[-\]: bar\n/m }
34
38
 
35
39
  it_behaves_like "syslog output"
36
40
  end
37
41
 
38
42
  context "rfc 5424 and tcp" do
39
43
  let(:options) { {"rfc" => "rfc5424", "protocol" => "tcp", "host" => "foo", "port" => "123", "facility" => "kernel", "severity" => "emergency"} }
40
- let(:output) { /^<0>1 .+baz LOGSTASH - - - bar\n/m }
44
+ let(:output) { /^<0>1 #{RFC3339_DATE_TIME_REGEX} baz LOGSTASH - - - bar\n/m }
41
45
 
42
46
  it_behaves_like "syslog output"
43
47
  end
44
48
 
45
49
  context "calculate priority" do
46
50
  let(:options) { {"host" => "foo", "port" => "123", "facility" => "mail", "severity" => "critical"} }
47
- let(:output) { /^<18>.+baz LOGSTASH\[-\]: bar\n/m }
51
+ let(:output) { /^<18>#{RFC3164_DATE_TIME_REGEX} baz LOGSTASH\[-\]: bar\n/m }
48
52
 
49
53
  it_behaves_like "syslog output"
50
54
  end
@@ -52,7 +56,7 @@ describe LogStash::Outputs::Syslog do
52
56
  context "sprintf rfc 3164" do
53
57
  let(:event) { LogStash::Event.new({"message" => "bar", "host" => "baz", "facility" => "mail", "severity" => "critical", "appname" => "appname", "procid" => "1000" }) }
54
58
  let(:options) { {"host" => "foo", "port" => "123", "facility" => "%{facility}", "severity" => "%{severity}", "appname" => "%{appname}", "procid" => "%{procid}"} }
55
- let(:output) { /^<18>.+baz appname\[1000\]: bar\n/m }
59
+ let(:output) { /^<18>#{RFC3164_DATE_TIME_REGEX} baz appname\[1000\]: bar\n/m }
56
60
 
57
61
  it_behaves_like "syslog output"
58
62
  end
@@ -60,7 +64,7 @@ describe LogStash::Outputs::Syslog do
60
64
  context "sprintf rfc 5424" do
61
65
  let(:event) { LogStash::Event.new({"message" => "bar", "host" => "baz", "facility" => "mail", "severity" => "critical", "appname" => "appname", "procid" => "1000", "msgid" => "2000" }) }
62
66
  let(:options) { {"rfc" => "rfc5424", "host" => "foo", "port" => "123", "facility" => "%{facility}", "severity" => "%{severity}", "appname" => "%{appname}", "procid" => "%{procid}", "msgid" => "%{msgid}"} }
63
- let(:output) { /^<18>1 .+baz appname 1000 2000 - bar\n/m }
67
+ let(:output) { /^<18>1 #{RFC3339_DATE_TIME_REGEX} baz appname 1000 2000 - bar\n/m }
64
68
 
65
69
  it_behaves_like "syslog output"
66
70
  end
@@ -68,7 +72,7 @@ describe LogStash::Outputs::Syslog do
68
72
  context "use_labels == false, default" do
69
73
  let(:event) { LogStash::Event.new({"message" => "bar", "host" => "baz" }) }
70
74
  let(:options) { {"use_labels" => false, "host" => "foo", "port" => "123" } }
71
- let(:output) { /^<13>.+baz LOGSTASH\[-\]: bar\n/m }
75
+ let(:output) { /^<13>#{RFC3164_DATE_TIME_REGEX} baz LOGSTASH\[-\]: bar\n/m }
72
76
 
73
77
  it_behaves_like "syslog output"
74
78
  end
@@ -76,7 +80,7 @@ describe LogStash::Outputs::Syslog do
76
80
  context "use_labels == false, syslog_pri" do
77
81
  let(:event) { LogStash::Event.new({"message" => "bar", "host" => "baz", "syslog_pri" => "18" }) }
78
82
  let(:options) { {"use_labels" => false, "host" => "foo", "port" => "123" } }
79
- let(:output) { /^<18>.+baz LOGSTASH\[-\]: bar\n/m }
83
+ let(:output) { /^<18>#{RFC3164_DATE_TIME_REGEX} baz LOGSTASH\[-\]: bar\n/m }
80
84
 
81
85
  it_behaves_like "syslog output"
82
86
  end
@@ -84,7 +88,7 @@ describe LogStash::Outputs::Syslog do
84
88
  context "use_labels == false, sprintf" do
85
89
  let(:event) { LogStash::Event.new({"message" => "bar", "host" => "baz", "priority" => "18" }) }
86
90
  let(:options) { {"use_labels" => false, "host" => "foo", "port" => "123", "priority" => "%{priority}" } }
87
- let(:output) { /^<18>.+baz LOGSTASH\[-\]: bar\n/m }
91
+ let(:output) { /^<18>#{RFC3164_DATE_TIME_REGEX} baz LOGSTASH\[-\]: bar\n/m }
88
92
 
89
93
  it_behaves_like "syslog output"
90
94
  end
@@ -92,35 +96,46 @@ describe LogStash::Outputs::Syslog do
92
96
  context "use plain codec with format set" do
93
97
  let(:plain) { LogStash::Codecs::Plain.new({"format" => "%{host} %{message}"}) }
94
98
  let(:options) { {"host" => "foo", "port" => "123", "facility" => "kernel", "severity" => "emergency", "codec" => plain} }
95
- let(:output) { /^<0>.+baz LOGSTASH\[-\]: baz bar\n/m }
99
+ let(:output) { /^<0>#{RFC3164_DATE_TIME_REGEX} baz LOGSTASH\[-\]: baz bar\n/m }
96
100
 
97
101
  it_behaves_like "syslog output"
98
102
  end
99
103
 
100
104
  context "use codec json" do
101
105
  let(:options) { {"host" => "foo", "port" => "123", "facility" => "kernel", "severity" => "emergency", "codec" => "json" } }
102
- let(:output) { /^<0>.+baz LOGSTASH\[-\]: {\"@timestamp\":\"[0-9TZ:.+-]+\",\"host\":\"baz\",\"@version\":\"1\",\"message\":\"bar\"}\n/m }
103
106
 
104
- it_behaves_like "syslog output"
107
+ it "should write event encoded with json codec" do
108
+ expect(subject).to receive(:connect).and_return(socket)
109
+ expect(socket).to receive(:write) do |arg|
110
+ message = arg[/^<0>#{RFC3164_DATE_TIME_REGEX} baz LOGSTASH\[-\]: (.*)/, 1]
111
+ expect(message).not_to be_nil
112
+ message_json = JSON.parse(message)
113
+ expect(message_json).to include("@timestamp")
114
+ expect(message_json).to include("host" => "baz")
115
+ expect(message_json).to include("@version" => "1")
116
+ expect(message_json).to include("message" => "bar")
117
+ end
118
+ subject.receive(event)
119
+ end
105
120
  end
106
121
 
107
122
  context "escape carriage return, newline and newline to \\n" do
108
123
  let(:options) { {"host" => "foo", "port" => "123", "facility" => "kernel", "severity" => "emergency", "message" => "foo\r\nbar\nbaz" } }
109
- let(:output) { /^<0>.+baz LOGSTASH\[-\]: foo\\nbar\\nbaz\n/m }
124
+ let(:output) { /^<0>#{RFC3164_DATE_TIME_REGEX} baz LOGSTASH\[-\]: foo\\nbar\\nbaz\n/m }
110
125
 
111
126
  it_behaves_like "syslog output"
112
127
  end
113
128
 
114
129
  context "tailing newline" do
115
130
  let(:options) { {"host" => "foo", "port" => "123", "facility" => "kernel", "severity" => "emergency", "message" => "%{message}\n" } }
116
- let(:output) { /^<0>.+baz LOGSTASH\[-\]: bar\n/m }
131
+ let(:output) { /^<0>#{RFC3164_DATE_TIME_REGEX} baz LOGSTASH\[-\]: bar\n/m }
117
132
 
118
133
  it_behaves_like "syslog output"
119
134
  end
120
135
 
121
136
  context "tailing carriage return and newline (windows)" do
122
137
  let(:options) { {"host" => "foo", "port" => "123", "facility" => "kernel", "severity" => "emergency", "message" => "%{message}\n" } }
123
- let(:output) { /^<0>.+baz LOGSTASH\[-\]: bar\n/m }
138
+ let(:output) { /^<0>#{RFC3164_DATE_TIME_REGEX} baz LOGSTASH\[-\]: bar\n/m }
124
139
 
125
140
  it_behaves_like "syslog output"
126
141
  end
metadata CHANGED
@@ -1,33 +1,39 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-syslog
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.4
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-24 00:00:00.000000000 Z
11
+ date: 2016-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - ~>
16
+ - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: '1.0'
18
+ version: '1.60'
19
+ - - "<="
20
+ - !ruby/object:Gem::Version
21
+ version: '2.99'
19
22
  name: logstash-core-plugin-api
20
23
  prerelease: false
21
24
  type: :runtime
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - ~>
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '1.60'
30
+ - - "<="
25
31
  - !ruby/object:Gem::Version
26
- version: '1.0'
32
+ version: '2.99'
27
33
  - !ruby/object:Gem::Dependency
28
34
  requirement: !ruby/object:Gem::Requirement
29
35
  requirements:
30
- - - '>='
36
+ - - ">="
31
37
  - !ruby/object:Gem::Version
32
38
  version: '0'
33
39
  name: logstash-codec-plain
@@ -35,13 +41,13 @@ dependencies:
35
41
  type: :runtime
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
- - - '>='
44
+ - - ">="
39
45
  - !ruby/object:Gem::Version
40
46
  version: '0'
41
47
  - !ruby/object:Gem::Dependency
42
48
  requirement: !ruby/object:Gem::Requirement
43
49
  requirements:
44
- - - '>='
50
+ - - ">="
45
51
  - !ruby/object:Gem::Version
46
52
  version: '0'
47
53
  name: logstash-devutils
@@ -49,13 +55,13 @@ dependencies:
49
55
  type: :development
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
- - - '>='
58
+ - - ">="
53
59
  - !ruby/object:Gem::Version
54
60
  version: '0'
55
61
  - !ruby/object:Gem::Dependency
56
62
  requirement: !ruby/object:Gem::Requirement
57
63
  requirements:
58
- - - '>='
64
+ - - ">="
59
65
  - !ruby/object:Gem::Version
60
66
  version: '0'
61
67
  name: logstash-codec-json
@@ -63,10 +69,10 @@ dependencies:
63
69
  type: :development
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
- - - '>='
72
+ - - ">="
67
73
  - !ruby/object:Gem::Version
68
74
  version: '0'
69
- description: This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program
75
+ 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
70
76
  email: info@elastic.co
71
77
  executables: []
72
78
  extensions: []
@@ -93,17 +99,17 @@ require_paths:
93
99
  - lib
94
100
  required_ruby_version: !ruby/object:Gem::Requirement
95
101
  requirements:
96
- - - '>='
102
+ - - ">="
97
103
  - !ruby/object:Gem::Version
98
104
  version: '0'
99
105
  required_rubygems_version: !ruby/object:Gem::Requirement
100
106
  requirements:
101
- - - '>='
107
+ - - ">="
102
108
  - !ruby/object:Gem::Version
103
109
  version: '0'
104
110
  requirements: []
105
111
  rubyforge_project:
106
- rubygems_version: 2.4.5
112
+ rubygems_version: 2.6.3
107
113
  signing_key:
108
114
  specification_version: 4
109
115
  summary: Send events to a syslog server.