fluent-plugin-netflow 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
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
|