fluent-plugin-netflow 0.1.0 → 0.1.1
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e2cf6e2ee13f2228e628ef23638219326b235a4
|
4
|
+
data.tar.gz: 96b90f05451f8adee07596457637779d8236e9e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b445f204e476373bf96f5c9acd56eabf11298f7cfcaae1c6686e848e7648b909fbcbed57834578997fb468595b6f44c55c9ab6fb2e66a06f8313b405c20c320e
|
7
|
+
data.tar.gz: 36e57848e318f596bb964861310b258820e4963982c8a3ca558049d5ab567d9d5ae1605b4dee65ed44e40bbdc3adf157b96a30ff88dd9e3de5ed7e4ec8e8ffec
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
@@ -70,7 +70,7 @@ module Fluent
|
|
70
70
|
protected
|
71
71
|
|
72
72
|
def receive_data(host, data)
|
73
|
-
log.debug "received logs", :host => host, :data => data
|
73
|
+
log.on_debug { log.debug "received logs", :host => host, :data => data }
|
74
74
|
|
75
75
|
@parser.call(data) { |time, record|
|
76
76
|
unless time && record
|
@@ -89,7 +89,7 @@ module Fluent
|
|
89
89
|
private
|
90
90
|
|
91
91
|
def listen(callback)
|
92
|
-
log.
|
92
|
+
log.info "listening netflow socket on #{@bind}:#{@port} with #{@protocol_type}"
|
93
93
|
if @protocol_type == :udp
|
94
94
|
@usock = SocketUtil.create_udp_socket(@bind)
|
95
95
|
@usock.bind(@bind, @port)
|
@@ -90,7 +90,7 @@
|
|
90
90
|
- :uint8
|
91
91
|
- :ipv6_dst_mask
|
92
92
|
31:
|
93
|
-
-
|
93
|
+
- 3
|
94
94
|
- :ipv6_flow_label
|
95
95
|
32:
|
96
96
|
- :uint16
|
@@ -140,7 +140,7 @@
|
|
140
140
|
- :uint32
|
141
141
|
- :mpls_top_label_ip_addr
|
142
142
|
48:
|
143
|
-
-
|
143
|
+
- 1
|
144
144
|
- :flow_sampler_id
|
145
145
|
49:
|
146
146
|
- :uint8
|
@@ -189,8 +189,6 @@
|
|
189
189
|
64:
|
190
190
|
- :uint32
|
191
191
|
- :ipv6_option_headers
|
192
|
-
64:
|
193
|
-
- :skip
|
194
192
|
65:
|
195
193
|
- :skip
|
196
194
|
66:
|
@@ -222,6 +220,18 @@
|
|
222
220
|
83:
|
223
221
|
- :string
|
224
222
|
- :if_desc
|
223
|
+
84:
|
224
|
+
- :string
|
225
|
+
- :sampler_name
|
225
226
|
89:
|
226
227
|
- :uint8
|
227
228
|
- :forwarding_status
|
229
|
+
91:
|
230
|
+
- :uint8
|
231
|
+
- :mpls_prefix_len
|
232
|
+
234:
|
233
|
+
- :uint32
|
234
|
+
- :ingress_vrf_id
|
235
|
+
235:
|
236
|
+
- :uint32
|
237
|
+
- :egress_vrf_id
|
@@ -25,7 +25,7 @@ module Fluent
|
|
25
25
|
|
26
26
|
@templates = Vash.new()
|
27
27
|
# Path to default Netflow v9 field definitions
|
28
|
-
filename = File.expand_path('../
|
28
|
+
filename = File.expand_path('../netflow_option_fields.yaml', __FILE__)
|
29
29
|
|
30
30
|
begin
|
31
31
|
@fields = YAML.load_file(filename)
|
@@ -42,6 +42,14 @@ module Fluent
|
|
42
42
|
raise "Bad syntax in definitions file #{@definitions}"
|
43
43
|
end
|
44
44
|
end
|
45
|
+
# Path to default Netflow v9 scope field definitions
|
46
|
+
filename = File.expand_path('../netflow_scope_fields.yaml', __FILE__)
|
47
|
+
|
48
|
+
begin
|
49
|
+
@scope_fields = YAML.load_file(filename)
|
50
|
+
rescue Exception => e
|
51
|
+
raise "Bad syntax in scope definitions file #{filename}"
|
52
|
+
end
|
45
53
|
end
|
46
54
|
|
47
55
|
def call(payload)
|
@@ -107,7 +115,7 @@ module Fluent
|
|
107
115
|
catch (:field) do
|
108
116
|
fields = []
|
109
117
|
template.fields.each do |field|
|
110
|
-
entry = netflow_field_for(field.field_type, field.field_length)
|
118
|
+
entry = netflow_field_for(field.field_type, field.field_length, @fields)
|
111
119
|
if !entry
|
112
120
|
throw :field
|
113
121
|
end
|
@@ -126,8 +134,15 @@ module Fluent
|
|
126
134
|
record.flowset_data.templates.each do |template|
|
127
135
|
catch (:field) do
|
128
136
|
fields = []
|
137
|
+
template.scope_fields.each do |field|
|
138
|
+
entry = netflow_field_for(field.field_type, field.field_length, @scope_fields)
|
139
|
+
if ! entry
|
140
|
+
throw :field
|
141
|
+
end
|
142
|
+
fields += entry
|
143
|
+
end
|
129
144
|
template.option_fields.each do |field|
|
130
|
-
entry = netflow_field_for(field.field_type, field.field_length)
|
145
|
+
entry = netflow_field_for(field.field_type, field.field_length, @fields)
|
131
146
|
if ! entry
|
132
147
|
throw :field
|
133
148
|
end
|
@@ -204,9 +219,9 @@ module Fluent
|
|
204
219
|
("uint" + (((length > 0) ? length : default) * 8).to_s).to_sym
|
205
220
|
end
|
206
221
|
|
207
|
-
def netflow_field_for(type, length)
|
208
|
-
if
|
209
|
-
field =
|
222
|
+
def netflow_field_for(type, length, field_definitions)
|
223
|
+
if field_definitions.include?(type)
|
224
|
+
field = field_definitions[type]
|
210
225
|
if field.is_a?(Array)
|
211
226
|
|
212
227
|
if field[0].is_a?(Integer)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-netflow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masahiro Nakagawa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|
@@ -71,7 +71,8 @@ files:
|
|
71
71
|
- VERSION
|
72
72
|
- fluent-plugin-netflow.gemspec
|
73
73
|
- lib/fluent/plugin/in_netflow.rb
|
74
|
-
- lib/fluent/plugin/
|
74
|
+
- lib/fluent/plugin/netflow_option_fields.yaml
|
75
|
+
- lib/fluent/plugin/netflow_scope_fields.yaml
|
75
76
|
- lib/fluent/plugin/parser_netflow.rb
|
76
77
|
homepage: https://github.com/repeatedly/fluent-plugin-netflow
|
77
78
|
licenses:
|
@@ -93,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
93
94
|
version: '0'
|
94
95
|
requirements: []
|
95
96
|
rubyforge_project:
|
96
|
-
rubygems_version: 2.2.
|
97
|
+
rubygems_version: 2.2.2
|
97
98
|
signing_key:
|
98
99
|
specification_version: 4
|
99
100
|
summary: Netflow plugin for Fluentd
|