fluent-plugin-grok-parser 2.6.2 → 2.6.3
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/.github/dependabot.yml +23 -0
- data/.github/workflows/unit-test.yml +36 -0
- data/.gitignore +5 -0
- data/README.md +8 -4
- data/Rakefile +25 -22
- data/fluent-plugin-grok-parser.gemspec +1 -1
- data/lib/fluent/plugin/grok.rb +9 -2
- data/lib/fluent/plugin/parser_grok.rb +3 -1
- data/patterns/ecs-v1/aws +33 -0
- data/patterns/ecs-v1/bacula +53 -0
- data/patterns/ecs-v1/bind +13 -0
- data/patterns/ecs-v1/bro +30 -0
- data/patterns/ecs-v1/exim +26 -0
- data/patterns/ecs-v1/firewalls +111 -0
- data/patterns/ecs-v1/grok-patterns +95 -0
- data/patterns/ecs-v1/haproxy +40 -0
- data/patterns/ecs-v1/httpd +17 -0
- data/patterns/ecs-v1/java +34 -0
- data/patterns/ecs-v1/junos +13 -0
- data/patterns/ecs-v1/linux-syslog +16 -0
- data/patterns/ecs-v1/mcollective +4 -0
- data/patterns/ecs-v1/mongodb +7 -0
- data/patterns/ecs-v1/nagios +124 -0
- data/patterns/ecs-v1/postgresql +2 -0
- data/patterns/ecs-v1/rails +13 -0
- data/patterns/ecs-v1/redis +3 -0
- data/patterns/ecs-v1/ruby +2 -0
- data/patterns/ecs-v1/squid +6 -0
- data/patterns/ecs-v1/zeek +33 -0
- data/patterns/{aws → legacy/aws} +1 -1
- data/patterns/{bacula → legacy/bacula} +5 -5
- data/patterns/legacy/bind +3 -0
- data/patterns/{exim → legacy/exim} +8 -2
- data/patterns/{firewalls → legacy/firewalls} +2 -2
- data/patterns/{grok-patterns → legacy/grok-patterns} +2 -2
- data/patterns/{httpd → legacy/httpd} +1 -1
- data/patterns/legacy/maven +1 -0
- data/patterns/legacy/squid +4 -0
- data/test/test_grok_parser.rb +91 -41
- metadata +50 -31
- data/.travis.yml +0 -7
- data/appveyor.yml +0 -23
- data/patterns/bind +0 -3
- data/patterns/squid +0 -4
- /data/patterns/{maven → ecs-v1/maven} +0 -0
- /data/patterns/{bro → legacy/bro} +0 -0
- /data/patterns/{haproxy → legacy/haproxy} +0 -0
- /data/patterns/{java → legacy/java} +0 -0
- /data/patterns/{junos → legacy/junos} +0 -0
- /data/patterns/{linux-syslog → legacy/linux-syslog} +0 -0
- /data/patterns/{mcollective → legacy/mcollective} +0 -0
- /data/patterns/{mcollective-patterns → legacy/mcollective-patterns} +0 -0
- /data/patterns/{mongodb → legacy/mongodb} +0 -0
- /data/patterns/{nagios → legacy/nagios} +0 -0
- /data/patterns/{postgresql → legacy/postgresql} +0 -0
- /data/patterns/{rails → legacy/rails} +0 -0
- /data/patterns/{redis → legacy/redis} +0 -0
- /data/patterns/{ruby → legacy/ruby} +0 -0
data/test/test_grok_parser.rb
CHANGED
|
@@ -53,24 +53,46 @@ class GrokParserTest < ::Test::Unit::TestCase
|
|
|
53
53
|
{"mac_address" => "DEAD.BEEF.1234", "ip_address" => "127.0.0.1"})
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
56
|
+
sub_test_case "complex pattern w/ grok_pattern_series" do
|
|
57
|
+
test "legacy" do
|
|
58
|
+
internal_test_grok_pattern("%{HTTPD_COMBINEDLOG}", '127.0.0.1 192.168.0.1 - [28/Feb/2013:12:00:00 +0900] "GET / HTTP/1.1" 200 777 "-" "Opera/12.0"',
|
|
59
|
+
str2time("28/Feb/2013:12:00:00 +0900", "%d/%b/%Y:%H:%M:%S %z"),
|
|
60
|
+
{
|
|
61
|
+
"clientip" => "127.0.0.1",
|
|
62
|
+
"ident" => "192.168.0.1",
|
|
63
|
+
"auth" => "-",
|
|
64
|
+
"verb" => "GET",
|
|
65
|
+
"request" => "/",
|
|
66
|
+
"httpversion" => "1.1",
|
|
67
|
+
"response" => "200",
|
|
68
|
+
"bytes" => "777",
|
|
69
|
+
"referrer" => "\"-\"",
|
|
70
|
+
"agent" => "\"Opera/12.0\""
|
|
71
|
+
},
|
|
72
|
+
"time_key" => "timestamp",
|
|
73
|
+
"time_format" => "%d/%b/%Y:%H:%M:%S %z",
|
|
74
|
+
"grok_pattern_series" => "legacy"
|
|
75
|
+
)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
test "ecs-v1" do
|
|
79
|
+
internal_test_grok_pattern("%{HTTPD_COMBINEDLOG}", '127.0.0.1 192.168.0.1 - [28/Feb/2013:12:00:00 +0900] "GET / HTTP/1.1" 200 777 "-" "Opera/12.0"',
|
|
80
|
+
str2time("28/Feb/2013:12:00:00 +0900", "%d/%b/%Y:%H:%M:%S %z"),
|
|
81
|
+
{
|
|
82
|
+
"apache.access.user.identity" => "192.168.0.1",
|
|
83
|
+
"http.request.method" => "GET",
|
|
84
|
+
"http.response.body.bytes" => 777,
|
|
85
|
+
"http.response.status_code" => 200,
|
|
86
|
+
"http.version" => "1.1",
|
|
87
|
+
"source.address" => "127.0.0.1",
|
|
88
|
+
"url.original" => "/",
|
|
89
|
+
"user_agent.original" => "Opera/12.0",
|
|
90
|
+
},
|
|
91
|
+
"time_key" => "timestamp",
|
|
92
|
+
"time_format" => "%d/%b/%Y:%H:%M:%S %z",
|
|
93
|
+
"grok_pattern_series" => "ecs-v1"
|
|
94
|
+
)
|
|
95
|
+
end
|
|
74
96
|
end
|
|
75
97
|
|
|
76
98
|
test "custom pattern" do
|
|
@@ -334,29 +356,57 @@ class GrokParserTest < ::Test::Unit::TestCase
|
|
|
334
356
|
end
|
|
335
357
|
|
|
336
358
|
sub_test_case "grok section" do
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
359
|
+
sub_test_case "complex pattern w/ grok_pattern_series" do
|
|
360
|
+
test "legacy" do
|
|
361
|
+
d = create_driver(%[
|
|
362
|
+
grok_pattern_series legacy
|
|
363
|
+
<grok>
|
|
364
|
+
pattern %{COMBINEDAPACHELOG}
|
|
365
|
+
time_key timestamp
|
|
366
|
+
time_format %d/%b/%Y:%H:%M:%S %z
|
|
367
|
+
</grok>
|
|
368
|
+
])
|
|
369
|
+
expected_record = {
|
|
370
|
+
"clientip" => "127.0.0.1",
|
|
371
|
+
"ident" => "192.168.0.1",
|
|
372
|
+
"auth" => "-",
|
|
373
|
+
"verb" => "GET",
|
|
374
|
+
"request" => "/",
|
|
375
|
+
"httpversion" => "1.1",
|
|
376
|
+
"response" => "200",
|
|
377
|
+
"bytes" => "777",
|
|
378
|
+
"referrer" => "\"-\"",
|
|
379
|
+
"agent" => "\"Opera/12.0\""
|
|
380
|
+
}
|
|
381
|
+
d.instance.parse('127.0.0.1 192.168.0.1 - [28/Feb/2013:12:00:00 +0900] "GET / HTTP/1.1" 200 777 "-" "Opera/12.0"') do |time, record|
|
|
382
|
+
assert_equal(expected_record, record)
|
|
383
|
+
assert_equal(event_time("28/Feb/2013:12:00:00 +0900", format: "%d/%b/%Y:%H:%M:%S %z"), time)
|
|
384
|
+
end
|
|
385
|
+
end
|
|
386
|
+
|
|
387
|
+
test "ecs-v1" do
|
|
388
|
+
d = create_driver(%[
|
|
389
|
+
grok_pattern_series ecs-v1
|
|
390
|
+
<grok>
|
|
391
|
+
pattern %{HTTPD_COMBINEDLOG}
|
|
392
|
+
time_key timestamp
|
|
393
|
+
time_format %d/%b/%Y:%H:%M:%S %z
|
|
394
|
+
</grok>
|
|
395
|
+
])
|
|
396
|
+
expected_record = {
|
|
397
|
+
"apache.access.user.identity" => "192.168.0.1",
|
|
398
|
+
"http.request.method" => "GET",
|
|
399
|
+
"http.response.body.bytes" => 777,
|
|
400
|
+
"http.response.status_code" => 200,
|
|
401
|
+
"http.version" => "1.1",
|
|
402
|
+
"source.address" => "127.0.0.1",
|
|
403
|
+
"url.original" => "/",
|
|
404
|
+
"user_agent.original" => "Opera/12.0"
|
|
405
|
+
}
|
|
406
|
+
d.instance.parse('127.0.0.1 192.168.0.1 - [28/Feb/2013:12:00:00 +0900] "GET / HTTP/1.1" 200 777 "-" "Opera/12.0"') do |time, record|
|
|
407
|
+
assert_equal(expected_record, record)
|
|
408
|
+
assert_equal(event_time("28/Feb/2013:12:00:00 +0900", format: "%d/%b/%Y:%H:%M:%S %z"), time)
|
|
409
|
+
end
|
|
360
410
|
end
|
|
361
411
|
end
|
|
362
412
|
|
metadata
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fluent-plugin-grok-parser
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.6.
|
|
4
|
+
version: 2.6.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- kiyoto
|
|
8
8
|
- Kenji Okimoto
|
|
9
|
-
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: bundler
|
|
@@ -73,7 +72,6 @@ dependencies:
|
|
|
73
72
|
- - "<"
|
|
74
73
|
- !ruby/object:Gem::Version
|
|
75
74
|
version: '2'
|
|
76
|
-
description:
|
|
77
75
|
email:
|
|
78
76
|
- kiyoto@treasure-data.com
|
|
79
77
|
- okimoto@clear-code.com
|
|
@@ -81,39 +79,62 @@ executables: []
|
|
|
81
79
|
extensions: []
|
|
82
80
|
extra_rdoc_files: []
|
|
83
81
|
files:
|
|
82
|
+
- ".github/dependabot.yml"
|
|
83
|
+
- ".github/workflows/unit-test.yml"
|
|
84
|
+
- ".gitignore"
|
|
84
85
|
- ".gitmodules"
|
|
85
|
-
- ".travis.yml"
|
|
86
86
|
- Gemfile
|
|
87
87
|
- LICENSE
|
|
88
88
|
- README.md
|
|
89
89
|
- Rakefile
|
|
90
|
-
- appveyor.yml
|
|
91
90
|
- fluent-plugin-grok-parser.gemspec
|
|
92
91
|
- lib/fluent/plugin/grok.rb
|
|
93
92
|
- lib/fluent/plugin/parser_grok.rb
|
|
94
93
|
- lib/fluent/plugin/parser_multiline_grok.rb
|
|
95
|
-
- patterns/aws
|
|
96
|
-
- patterns/bacula
|
|
97
|
-
- patterns/bind
|
|
98
|
-
- patterns/bro
|
|
99
|
-
- patterns/exim
|
|
100
|
-
- patterns/firewalls
|
|
101
|
-
- patterns/grok-patterns
|
|
102
|
-
- patterns/haproxy
|
|
103
|
-
- patterns/httpd
|
|
104
|
-
- patterns/java
|
|
105
|
-
- patterns/junos
|
|
106
|
-
- patterns/linux-syslog
|
|
107
|
-
- patterns/maven
|
|
108
|
-
- patterns/mcollective
|
|
109
|
-
- patterns/
|
|
110
|
-
- patterns/
|
|
111
|
-
- patterns/
|
|
112
|
-
- patterns/
|
|
113
|
-
- patterns/
|
|
114
|
-
- patterns/
|
|
115
|
-
- patterns/
|
|
116
|
-
- patterns/
|
|
94
|
+
- patterns/ecs-v1/aws
|
|
95
|
+
- patterns/ecs-v1/bacula
|
|
96
|
+
- patterns/ecs-v1/bind
|
|
97
|
+
- patterns/ecs-v1/bro
|
|
98
|
+
- patterns/ecs-v1/exim
|
|
99
|
+
- patterns/ecs-v1/firewalls
|
|
100
|
+
- patterns/ecs-v1/grok-patterns
|
|
101
|
+
- patterns/ecs-v1/haproxy
|
|
102
|
+
- patterns/ecs-v1/httpd
|
|
103
|
+
- patterns/ecs-v1/java
|
|
104
|
+
- patterns/ecs-v1/junos
|
|
105
|
+
- patterns/ecs-v1/linux-syslog
|
|
106
|
+
- patterns/ecs-v1/maven
|
|
107
|
+
- patterns/ecs-v1/mcollective
|
|
108
|
+
- patterns/ecs-v1/mongodb
|
|
109
|
+
- patterns/ecs-v1/nagios
|
|
110
|
+
- patterns/ecs-v1/postgresql
|
|
111
|
+
- patterns/ecs-v1/rails
|
|
112
|
+
- patterns/ecs-v1/redis
|
|
113
|
+
- patterns/ecs-v1/ruby
|
|
114
|
+
- patterns/ecs-v1/squid
|
|
115
|
+
- patterns/ecs-v1/zeek
|
|
116
|
+
- patterns/legacy/aws
|
|
117
|
+
- patterns/legacy/bacula
|
|
118
|
+
- patterns/legacy/bind
|
|
119
|
+
- patterns/legacy/bro
|
|
120
|
+
- patterns/legacy/exim
|
|
121
|
+
- patterns/legacy/firewalls
|
|
122
|
+
- patterns/legacy/grok-patterns
|
|
123
|
+
- patterns/legacy/haproxy
|
|
124
|
+
- patterns/legacy/httpd
|
|
125
|
+
- patterns/legacy/java
|
|
126
|
+
- patterns/legacy/junos
|
|
127
|
+
- patterns/legacy/linux-syslog
|
|
128
|
+
- patterns/legacy/maven
|
|
129
|
+
- patterns/legacy/mcollective
|
|
130
|
+
- patterns/legacy/mcollective-patterns
|
|
131
|
+
- patterns/legacy/mongodb
|
|
132
|
+
- patterns/legacy/nagios
|
|
133
|
+
- patterns/legacy/postgresql
|
|
134
|
+
- patterns/legacy/rails
|
|
135
|
+
- patterns/legacy/redis
|
|
136
|
+
- patterns/legacy/ruby
|
|
137
|
+
- patterns/legacy/squid
|
|
117
138
|
- test/fixtures/my_pattern
|
|
118
139
|
- test/helper.rb
|
|
119
140
|
- test/test_grok_parser.rb
|
|
@@ -123,7 +144,6 @@ homepage: https://github.com/fluent/fluent-plugin-grok-parser
|
|
|
123
144
|
licenses:
|
|
124
145
|
- Apache-2.0
|
|
125
146
|
metadata: {}
|
|
126
|
-
post_install_message:
|
|
127
147
|
rdoc_options: []
|
|
128
148
|
require_paths:
|
|
129
149
|
- lib
|
|
@@ -138,8 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
138
158
|
- !ruby/object:Gem::Version
|
|
139
159
|
version: '0'
|
|
140
160
|
requirements: []
|
|
141
|
-
rubygems_version:
|
|
142
|
-
signing_key:
|
|
161
|
+
rubygems_version: 4.0.20
|
|
143
162
|
specification_version: 4
|
|
144
163
|
summary: Fluentd plugin to support Logstash-inspired Grok format for parsing logs
|
|
145
164
|
test_files:
|
data/.travis.yml
DELETED
data/appveyor.yml
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
version: '{build}'
|
|
2
|
-
|
|
3
|
-
# init:
|
|
4
|
-
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|
|
5
|
-
|
|
6
|
-
install:
|
|
7
|
-
- SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
|
|
8
|
-
- ruby --version
|
|
9
|
-
- gem --version
|
|
10
|
-
- ridk.cmd exec bundle install
|
|
11
|
-
build: off
|
|
12
|
-
test_script:
|
|
13
|
-
- bundle exec rake test
|
|
14
|
-
|
|
15
|
-
# https://www.appveyor.com/docs/installed-software/#ruby
|
|
16
|
-
environment:
|
|
17
|
-
matrix:
|
|
18
|
-
- ruby_version: "26-x64"
|
|
19
|
-
- ruby_version: "26"
|
|
20
|
-
- ruby_version: "25-x64"
|
|
21
|
-
- ruby_version: "25"
|
|
22
|
-
- ruby_version: "24-x64"
|
|
23
|
-
- ruby_version: "24"
|
data/patterns/bind
DELETED
data/patterns/squid
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
# Pattern squid3
|
|
2
|
-
# Documentation of squid3 logs formats can be found at the following link:
|
|
3
|
-
# http://wiki.squid-cache.org/Features/LogFormat
|
|
4
|
-
SQUID3 %{NUMBER:timestamp}\s+%{NUMBER:duration}\s%{IP:client_address}\s%{WORD:cache_result}/%{POSINT:status_code}\s%{NUMBER:bytes}\s%{WORD:request_method}\s%{NOTSPACE:url}\s(%{NOTSPACE:user}|-)\s%{WORD:hierarchy_code}/%{IPORHOST:server}\s%{NOTSPACE:content_type}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|