logstash-input-tcp 4.1.0 → 4.1.2

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: 3e9170fef8955f298473d6ab8d0fb0a5301f915c
4
- data.tar.gz: e82dbe475f4d1c4928da2fd73a5e1e82009a038c
3
+ metadata.gz: 08f07f06c65b618f52c45c54f344183beca7f64f
4
+ data.tar.gz: df32793b0047844212f1fad6cc1a45dd5cf0dbee
5
5
  SHA512:
6
- metadata.gz: 202ff3f0feeb6017794bcfd1f9cdc6775066560fffc658fc3429b6064bf2ee5d1cd02f60087d4ce46149e2e52642e7cfe20439a5d1a905a2f09dab1f4e4387c3
7
- data.tar.gz: 7491b4f37c8b2b2ff90e8d11922143ae75da7c4cb35d78e487f906219829f941bee949f7b3fc666c1cd06cfd80c88a4eb88bda167df9534e3f3b67635860b389
6
+ metadata.gz: 035e413e1bcd0093ac595e4cb92cd8ed7733b5bde73e2114559968f1d103814368a25418969907f9e881f00c737034b4fbed8e7c41ddb9234a1c798e26f36904
7
+ data.tar.gz: 94039950c7de7183b110e84015177b774e0cc91afcca052623ae2e3e2d38694987ec9717256e94fcce519ad95f430a34e31c7e1b67a3e478d09cca6acf022943
@@ -1,3 +1,6 @@
1
+ ## 4.1.1
2
+ - Add documentation for how to use tcp input to accept log4j2 data.
3
+
1
4
  ## 4.1.0
2
5
  - Add support for proxy protocol
3
6
 
data/Gemfile CHANGED
@@ -1,4 +1,11 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in logstash-mass_effect.gemspec
4
3
  gemspec
