fluent-plugin-elb-log 0.2.7 → 0.2.8

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: 3816c144ddcef435c237835bb110c21219347bec
4
- data.tar.gz: f66a68e0e773adfe6021d56003079e4aab908b93
3
+ metadata.gz: d4964547c8f6c81ddc8be0aee95bc942420cd824
4
+ data.tar.gz: 30fb414dc08343f64ee4c671aab0e5246fb8ba55
5
5
  SHA512:
6
- metadata.gz: 127af81c80b4faa0ddf3af8f43ab98d86e26da37728f07cc5657872c13929302c1e0c0c1f05a56f1b4c391acfdc483fe53d5b23baf081b77ceb5eca2fc8ac0a1
7
- data.tar.gz: 5ddcddbb6ad7b42da4710316dc8639ae51293681760539d7291c3ec4ac15476c7ac358ca6e388820d94dc28157178f3cd621de81c06c86614b8f0fde34cb1f0d
6
+ metadata.gz: 26bb99092bb3b2d5bd403f1e840cfe0f33ac75355e26dd02794300383f7ed0b29e86bd3bd66953d33fca842ddbf661b00290815af6f9b4f1c6b79b609c6bca53
7
+ data.tar.gz: 3d4c476adb92920fa4c51a1f7d109fbe5fe8138b9a05b6b5d8c939f5ea7d9ac6e2899656b769e861008636a5f886396f5462271af878bbab56db46b2c96438b6
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "fluent-plugin-elb-log"
7
- spec.version = "0.2.7"
7
+ spec.version = "0.2.8"
8
8
  spec.authors = ["shinsaka"]
9
9
  spec.email = ["shinx1265@gmail.com"]
10
10
  spec.summary = "Amazon ELB log input plugin"
@@ -1,9 +1,16 @@
1
+ require 'fluent/input'
2
+
1
3
  class Fluent::Elb_LogInput < Fluent::Input
2
4
  Fluent::Plugin.register_input('elb_log', self)
3
5
 
4
6
  LOGFILE_REGEXP = /^((?<prefix>.+?)\/|)AWSLogs\/(?<account_id>[0-9]{12})\/elasticloadbalancing\/(?<region>.+?)\/(?<logfile_date>[0-9]{4}\/[0-9]{2}\/[0-9]{2})\/[0-9]{12}_elasticloadbalancing_.+?_(?<logfile_elb_name>[^_]+)_(?<elb_timestamp>[0-9]{8}T[0-9]{4}Z)_(?<elb_ip_address>.+?)_(?<logfile_hash>.+)\.log$/
5
7
  ACCESSLOG_REGEXP = /^(?<time>\d{4}-\d{2}-\d{2}T\d{2}\:\d{2}\:\d{2}\.\d{6}Z) (?<elb>.+?) (?<client>[^ ]+)\:(?<client_port>.+?) (?<backend>.+?)(\:(?<backend_port>.+?))? (?<request_processing_time>.+?) (?<backend_processing_time>.+?) (?<response_processing_time>.+?) (?<elb_status_code>.+?) (?<backend_status_code>.+?) (?<received_bytes>.+?) (?<sent_bytes>.+?) \"(?<request_method>.+?) (?<request_uri>.+?) (?<request_protocol>.+?)\"( \"(?<user_agent>.*?)\" (?<ssl_cipher>.+?) (?<ssl_protocol>.+)(| (?<option3>.*)))?/
6
8
 
9
+ # To support log_level option implemented by Fluentd v0.10.43
10
+ unless method_defined?(:log)
11
+ define_method("log") { $log }
12
+ end
13
+
7
14
  # Define `router` method to support v0.10.57 or earlier
8
15
  unless method_defined?(:router)
9
16
  define_method("router") { Fluent::Engine }
@@ -62,7 +69,7 @@ class Fluent::Elb_LogInput < Fluent::Input
62
69
  ec2 = Aws::EC2::Client.new(region: @region)
63
70
  !ec2.config.credentials.nil?
64
71
  rescue => e
65
- $log.warn "EC2 Client error occurred: #{e.message}"
72
+ log.warn "EC2 Client error occurred: #{e.message}"
66
73
  end
67
74
  end
68
75
 
@@ -72,25 +79,25 @@ class Fluent::Elb_LogInput < Fluent::Input
72
79
  # get timestamp last proc
73
80
  start_time = @start_time ? Time.parse(@start_time).utc : Time.at(0)
74
81
  timestamp = start_time.to_i
75
- $log.debug "timestamp file #{@timestamp_file} read"
82
+ log.debug "timestamp file #{@timestamp_file} read"
76
83
  File.open(@timestamp_file, File::RDONLY) do |file|
77
84
  timestamp = file.read.to_i if file.size > 0
78
85
  end
79
- $log.debug "timestamp start at:" + Time.at(timestamp).to_s
86
+ log.debug "timestamp start at:" + Time.at(timestamp).to_s
80
87
  return timestamp
81
88
  rescue => e
82
- $log.warn "timestamp file get and parse error occurred: #{e.message}"
89
+ log.warn "timestamp file get and parse error occurred: #{e.message}"
83
90
  end
