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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +23 -0
  3. data/.github/workflows/unit-test.yml +36 -0
  4. data/.gitignore +5 -0
  5. data/README.md +8 -4
  6. data/Rakefile +25 -22
  7. data/fluent-plugin-grok-parser.gemspec +1 -1
  8. data/lib/fluent/plugin/grok.rb +9 -2
  9. data/lib/fluent/plugin/parser_grok.rb +3 -1
  10. data/patterns/ecs-v1/aws +33 -0
  11. data/patterns/ecs-v1/bacula +53 -0
  12. data/patterns/ecs-v1/bind +13 -0
  13. data/patterns/ecs-v1/bro +30 -0
  14. data/patterns/ecs-v1/exim +26 -0
  15. data/patterns/ecs-v1/firewalls +111 -0
  16. data/patterns/ecs-v1/grok-patterns +95 -0
  17. data/patterns/ecs-v1/haproxy +40 -0
  18. data/patterns/ecs-v1/httpd +17 -0
  19. data/patterns/ecs-v1/java +34 -0
  20. data/patterns/ecs-v1/junos +13 -0
  21. data/patterns/ecs-v1/linux-syslog +16 -0
  22. data/patterns/ecs-v1/mcollective +4 -0
  23. data/patterns/ecs-v1/mongodb +7 -0
  24. data/patterns/ecs-v1/nagios +124 -0
  25. data/patterns/ecs-v1/postgresql +2 -0
  26. data/patterns/ecs-v1/rails +13 -0
  27. data/patterns/ecs-v1/redis +3 -0
  28. data/patterns/ecs-v1/ruby +2 -0
  29. data/patterns/ecs-v1/squid +6 -0
  30. data/patterns/ecs-v1/zeek +33 -0
  31. data/patterns/{aws → legacy/aws} +1 -1
  32. data/patterns/{bacula → legacy/bacula} +5 -5
  33. data/patterns/legacy/bind +3 -0
  34. data/patterns/{exim → legacy/exim} +8 -2
  35. data/patterns/{firewalls → legacy/firewalls} +2 -2
  36. data/patterns/{grok-patterns → legacy/grok-patterns} +2 -2
  37. data/patterns/{httpd → legacy/httpd} +1 -1
  38. data/patterns/legacy/maven +1 -0
  39. data/patterns/legacy/squid +4 -0
  40. data/test/test_grok_parser.rb +91 -41
  41. metadata +50 -31
  42. data/.travis.yml +0 -7
  43. data/appveyor.yml +0 -23
  44. data/patterns/bind +0 -3
  45. data/patterns/squid +0 -4
  46. /data/patterns/{maven → ecs-v1/maven} +0 -0
  47. /data/patterns/{bro → legacy/bro} +0 -0
  48. /data/patterns/{haproxy → legacy/haproxy} +0 -0
  49. /data/patterns/{java → legacy/java} +0 -0
  50. /data/patterns/{junos → legacy/junos} +0 -0
  51. /data/patterns/{linux-syslog → legacy/linux-syslog} +0 -0
  52. /data/patterns/{mcollective → legacy/mcollective} +0 -0
  53. /data/patterns/{mcollective-patterns → legacy/mcollective-patterns} +0 -0
  54. /data/patterns/{mongodb → legacy/mongodb} +0 -0
  55. /data/patterns/{nagios → legacy/nagios} +0 -0
  56. /data/patterns/{postgresql → legacy/postgresql} +0 -0
  57. /data/patterns/{rails → legacy/rails} +0 -0
  58. /data/patterns/{redis → legacy/redis} +0 -0
  59. /data/patterns/{ruby → legacy/ruby} +0 -0
@@ -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
- test "complex pattern" do
57
- internal_test_grok_pattern("%{COMBINEDAPACHELOG}", '127.0.0.1 192.168.0.1 - [28/Feb/2013:12:00:00 +0900] "GET / HTTP/1.1" 200 777 "-" "Opera/12.0"',
58
- str2time("28/Feb/2013:12:00:00 +0900", "%d/%b/%Y:%H:%M:%S %z"),
59
- {
60
- "clientip" => "127.0.0.1",
61
- "ident" => "192.168.0.1",
62
- "auth" => "-",
63
- "verb" => "GET",
64
- "request" => "/",
65
- "httpversion" => "1.1",
66
- "response" => "200",
67
- "bytes" => "777",
68
- "referrer" => "\"-\"",
69
- "agent" => "\"Opera/12.0\""
70
- },
71
- "time_key" => "timestamp",
72
- "time_format" => "%d/%b/%Y:%H:%M:%S %z"
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
- test "complex pattern" do
338
- d = create_driver(%[
339
- <grok>
340
- pattern %{COMBINEDAPACHELOG}
341
- time_key timestamp
342
- time_format %d/%b/%Y:%H:%M:%S %z
343
- </grok>
344
- ])
345
- expected_record = {
346
- "clientip" => "127.0.0.1",
347
- "ident" => "192.168.0.1",
348
- "auth" => "-",
349
- "verb" => "GET",
350
- "request" => "/",
351
- "httpversion" => "1.1",
352
- "response" => "200",
353
- "bytes" => "777",
354
- "referrer" => "\"-\"",
355
- "agent" => "\"Opera/12.0\""
356
- }
357
- 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|
358
- assert_equal(expected_record, record)
359
- assert_equal(event_time("28/Feb/2013:12:00:00 +0900", format: "%d/%b/%Y:%H:%M:%S %z"), time)
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.2
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: 2020-09-16 00:00:00.000000000 Z
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/mcollective-patterns
110
- - patterns/mongodb
111
- - patterns/nagios
112
- - patterns/postgresql
113
- - patterns/rails
114
- - patterns/redis
115
- - patterns/ruby
116
- - patterns/squid
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: 3.1.2
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
@@ -1,7 +0,0 @@
1
- sudo: false
2
- language: ruby
3
-
4
- rvm:
5
- - 2.4
6
- - 2.5.3
7
- - 2.6.0
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
@@ -1,3 +0,0 @@
1
- BIND9_TIMESTAMP %{MONTHDAY}[-]%{MONTH}[-]%{YEAR} %{TIME}
2
-
3
- BIND9 %{BIND9_TIMESTAMP:timestamp} queries: %{LOGLEVEL:loglevel}: client %{IP:clientip}#%{POSINT:clientport} \(%{GREEDYDATA:query}\): query: %{GREEDYDATA:query} IN %{GREEDYDATA:querytype} \(%{IP:dns}\)
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