4
+
5
+ logstash_path = ENV["LOGSTASH_PATH"] || "../../logstash"
6
+ use_logstash_source = ENV["LOGSTASH_SOURCE"] && ENV["LOGSTASH_SOURCE"].to_s == "1"
7
+
8
+ if Dir.exist?(logstash_path) && use_logstash_source
9
+ gem 'logstash-core', :path => "#{logstash_path}/logstash-core"
10
+ gem 'logstash-core-plugin-api', :path => "#{logstash_path}/logstash-core-plugin-api"
11
+ end
@@ -0,0 +1,205 @@
1
+ :plugin: tcp
2
+ :type: input
3
+
4
+ ///////////////////////////////////////////
5
+ START - GENERATED VARIABLES, DO NOT EDIT!
6
+ ///////////////////////////////////////////
7
+ :version: %VERSION%
8
+ :release_date: %RELEASE_DATE%
9
+ :changelog_url: %CHANGELOG_URL%
10
+ :include_path: ../../../../logstash/docs/include
11
+ ///////////////////////////////////////////
12
+ END - GENERATED VARIABLES, DO NOT EDIT!
13
+ ///////////////////////////////////////////
14
+
15
+ [id="plugins-{type}-{plugin}"]
16
+
17
+ === Tcp input plugin
18
+
19
+ include::{include_path}/plugin_header.asciidoc[]
20
+
21
+ ==== Description
22
+
23
+ Read events over a TCP socket.
24
+
25
+ Like stdin and file inputs, each event is assumed to be one line of text.
26
+
27
+ Can either accept connections from clients or connect to a server,
28
+ depending on `mode`.
29
+
30
+ #### Accepting log4j2 logs
31
+
32
+ Log4j2 can send JSON over a socket, and we can use that combined with our tcp
33
+ input to accept the logs.
34
+
35
+ First, we need to configure your application to send logs in JSON over a
36
+ socket. The following log4j2.xml accomplishes this task.
37
+
38
+ Note, you will want to change the `host` and `port` settings in this
39
+ configuration to match your needs.
40
+
41
+ <Configuration>
42
+ <Appenders>
43
+ <Socket name="Socket" host="localhost" port="12345">
44
+ <JsonLayout compact="true" eventEol="true" />
45
+ </Socket>
46
+ </Appenders>
47
+ <Loggers>
48
+ <Root level="info">
49
+ <AppenderRef ref="Socket"/>
50
+ </Root>
51
+ </Loggers>
52
+ </Configuration>
53
+
54
+ To accept this in Logstash, you will want tcp input and a date filter:
55
+
56
+ input {
57
+ tcp {
58
+ port => 12345
59
+ codec => json
60
+ }
61
+ }
62
+
63
+ and add a date filter to take log4j2's `timeMillis` field and use it as the
64
+ event timestamp
65
+
66
+ filter {
67
+ date {
68
+ match => [ "timeMillis", "UNIX_MS" ]
69
+ }
70
+ }
71
+
72
+ [id="plugins-{type}s-{plugin}-options"]
73
+ ==== Tcp Input Configuration Options
74
+
75
+ This plugin supports the following configuration options plus the <<plugins-{type}s-{plugin}-common-options>> described later.
76
+
77
+ [cols="<,<,<",options="header",]
78
+ |=======================================================================
79
+ |Setting |Input type|Required
80
+ | <<plugins-{type}s-{plugin}-host>> |<<string,string>>|No
81
+ | <<plugins-{type}s-{plugin}-mode>> |<<string,string>>, one of `["server", "client"]`|No
82
+ | <<plugins-{type}s-{plugin}-port>> |<<number,number>>|Yes
83
+ | <<plugins-{type}s-{plugin}-proxy_protocol>> |<<boolean,boolean>>|No
84
+ | <<plugins-{type}s-{plugin}-ssl_cert>> |a valid filesystem path|No
85
+ | <<plugins-{type}s-{plugin}-ssl_enable>> |<<boolean,boolean>>|No
86
+ | <<plugins-{type}s-{plugin}-ssl_extra_chain_certs>> |<<array,array>>|No
87
+ | <<plugins-{type}s-{plugin}-ssl_key>> |a valid filesystem path|No
88
+ | <<plugins-{type}s-{plugin}-ssl_key_passphrase>> |<<password,password>>|No
89
+ | <<plugins-{type}s-{plugin}-ssl_verify>> |<<boolean,boolean>>|No
90
+ |=======================================================================
91
+
92
+ Also see <<plugins-{type}s-{plugin}-common-options>> for a list of options supported by all
93
+ input plugins.
94
+
95
+ &nbsp;
96
+
97
+ [id="plugins-{type}s-{plugin}-data_timeout"]
98
+ ===== `data_timeout` (DEPRECATED)
99
+
100
+ * DEPRECATED WARNING: This configuration item is deprecated and may not be available in future versions.
101
+ * Value type is <<number,number>>
102
+ * Default value is `-1`
103
+
104
+
105
+
106
+ [id="plugins-{type}s-{plugin}-host"]
107
+ ===== `host`
108
+
109
+ * Value type is <<string,string>>
110
+ * Default value is `"0.0.0.0"`
111
+
112
+ When mode is `server`, the address to listen on.
113
+ When mode is `client`, the address to connect to.
114
+
115
+ [id="plugins-{type}s-{plugin}-mode"]
116
+ ===== `mode`
117
+
118
+ * Value can be any of: `server`, `client`
119
+ * Default value is `"server"`
120
+
121
+ Mode to operate in. `server` listens for client connections,
122
+ `client` connects to a server.
123
+
124
+ [id="plugins-{type}s-{plugin}-port"]
125
+ ===== `port`
126
+
127
+ * This is a required setting.
128
+ * Value type is <<number,number>>
129
+ * There is no default value for this setting.
130
+
131
+ When mode is `server`, the port to listen on.
132
+ When mode is `client`, the port to connect to.
133
+
134
+ [id="plugins-{type}s-{plugin}-proxy_protocol"]
135
+ ===== `proxy_protocol`
136
+
137
+ * Value type is <<boolean,boolean>>
138
+ * Default value is `false`
139
+
140
+ Proxy protocol support, only v1 is supported at this time
141
+ http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt
142
+
143
+ [id="plugins-{type}s-{plugin}-ssl_cacert"]
144
+ ===== `ssl_cacert` (DEPRECATED)
145
+
146
+ * DEPRECATED WARNING: This configuration item is deprecated and may not be available in future versions.
147
+ * Value type is <<path,path>>
148
+ * There is no default value for this setting.
149
+
150
+ The SSL CA certificate, chainfile or CA path. The system CA path is automatically included.
151
+
152
+ [id="plugins-{type}s-{plugin}-ssl_cert"]
153
+ ===== `ssl_cert`
154
+
155
+ * Value type is <<path,path>>
156
+ * There is no default value for this setting.
157
+
158
+ SSL certificate path
159
+
160
+ [id="plugins-{type}s-{plugin}-ssl_enable"]
161
+ ===== `ssl_enable`
162
+
163
+ * Value type is <<boolean,boolean>>
164
+ * Default value is `false`
165
+
166
+ Enable SSL (must be set for other `ssl_` options to take effect).
167
+
168
+ [id="plugins-{type}s-{plugin}-ssl_extra_chain_certs"]
169
+ ===== `ssl_extra_chain_certs`
170
+
171
+ * Value type is <<array,array>>
172
+ * Default value is `[]`
173
+
174
+ An Array of extra X509 certificates to be added to the certificate chain.
175
+ Useful when the CA chain is not necessary in the system store.
176
+
177
+ [id="plugins-{type}s-{plugin}-ssl_key"]
178
+ ===== `ssl_key`
179
+
180
+ * Value type is <<path,path>>
181
+ * There is no default value for this setting.
182
+
183
+ SSL key path
184
+
185
+ [id="plugins-{type}s-{plugin}-ssl_key_passphrase"]
186
+ ===== `ssl_key_passphrase`
187
+
188
+ * Value type is <<password,password>>
189
+ * Default value is `nil`
190
+
191
+ SSL key passphrase
192
+
193
+ [id="plugins-{type}s-{plugin}-ssl_verify"]
194
+ ===== `ssl_verify`
195
+
196
+ * Value type is <<boolean,boolean>>
197
+ * Default value is `true`
198
+
199
+ Verify the identity of the other end of the SSL connection against the CA.
200
+ For input, sets the field `sslsubject` to that of the client certificate.
201
+
202
+
203
+
204
+ [id="plugins-{type}s-{plugin}-common-options"]
205
+ include::{include_path}/{type}.asciidoc[]
@@ -11,6 +11,48 @@ require "openssl"
11
11
  #