84
91
  end
85
92
 
86
93
  def put_timestamp_file(timestamp)
87
94
  begin
88
- $log.debug "timestamp file #{@timestamp_file} write"
95
+ log.debug "timestamp file #{@timestamp_file} write"
89
96
  File.open(@timestamp_file, File::WRONLY|File::CREAT|File::TRUNC) do |file|
90
97
  file.puts timestamp.to_s
91
98
  end
92
99
  rescue => e
93
- $log.warn "timestamp file get and parse error occurred: #{e.message}"
100
+ log.warn "timestamp file get and parse error occurred: #{e.message}"
94
101
  end
95
102
  end
96
103
 
@@ -106,34 +113,34 @@ class Fluent::Elb_LogInput < Fluent::Input
106
113
  if @http_proxy
107
114
  options[:http_proxy] = @http_proxy
108
115
  end
109
- $log.debug "S3 client connect"
116
+ log.debug "S3 client connect"
110
117
  Aws::S3::Client.new(options)
111
118
  rescue => e
112
- $log.warn "S3 Client error occurred: #{e.message}"
119
+ log.warn "S3 Client error occurred: #{e.message}"
113
120
  end
114
121
  end
115
122
 
116
123
  def s3bucket_is_ok
117
124
  begin
118
- $log.debug "search bucket #{@s3_bucketname}"
125
+ log.debug "search bucket #{@s3_bucketname}"
119
126
 
120
127
  s3_client.list_buckets.buckets.any? do |bucket|
121
128
  bucket.name == @s3_bucketname
122
129
  end
123
130
  rescue => e
124
- $log.warn "S3 Client error occurred: #{e.message}"
131
+ log.warn "S3 Client error occurred: #{e.message}"
125
132
  end
126
133
  end
127
134
 
128
135
  def input
129
- $log.debug "start"
136
+ log.debug "start"
130
137
 
131
138
  timestamp = get_timestamp_file()
132
139
 
133
140
  object_keys = get_object_keys(timestamp)
134
141
  object_keys = sort_object_key(object_keys)
135
142
 
136
- $log.info "processing #{object_keys.count} object(s)."
143
+ log.info "processing #{object_keys.count} object(s)."
137
144
 
138
145
  object_keys.each do |object_key|
139
146
  record_common = {
@@ -176,7 +183,7 @@ class Fluent::Elb_LogInput < Fluent::Input
176
183
  elb_timestamp_unixtime = Time.parse(matches[:elb_timestamp]).to_i
177
184
  next if elb_timestamp_unixtime <= timestamp
178
185
 
179
- $log.debug content.key
186
+ log.debug content.key
180
187
  object_keys << {
181
188
  key: content.key,
182
189
  prefix: matches[:prefix],
@@ -193,7 +200,7 @@ class Fluent::Elb_LogInput < Fluent::Input
193
200
  end
194
201
  return object_keys
195
202
  rescue => e
196
- $log.warn "error occurred: #{e.message}"
203
+ log.warn "error occurred: #{e.message}"
197
204
  end
198
205
  end
199
206
 
@@ -203,13 +210,13 @@ class Fluent::Elb_LogInput < Fluent::Input
203
210
  a[:elb_timestamp_unixtime] <=> b[:elb_timestamp_unixtime]
204
211
  end
205
212
  rescue => e
206
- $log.warn "error occurred: #{e.message}"
213
+ log.warn "error occurred: #{e.message}"
207
214
  end
208
215
  end
209
216
 
210
217
  def get_file_from_s3(object_name)
211
218
  begin
212
- $log.debug "getting object from s3 name is #{object_name}"
219
+ log.debug "getting object from s3 name is #{object_name}"
213
220
 
214
221
  # read an object from S3 to a file and write buffer file
215
222
  File.open(@buf_file, File::WRONLY|File::CREAT|File::TRUNC) do |file|
@@ -221,7 +228,7 @@ class Fluent::Elb_LogInput < Fluent::Input
221
228
  end
222
229
  end
223
230
  rescue => e
224
- $log.warn "error occurred: #{e.message}"
231
+ log.warn "error occurred: #{e.message}"
225
232
  end
226
233
  end
227
234
 
@@ -232,7 +239,7 @@ class Fluent::Elb_LogInput < Fluent::Input
232
239
  file.each_line do |line|
233
240
  line_match = ACCESSLOG_REGEXP.match(line)
234
241
  unless line_match
235
- $log.info "nomatch log found: #{line} in #{record_common['key']}"
242
+ log.info "nomatch log found: #{line} in #{record_common['key']}"
236
243
  next
237
244
  end
238
245
 
@@ -263,7 +270,7 @@ class Fluent::Elb_LogInput < Fluent::Input
263
270
  end
264
271
  end
265
272
  rescue => e
266
- $log.warn "error occurred: #{e.message}"
273
+ log.warn "error occurred: #{e.message}"
267
274
  end
268
275
  end
269
276
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-elb-log
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - shinsaka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-21 00:00:00.000000000 Z
11
+ date: 2017-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd