fluent-plugin-syslog-tls 0.6.0 → 1.0.0
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/.gitignore +3 -2
- data/README.md +10 -16
- data/docs/configuration.md +0 -8
- data/fluent-plugin-syslog-tls.gemspec +1 -1
- data/lib/fluent/plugin/out_syslog_tls.rb +15 -5
- data/lib/syslog_tls/ssl_transport.rb +5 -21
- data/lib/syslog_tls/version.rb +1 -1
- metadata +5 -7
- data/CHANGELOG.md +0 -19
- data/Gemfile.lock +0 -85
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 194b7c338bc48c3b97b41d51f5258157f0bf4fd1
|
4
|
+
data.tar.gz: 340359e27afeac0a38eb705cfac9cdf5c123cd1e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66915ee3952bcc0eacd004e7b56bb3d7521bb2748c7921b0321dbac1ab09c8fcf356355e3b600287e13251cd545209cacd95edb6f579bfe382cba0309b88d14b
|
7
|
+
data.tar.gz: 8b2e05659598a9dc390350841455c9d003afa520e984de48f30d32974ea014c4b36e21c583edf60e3932cc9a4d0830f66cb32935f9d57d79ee5bb90e7533f847
|
data/.gitignore
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
*.rbc
|
3
3
|
/.config
|
4
4
|
/coverage/
|
5
|
+
/Gemfile.lock
|
5
6
|
/InstalledFiles
|
6
7
|
/pkg/
|
7
8
|
/spec/reports/
|
@@ -29,8 +30,8 @@ build/
|
|
29
30
|
# for a library or gem, you might want to ignore these files since the code is
|
30
31
|
# intended to run in multiple environments; otherwise, check them in:
|
31
32
|
# Gemfile.lock
|
32
|
-
.ruby-version
|
33
|
-
.ruby-gemset
|
33
|
+
# .ruby-version
|
34
|
+
# .ruby-gemset
|
34
35
|
|
35
36
|
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
36
37
|
.rvmrc
|
data/README.md
CHANGED
@@ -8,20 +8,18 @@ Tested with [Papertrail](https://papertrailapp.com) and should also work with [S
|
|
8
8
|
|
9
9
|
|
10
10
|
## Installation
|
11
|
-
|
11
|
+
---
|
12
12
|
```sh
|
13
|
-
$ gem install fluent-plugin-syslog-tls
|
13
|
+
$ gem install fluent-plugin-syslog-tls
|
14
14
|
```
|
15
15
|
or
|
16
16
|
```sh
|
17
|
-
$ td-agent-gem install fluent-plugin-syslog-tls
|
17
|
+
$ td-agent-gem install fluent-plugin-syslog-tls
|
18
18
|
```
|
19
19
|
|
20
|
-
_Hint: Use v0.5+ for Fluentd 0.12 and v1.0+ for Fluentd 0.14. (See Version Compatibility below.)_
|
21
|
-
|
22
20
|
|
23
21
|
## Configuration
|
24
|
-
|
22
|
+
---
|
25
23
|
In your Fluentd configuration, use `@type syslog_tls`. Examples:
|
26
24
|
|
27
25
|
Sumologic:
|
@@ -48,21 +46,17 @@ Papertrail:
|
|
48
46
|
For more configuration options see [configuration docs](docs/configuration.md)
|
49
47
|
|
50
48
|
|
51
|
-
## Version Compatibility
|
52
|
-
|
53
|
-
* v0.x.x of this plugin is compatible with the Fluentd 0.12 series.
|
54
|
-
* v1.x.x of this plugin is compatible with the Fluentd 0.14 series.
|
55
|
-
|
56
|
-
Note that the v1.x series has more features and is more robust than the v0.x series.
|
57
|
-
|
58
|
-
|
59
49
|
## Origin/History
|
60
50
|
|
61
|
-
This plugin is derived from [Fluent::Plugin::SumologicCloudSyslog](https://github.com/acquia/fluent-plugin-sumologic-cloud-syslog). Changes
|
51
|
+
This plugin is derived from [Fluent::Plugin::SumologicCloudSyslog](https://github.com/acquia/fluent-plugin-sumologic-cloud-syslog). Changes from the original:
|
62
52
|
|
53
|
+
* Standard fluent formatting plugins are supported. Json output remains the default.
|
54
|
+
* `token` (Structured Data in syslog terms) is now optional, for syslog hosts that don't require it.
|
55
|
+
* Message payload in the syslog packet no longer duplicates Time or includes Tag by default.
|
63
56
|
|
64
|
-
## License
|
65
57
|
|
58
|
+
## License
|
59
|
+
---
|
66
60
|
Except as otherwise noted this software is licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)
|
67
61
|
|
68
62
|
Licensed under the Apache License, Version 2.0 (the "License");
|
data/docs/configuration.md
CHANGED
@@ -15,14 +15,6 @@ Host represents DNS name of endpoint where should be data sent. Example: `syslog
|
|
15
15
|
|
16
16
|
Example: `6514`
|
17
17
|
|
18
|
-
### ca_cert
|
19
|
-
|
20
|
-
Whether and how to verify the server's TLS certificate. Examples:
|
21
|
-
* ca_cert system - Default; use the system CA certificate store (which must then be configured correctly)
|
22
|
-
* ca_cert false - Disable verification; not recommended
|
23
|
-
* ca_cert /path/to/file - A path+filename to a single CA file
|
24
|
-
* ca_cert /path/to/dir/ - A directory of CA files (in format that OpenSSL can parse); must end with /
|
25
|
-
|
26
18
|
### token
|
27
19
|
|
28
20
|
Some services require a token to identify the account. Example: `ABABABABABABA@99999`. Not required for Papertrail.
|
@@ -32,7 +32,7 @@ Gem::Specification.new do |s|
|
|
32
32
|
s.require_paths = ['lib']
|
33
33
|
s.required_ruby_version = '>= 2.0.0'
|
34
34
|
|
35
|
-
s.add_runtime_dependency 'fluentd', '~> 0.12
|
35
|
+
s.add_runtime_dependency 'fluentd', '~> 0.12'
|
36
36
|
s.add_runtime_dependency 'fluent-mixin-config-placeholders', '~> 0.3'
|
37
37
|
|
38
38
|
s.add_development_dependency 'minitest', '~> 5.8'
|
@@ -23,11 +23,12 @@ module Fluent
|
|
23
23
|
include Fluent::Mixin::ConfigPlaceholders
|
24
24
|
include Fluent::HandleTagNameMixin
|
25
25
|
|
26
|
+
helpers :inject, :formatter, :compat_parameters
|
27
|
+
|
26
28
|
DEFAULT_FORMAT_TYPE = 'json'
|
27
29
|
|
28
30
|
config_param :host, :string
|
29
31
|
config_param :port, :integer
|
30
|
-
config_param :ca_cert, :string, default: 'system'
|
31
32
|
config_param :token, :string, :default => nil
|
32
33
|
config_param :cert, :string, :default => nil
|
33
34
|
config_param :key, :string, :default => nil
|
@@ -43,7 +44,11 @@ module Fluent
|
|
43
44
|
config_param "#{key_name}_key".to_sym, :string, :default => nil
|
44
45
|
end
|
45
46
|
|
46
|
-
|
47
|
+
config_section :format do
|
48
|
+
config_set_default :@type, DEFAULT_FORMAT_TYPE
|
49
|
+
end
|
50
|
+
|
51
|
+
attr_accessor :formatter
|
47
52
|
|
48
53
|
|
49
54
|
def initialize
|
@@ -59,6 +64,11 @@ module Fluent
|
|
59
64
|
|
60
65
|
# This method is called before starting.
|
61
66
|
def configure(conf)
|
67
|
+
if conf['output_type'] && !conf['format']
|
68
|
+
conf['format'] = conf['output_type']
|
69
|
+
end
|
70
|
+
compat_parameters_convert(conf, :inject, :formatter)
|
71
|
+
|
62
72
|
super
|
63
73
|
@host = conf['host']
|
64
74
|
@port = conf['port']
|
@@ -72,8 +82,7 @@ module Fluent
|
|
72
82
|
@mappings[key_name] = conf[conf_key] if conf.key?(conf_key)
|
73
83
|
end
|
74
84
|
|
75
|
-
@formatter =
|
76
|
-
@formatter.configure(conf)
|
85
|
+
@formatter = formatter_create(conf: conf.elements('format').first, default_type: DEFAULT_FORMAT_TYPE)
|
77
86
|
end
|
78
87
|
|
79
88
|
# Get logger for given tag
|
@@ -90,7 +99,7 @@ module Fluent
|
|
90
99
|
end
|
91
100
|
|
92
101
|
def new_logger(tag)
|
93
|
-
transport = ::SyslogTls::SSLTransport.new(host, port,
|
102
|
+
transport = ::SyslogTls::SSLTransport.new(host, port, cert: cert, key: key, max_retries: 3)
|
94
103
|
logger = ::SyslogTls::Logger.new(transport, token)
|
95
104
|
logger.facility(facility)
|
96
105
|
logger.hostname(hostname)
|
@@ -99,6 +108,7 @@ module Fluent
|
|
99
108
|
end
|
100
109
|
|
101
110
|
def format(tag, time, record)
|
111
|
+
record = inject_values_to_record(tag, time, record)
|
102
112
|
@formatter.format(tag, time, record)
|
103
113
|
end
|
104
114
|
|
@@ -20,12 +20,11 @@ module SyslogTls
|
|
20
20
|
class SSLTransport
|
21
21
|
attr_accessor :socket
|
22
22
|
|
23
|
-
attr_reader :host, :port, :
|
23
|
+
attr_reader :host, :port, :cert, :key, :ssl_version
|
24
24
|
|
25
25
|
attr_writer :retries
|
26
26
|
|
27
|
-
def initialize(host, port,
|
28
|
-
@ca_cert = ca_cert
|
27
|
+
def initialize(host, port, cert: nil, key: nil, ssl_version: :TLSv1_2, max_retries: 1)
|
29
28
|
@host = host
|
30
29
|
@port = port
|
31
30
|
@cert = cert
|
@@ -47,24 +46,9 @@ module SyslogTls
|
|
47
46
|
ctx.set_params(verify_mode: OpenSSL::SSL::VERIFY_PEER)
|
48
47
|
ctx.ssl_version = ssl_version
|
49
48
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
ctx.cert_store = OpenSSL::X509::Store.new
|
54
|
-
ctx.cert_store.set_default_paths
|
55
|
-
when false, 'false'
|
56
|
-
ctx.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
57
|
-
when %r{/$} # ends in /
|
58
|
-
ctx.ca_path = ca_cert
|
59
|
-
when String
|
60
|
-
ctx.ca_file = ca_cert
|
61
|
-
end
|
62
|
-
|
63
|
-
ctx.cert = OpenSSL::X509::Certificate.new(File.read(cert)) if cert
|
64
|
-
ctx.key = OpenSSL::PKey::read(File.read(key)) if key
|
65
|
-
socket = OpenSSL::SSL::SSLSocket.new(tcp, ctx)
|
66
|
-
socket.sync_close = true
|
67
|
-
socket
|
49
|
+
ctx.cert = OpenSSL::X509::Certificate.new(File.open(cert)) if cert
|
50
|
+
ctx.key = OpenSSL::PKey::RSA.new(File.open(key)) if key
|
51
|
+
OpenSSL::SSL::SSLSocket.new(tcp, ctx)
|
68
52
|
end
|
69
53
|
|
70
54
|
# Allow to retry on failed writes
|
data/lib/syslog_tls/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-syslog-tls
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- thomas morgan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.12
|
19
|
+
version: '0.12'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.12
|
26
|
+
version: '0.12'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: fluent-mixin-config-placeholders
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -132,9 +132,7 @@ files:
|
|
132
132
|
- ".coveralls.yml"
|
133
133
|
- ".gitignore"
|
134
134
|
- ".travis.yml"
|
135
|
-
- CHANGELOG.md
|
136
135
|
- Gemfile
|
137
|
-
- Gemfile.lock
|
138
136
|
- LICENSE
|
139
137
|
- README.md
|
140
138
|
- Rakefile
|
@@ -174,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
174
172
|
version: '0'
|
175
173
|
requirements: []
|
176
174
|
rubyforge_project:
|
177
|
-
rubygems_version: 2.
|
175
|
+
rubygems_version: 2.5.1
|
178
176
|
signing_key:
|
179
177
|
specification_version: 4
|
180
178
|
summary: Fluent Syslog TLS output plugin
|
data/CHANGELOG.md
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
Note: v0.5+ is compatible with Fluent 0.12. Use v1.0+ with Fluent 0.14.
|
2
|
-
|
3
|
-
#### 0.6.0
|
4
|
-
* Backport `ca_cert` from master to fluent-0.12 branch
|
5
|
-
- Added `ca_cert` to validate the remote certificate. Defaults to 'system' which uses the system certificate store.
|
6
|
-
|
7
|
-
|
8
|
-
#### 0.5.0
|
9
|
-
|
10
|
-
Comparable to 1.0.0 from [master (Fluent 0.14) branch](https://github.com/zarqman/fluent-plugin-syslog-tls).
|
11
|
-
|
12
|
-
* Standard fluent formatting plugins are supported. Json output remains the default.
|
13
|
-
* `token` (Structured Data in syslog terms) is now optional, for syslog hosts that don't require it.
|
14
|
-
* Message payload in the syslog packet no longer duplicates Time or includes Tag by default.
|
15
|
-
|
16
|
-
|
17
|
-
#### < 0.2.0
|
18
|
-
|
19
|
-
From [Fluent::Plugin::SumologicCloudSyslog](https://github.com/acquia/fluent-plugin-sumologic-cloud-syslog)
|
data/Gemfile.lock
DELETED
@@ -1,85 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
fluent-plugin-syslog-tls (0.6.0)
|
5
|
-
fluent-mixin-config-placeholders (~> 0.3)
|
6
|
-
fluentd (~> 0.12.0)
|
7
|
-
|
8
|
-
GEM
|
9
|
-
remote: https://rubygems.org/
|
10
|
-
specs:
|
11
|
-
addressable (2.5.1)
|
12
|
-
public_suffix (~> 2.0, >= 2.0.2)
|
13
|
-
cool.io (1.5.0)
|
14
|
-
coveralls (0.8.21)
|
15
|
-
json (>= 1.8, < 3)
|
16
|
-
simplecov (~> 0.14.1)
|
17
|
-
term-ansicolor (~> 1.3)
|
18
|
-
thor (~> 0.19.4)
|
19
|
-
tins (~> 1.6)
|
20
|
-
crack (0.4.3)
|
21
|
-
safe_yaml (~> 1.0.0)
|
22
|
-
docile (1.1.5)
|
23
|
-
fluent-mixin-config-placeholders (0.4.0)
|
24
|
-
fluentd
|
25
|
-
uuidtools (>= 2.1.5)
|
26
|
-
fluentd (0.12.39)
|
27
|
-
cool.io (>= 1.2.2, < 2.0.0)
|
28
|
-
http_parser.rb (>= 0.5.1, < 0.7.0)
|
29
|
-
json (>= 1.4.3)
|
30
|
-
msgpack (>= 0.5.11, < 2)
|
31
|
-
sigdump (~> 0.2.2)
|
32
|
-
string-scrub (>= 0.0.3, <= 0.0.5)
|
33
|
-
tzinfo (>= 1.0.0)
|
34
|
-
tzinfo-data (>= 1.0.0)
|
35
|
-
yajl-ruby (~> 1.0)
|
36
|
-
hashdiff (0.3.5)
|
37
|
-
http_parser.rb (0.6.0)
|
38
|
-
json (2.1.0)
|
39
|
-
minitest (5.10.3)
|
40
|
-
minitest-stub_any_instance (1.0.1)
|
41
|
-
msgpack (1.1.0)
|
42
|
-
power_assert (1.0.2)
|
43
|
-
public_suffix (2.0.5)
|
44
|
-
rake (10.5.0)
|
45
|
-
safe_yaml (1.0.4)
|
46
|
-
sigdump (0.2.4)
|
47
|
-
simplecov (0.14.1)
|
48
|
-
docile (~> 1.1.0)
|
49
|
-
json (>= 1.8, < 3)
|
50
|
-
simplecov-html (~> 0.10.0)
|
51
|
-
simplecov-html (0.10.1)
|
52
|
-
string-scrub (0.0.5)
|
53
|
-
term-ansicolor (1.6.0)
|
54
|
-
tins (~> 1.0)
|
55
|
-
test-unit (3.2.5)
|
56
|
-
power_assert
|
57
|
-
thor (0.19.4)
|
58
|
-
thread_safe (0.3.6)
|
59
|
-
tins (1.15.0)
|
60
|
-
tzinfo (1.2.3)
|
61
|
-
thread_safe (~> 0.1)
|
62
|
-
tzinfo-data (1.2017.2)
|
63
|
-
tzinfo (>= 1.0.0)
|
64
|
-
uuidtools (2.1.5)
|
65
|
-
webmock (2.3.2)
|
66
|
-
addressable (>= 2.3.6)
|
67
|
-
crack (>= 0.3.2)
|
68
|
-
hashdiff
|
69
|
-
yajl-ruby (1.3.0)
|
70
|
-
|
71
|
-
PLATFORMS
|
72
|
-
ruby
|
73
|
-
|
74
|
-
DEPENDENCIES
|
75
|
-
coveralls
|
76
|
-
fluent-plugin-syslog-tls!
|
77
|
-
minitest (~> 5.8)
|
78
|
-
minitest-stub_any_instance (~> 1.0.0)
|
79
|
-
rake (~> 10.5)
|
80
|
-
simplecov (~> 0.11)
|
81
|
-
test-unit (~> 3.1)
|
82
|
-
webmock (~> 2.0)
|
83
|
-
|
84
|
-
BUNDLED WITH
|
85
|
-
1.14.6
|