12
12
  # Can either accept connections from clients or connect to a server,
13
13
  # depending on `mode`.
14
+ #
15
+ # #### Accepting log4j2 logs
16
+ #
17
+ # Log4j2 can send JSON over a socket, and we can use that combined with our tcp
18
+ # input to accept the logs.
19
+ #
20
+ # First, we need to configure your application to send logs in JSON over a
21
+ # socket. The following log4j2.xml accomplishes this task.
22
+ #
23
+ # Note, you will want to change the `host` and `port` settings in this
24
+ # configuration to match your needs.
25
+ #
26
+ # <Configuration>
27
+ # <Appenders>
28
+ # <Socket name="Socket" host="localhost" port="12345">
29
+ # <JsonLayout compact="true" eventEol="true" />
30
+ # </Socket>
31
+ # </Appenders>
32
+ # <Loggers>
33
+ # <Root level="info">
34
+ # <AppenderRef ref="Socket"/>
35
+ # </Root>
36
+ # </Loggers>
37
+ # </Configuration>
38
+ #
39
+ # To accept this in Logstash, you will want tcp input and a date filter:
40
+ #
41
+ # input {
42
+ # tcp {
43
+ # port => 12345
44
+ # codec => json
45
+ # }
46
+ # }
47
+ #
48
+ # and add a date filter to take log4j2's `timeMillis` field and use it as the
49
+ # event timestamp
50
+ #
51
+ # filter {
52
+ # date {
53
+ # match => [ "timeMillis", "UNIX_MS" ]
54
+ # }
55
+ # }
14
56
  class LogStash::Inputs::Tcp < LogStash::Inputs::Base
15
57
  config_name "tcp"
16
58
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-input-tcp'
3
- s.version = '4.1.0'
3
+ s.version = '4.1.2'
4
4
  s.licenses = ['Apache License (2.0)']
5
5
  s.summary = "Read events over a TCP socket."
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"
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.require_paths = ["lib"]
11
11
 
12
12
  # Files
13
- s.files = Dir['lib/**/*', 'spec/**/*', '*.gemspec', '*.md', 'CONTRIBUTORS', 'Gemfile', 'LICENSE', 'NOTICE.TXT', 'CHANGELOG.md', 'README.md']
13
+ s.files = Dir["lib/**/*","spec/**/*","*.gemspec","*.md","CONTRIBUTORS","Gemfile","LICENSE","NOTICE.TXT", "vendor/jar-dependencies/**/*.jar", "vendor/jar-dependencies/**/*.rb", "VERSION", "docs/**/*"]
14
14
 
15
15
  # Tests
16
16
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-tcp
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 4.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-21 00:00:00.000000000 Z
11
+ date: 2017-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -140,6 +140,7 @@ files:
140
140
  - LICENSE
141
141
  - NOTICE.TXT
142
142
  - README.md
143
+ - docs/index.asciidoc
143
144
  - lib/logstash/inputs/tcp.rb
144
145
  - logstash-input-tcp.gemspec
145
146
  - spec/inputs/tcp_spec.rb