logstash-filter-request_parser 0.2.11
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 +7 -0
- data/CHANGELOG.md +13 -0
- data/Gemfile +12 -0
- data/README.md +62 -0
- data/VERSION +1 -0
- data/docs/index.asciidoc +87 -0
- data/lib/logstash-filter-request_parser_jars.rb +5 -0
- data/lib/logstash/filters/request_parser.rb +12 -0
- data/logstash-filter-request_parser.gemspec +22 -0
- data/vendor/jar-dependencies/org/logstashplugins/logstash-filter-request_parser/0.2.11/logstash-filter-request_parser-0.2.11.jar +0 -0
- metadata +107 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1295ed7c348d2ccb8db0f48d465ee5434fa0358f4b825c361191065fddcafcc0
|
4
|
+
data.tar.gz: c3f8ecbe5afbb2192e685489e97d230ca20d00fe53bce4d937bcfd1dad72ea03
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3e309a1d827e445c350f1640ff9a5cf2d7784d998aae9b6ba87816d3d9b7865bd0c8aee460837b6b64dd0577b6971edc54039347a75d9faaa3448f19b26e568e
|
7
|
+
data.tar.gz: 4128161876a365d4c4b7ca0363bf1954440408dafd26d6d747481453e86a64a158cae39d7c5b85d926f76ff944a03285624a7e7d40ad3804622f088e735010fa
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
## 1.0.0
|
2
|
+
- Updated for GA release of native support for Java plugins. Includes:
|
3
|
+
- Improved Gradle task wrappers
|
4
|
+
- Removal of auto-generated Ruby source files
|
5
|
+
|
6
|
+
## 0.2.0
|
7
|
+
- Updated for beta version of native support for Java plugins. Includes:
|
8
|
+
- Gradle task wrappers
|
9
|
+
- Updated plugin API
|
10
|
+
- Full feature parity with Ruby plugins
|
11
|
+
|
12
|
+
## 0.0.1
|
13
|
+
- Initial version for experimental v0 of native support for Java plugins.
|
data/Gemfile
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
# AUTOGENERATED BY THE GRADLE SCRIPT. EDITS WILL BE OVERWRITTEN.
|
2
|
+
source 'https://rubygems.org'
|
3
|
+
|
4
|
+
gemspec
|
5
|
+
|
6
|
+
logstash_path = ENV["LOGSTASH_PATH"] || "../../logstash"
|
7
|
+
use_logstash_source = ENV["LOGSTASH_SOURCE"] && ENV["LOGSTASH_SOURCE"].to_s == "1"
|
8
|
+
|
9
|
+
if Dir.exist?(logstash_path) && use_logstash_source
|
10
|
+
gem 'logstash-core', :path => "#{logstash_path}/logstash-core"
|
11
|
+
gem 'logstash-core-plugin-api', :path => "#{logstash_path}/logstash-core-plugin-api"
|
12
|
+
end
|
data/README.md
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
# Logstash Request Parser
|
2
|
+
|
3
|
+
The `request_parser` plugin parses the `request` field from the access log or F5 ASM or LTM log. It extracts the `path`, `query` and `parameters` and decodes it. With this deeper parsing, it can be analyzed further, and is easy to read for humans.
|
4
|
+
|
5
|
+
It is fully free and fully open source. The license is Apache 2.0, meaning you are free to use it however you want.
|
6
|
+
|
7
|
+
This is a Request Parser plugin for [Logstash](https://github.com/elastic/logstash).
|
8
|
+
|
9
|
+
## Sample
|
10
|
+
|
11
|
+
```logstash
|
12
|
+
input { stdin { } }
|
13
|
+
|
14
|
+
# '1.1.1.1 - - [09/Jul/2019:11:41:32 +0200] "GET /api/v4/projects/4/merge_requests?page=1&per_page=100&state=opened HTTP/2.0" 304 0 "" "Mozilla/5.0"'
|
15
|
+
|
16
|
+
filter {
|
17
|
+
grok {
|
18
|
+
match => { "message" => "%{COMBINEDAPACHELOG}" }
|
19
|
+
}
|
20
|
+
date {
|
21
|
+
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
filter {
|
26
|
+
request_parser {
|
27
|
+
request => "request"
|
28
|
+
target_path => "url.path"
|
29
|
+
target_query => "url.query"
|
30
|
+
target_query_parameters => "url.parameters"
|
31
|
+
parse_query_parameters => true # requires ES mapping as non-indexed object
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
output {
|
36
|
+
elasticsearch { hosts => ["localhost:9200"] }
|
37
|
+
stdout { codec => json }
|
38
|
+
}
|
39
|
+
|
40
|
+
# {
|
41
|
+
# "request": "/api/v4/projects/4/merge_requests?page=1&per_page=100&state=opened",
|
42
|
+
# "url.path": "/api/v4/projects/4/merge_requests",
|
43
|
+
# "url.query": "page=1&per_page=100&state=opened",
|
44
|
+
# "prameters": {
|
45
|
+
# "page": "1",
|
46
|
+
# "per_page": "100",
|
47
|
+
# "state": "opened"
|
48
|
+
# }
|
49
|
+
# }
|
50
|
+
```
|
51
|
+
|
52
|
+
## Options
|
53
|
+
|
54
|
+
| Setting | Input type | Required | Default |
|
55
|
+
| ---------------------- | ---------- | -------- | -------------- |
|
56
|
+
| request | string | No | request |
|
57
|
+
| separate_query_field | boolean | No | false |
|
58
|
+
| query | string | No | query |
|
59
|
+
| target_path | string | No | path |
|
60
|
+
| target_query | string | No | query |
|
61
|
+
| target_query_parameters| string | No | parameters |
|
62
|
+
| parse_query_parameters | boolean | No | true |
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.2.11
|
data/docs/index.asciidoc
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
:plugin: example
|
2
|
+
:type: filter
|
3
|
+
// Update header with plugin name
|
4
|
+
|
5
|
+
///////////////////////////////////////////
|
6
|
+
START - GENERATED VARIABLES, DO NOT EDIT!
|
7
|
+
///////////////////////////////////////////
|
8
|
+
:version: %VERSION%
|
9
|
+
:release_date: %RELEASE_DATE%
|
10
|
+
:changelog_url: %CHANGELOG_URL%
|
11
|
+
:include_path: ../../../../logstash/docs/include
|
12
|
+
///////////////////////////////////////////
|
13
|
+
END - GENERATED VARIABLES, DO NOT EDIT!
|
14
|
+
///////////////////////////////////////////
|
15
|
+
|
16
|
+
[id="plugins-{type}s-{plugin}"]
|
17
|
+
|
18
|
+
=== Example filter plugin
|
19
|
+
|
20
|
+
include::{include_path}/plugin_header.asciidoc[]
|
21
|
+
|
22
|
+
==== Description
|
23
|
+
|
24
|
+
Add plugin description here
|
25
|
+
|
26
|
+
// Format anchors and links to support generated ids for versioning
|
27
|
+
// Sample anchor: [id="plugins-{type}s-{plugin}-setting_name"]
|
28
|
+
// Sample link: <<plugins-{type}s-{plugin}-setting_name>>
|
29
|
+
|
30
|
+
[id="plugins-{type}s-{plugin}-options"]
|
31
|
+
==== Example Filter Configuration Options
|
32
|
+
|
33
|
+
[cols="<,<,<",options="header",]
|
34
|
+
|=======================================================================
|
35
|
+
|Setting |Input type|Required
|
36
|
+
| <<plugins-{type}s-{plugin}-a_setting_name>> |<<boolean,boolean>>|No
|
37
|
+
| <<plugins-{type}s-{plugin}-another_setting_name>> |<<hash,hash>>|No
|
38
|
+
| <<plugins-{type}s-{plugin}-setting_name_3>> |<<string,string>>|No
|
39
|
+
| <<plugins-{type}s-{plugin}-setting_name_4>> |<<number,number>>|No
|
40
|
+
| <<plugins-{type}s-{plugin}-setting_name_5>> |<<array,array>>|No
|
41
|
+
|=======================================================================
|
42
|
+
|
43
|
+
[id="plugins-{type}s-{plugin}-a_setting_name"]
|
44
|
+
===== `a_setting_name`
|
45
|
+
|
46
|
+
* Value type is <<boolean,boolean>>
|
47
|
+
* Default value is `true`
|
48
|
+
|
49
|
+
Add description here
|
50
|
+
|
51
|
+
[id="plugins-{type}s-{plugin}-another_setting_name"]
|
52
|
+
===== `another_setting_name`
|
53
|
+
|
54
|
+
* Value type is <<hash,hash>>
|
55
|
+
* Default value is `{}`
|
56
|
+
|
57
|
+
Add description here
|
58
|
+
|
59
|
+
[id="plugins-{type}s-{plugin}-setting_name_3"]
|
60
|
+
===== `setting_name_3`
|
61
|
+
|
62
|
+
* Value type is <<string,string>>
|
63
|
+
* Default value is `{}`
|
64
|
+
|
65
|
+
Add description here
|
66
|
+
|
67
|
+
[id="plugins-{type}s-{plugin}-setting_name_4"]
|
68
|
+
===== `setting_name_4`
|
69
|
+
|
70
|
+
* Value type is <<number,number>>
|
71
|
+
* Default value is `0`
|
72
|
+
|
73
|
+
Add description here
|
74
|
+
|
75
|
+
[id="plugins-{type}s-{plugin}-setting_name_5"]
|
76
|
+
===== `setting_name_5`
|
77
|
+
|
78
|
+
* Value type is <<array,array>>
|
79
|
+
* Default value is {}
|
80
|
+
|
81
|
+
Add description here
|
82
|
+
|
83
|
+
// The full list of Value Types is here:
|
84
|
+
// https://www.elastic.co/guide/en/logstash/current/configuration-file-structure.html
|
85
|
+
|
86
|
+
[id="plugins-{type}s-{plugin}-common-options"]
|
87
|
+
include::{include_path}/{type}.asciidoc[]
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# AUTOGENERATED BY THE GRADLE SCRIPT. EDITS WILL BE OVERWRITTEN.
|
2
|
+
# encoding: utf-8
|
3
|
+
require "logstash/filters/base"
|
4
|
+
require "logstash/namespace"
|
5
|
+
require "logstash-filter-request_parser_jars"
|
6
|
+
require "java"
|
7
|
+
|
8
|
+
class LogStash::Filters::RequestParser < LogStash::Filters::Base
|
9
|
+
config_name "request_parser"
|
10
|
+
|
11
|
+
def self.javaClass() Java::org.logstashplugins.RequestParser.java_class; end
|
12
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# AUTOGENERATED BY THE GRADLE SCRIPT. EDITS WILL BE OVERWRITTEN.
|
2
|
+
Gem::Specification.new do |s|
|
3
|
+
s.name = 'logstash-filter-request_parser'
|
4
|
+
s.version = ::File.read('VERSION').split('\n').first
|
5
|
+
s.licenses = ['Apache-2.0']
|
6
|
+
s.summary = 'Parse access logs and ADC logs in a structured format'
|
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
|
+
s.authors = ['Securely']
|
9
|
+
s.email = ['dev@securely.ai']
|
10
|
+
s.homepage = 'https://logstash.securely.ai/requestparser'
|
11
|
+
s.require_paths = ['lib', 'vendor/jar-dependencies']
|
12
|
+
|
13
|
+
s.files = Dir["lib/**/*","*.gemspec","*.md","CONTRIBUTORS","Gemfile","LICENSE","NOTICE.TXT", "vendor/jar-dependencies/**/*.jar", "vendor/jar-dependencies/**/*.rb", "VERSION", "docs/**/*"]
|
14
|
+
|
15
|
+
# Special flag to let us know this is actually a logstash plugin
|
16
|
+
s.metadata = { 'logstash_plugin' => 'true', 'logstash_group' => 'filter', 'java_plugin' => 'true'}
|
17
|
+
|
18
|
+
# Gem dependencies
|
19
|
+
s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
|
20
|
+
s.add_runtime_dependency 'jar-dependencies'
|
21
|
+
s.add_development_dependency 'logstash-devutils'
|
22
|
+
end
|
Binary file
|
metadata
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: logstash-filter-request_parser
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.11
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Securely
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-08-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - ">="
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: '1.60'
|
19
|
+
- - "<="
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '2.99'
|
22
|
+
name: logstash-core-plugin-api
|
23
|
+
prerelease: false
|
24
|
+
type: :runtime
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.60'
|
30
|
+
- - "<="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '2.99'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ">="
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
name: jar-dependencies
|
40
|
+
prerelease: false
|
41
|
+
type: :runtime
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0'
|
53
|
+
name: logstash-devutils
|
54
|
+
prerelease: false
|
55
|
+
type: :development
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
description: This gem is a Logstash plugin required to be installed on top of the
|
62
|
+
Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This
|
63
|
+
gem is not a stand-alone program
|
64
|
+
email:
|
65
|
+
- dev@securely.ai
|
66
|
+
executables: []
|
67
|
+
extensions: []
|
68
|
+
extra_rdoc_files: []
|
69
|
+
files:
|
70
|
+
- CHANGELOG.md
|
71
|
+
- Gemfile
|
72
|
+
- README.md
|
73
|
+
- VERSION
|
74
|
+
- docs/index.asciidoc
|
75
|
+
- lib/logstash-filter-request_parser_jars.rb
|
76
|
+
- lib/logstash/filters/request_parser.rb
|
77
|
+
- logstash-filter-request_parser.gemspec
|
78
|
+
- vendor/jar-dependencies/org/logstashplugins/logstash-filter-request_parser/0.2.11/logstash-filter-request_parser-0.2.11.jar
|
79
|
+
homepage: https://logstash.securely.ai/requestparser
|
80
|
+
licenses:
|
81
|
+
- Apache-2.0
|
82
|
+
metadata:
|
83
|
+
logstash_plugin: 'true'
|
84
|
+
logstash_group: filter
|
85
|
+
java_plugin: 'true'
|
86
|
+
post_install_message:
|
87
|
+
rdoc_options: []
|
88
|
+
require_paths:
|
89
|
+
- lib
|
90
|
+
- vendor/jar-dependencies
|
91
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '0'
|
101
|
+
requirements: []
|
102
|
+
rubyforge_project:
|
103
|
+
rubygems_version: 2.7.9
|
104
|
+
signing_key:
|
105
|
+
specification_version: 4
|
106
|
+
summary: Parse access logs and ADC logs in a structured format
|
107
|
+
test_files: []
|