fluent-plugin-filter-parse-postfix 0.2.5 → 0.2.6

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: eb2a563ddd2c2f4c6474f642b8e251e25aa389ac
4
- data.tar.gz: e81a0fab99ea7e33a35ebbd5407f6101228d633c
3
+ metadata.gz: 9b33cd07e187b679a65cac69b0ae4cd01baadd6d
4
+ data.tar.gz: e9786672b2557cac83ba517f9093402ea2128d9e
5
5
  SHA512:
6
- metadata.gz: 8027628d1d0e0a5b8537fca65215f4adcf4b840fce226491b13a158de3b2759f784887af4f00c6ff5aed46896e96cf6df160ff9d485f02107de9b222b128d9e1
7
- data.tar.gz: 96479ea5d500d813981c6acebb58efc82b901195fc77f76bf6d696ca29ea68da32f8c4dc52b0bfa646456cfb71cacc616cc485a927848d4b23472fe5f2e25164
6
+ metadata.gz: 6c5f72e1e9cf9acdc438336cd385557de9057c2298442a2fab1c14b4d89e75138f19da7cca0413f171c22f0f67f01d71e253b1bbc40c89723ba30b11c43e7831
7
+ data.tar.gz: 5a9117c1efac16ae25e91ddf47753888dc85b46a9b19ccaf07d9b94503f686142a2a085e443bf9ff5a5615513958a18320643961161026b2bb4de93c2b40f5b7
data/README.md CHANGED
@@ -31,6 +31,7 @@ Or install it yourself as:
31
31
  #include_hash false
32
32
  #salt my_salt
33
33
  #sha_algorithm 512 # 1, 224, 256, 384, 512 (default)
34
+ #header_checks_warning false
34
35
  </filter>
35
36
  ```
36
37
 
@@ -92,3 +93,34 @@ see https://github.com/winebarrel/postfix_status_line
92
93
  "status_detail":"(250 ok ; id=en4req0070M63004172202102)"
93
94
  }
94
95
  ```
96
+
97
+ ### Parse Header Checks Warning
98
+
99
+ ```sh
100
+ $ cat fluent.conf
101
+ ...
102
+ <filter postfix.maillog>
103
+ @type grep
104
+ regexp1 message warning: header
105
+ </filter>
106
+
107
+ <filter postfix.maillog>
108
+ @type parse_postfix
109
+ header_checks_warning true
110
+ </filter>
111
+ ...
112
+
113
+ $ fluentd -c fluent.conf
114
+ ```
115
+
116
+ ```sh
117
+ $ echo '{"message":"Mar 4 14:44:19 P788 postfix/cleanup[7426]: E80A9DF6F7E: warning: header Subject: test from local; from=<sugawara@P788.local> to=<sgwr_dts@yahoo.co.jp>"}' | fluent-cat postfix.maillog
118
+ #=> 2017-03-04 18:26:46.146399000 +0900 postfix.maillog: {
119
+ # "time":"Mar 4 14:44:19","hostname":"P788",
120
+ # "process":"postfix/cleanup[7426]",
121
+ # "queue_id":"E80A9DF6F7E",
122
+ # "to":"********@yahoo.co.jp",
123
+ # "domain":"yahoo.co.jp",
124
+ # "from":"********@P788.local",
125
+ # "Subject":"test from local;"}
126
+ ```
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.require_paths = ['lib']
21
21
 
22
22
  spec.add_dependency 'fluentd', '>= 0.12'
23
- spec.add_dependency 'postfix_status_line', '~> 0.2.6'
23
+ spec.add_dependency 'postfix_status_line', '~> 0.2.7'
24
24
 
25
25
  spec.add_development_dependency 'bundler'
26
26
  spec.add_development_dependency 'rake'
@@ -6,46 +6,40 @@ module Fluent
6
6
  class ParsePostfixFilter < Filter
7
7
  Plugin.register_filter('parse_postfix', self)
8
8
 
9
- config_param :key, :string, :default => 'message'
10
- config_param :mask, :bool, :default => true
11
- config_param :use_log_time, :bool, :default => false
12
- config_param :include_hash, :bool, :default => false
13
- config_param :salt, :string, :default => nil
14
- config_param :sha_algorithm, :integer, :default => nil
15
-
16
- def filter_stream(tag, es)
17
- result_es = Fluent::MultiEventStream.new
18
-
19
- es.each do |time, record|
20
- parse_postfix(time, record, result_es)
21
- end
22
-
23
- result_es
24
- end
25
-
26
- private
27
-
28
- def parse_postfix(time, record, result_es)
9
+ config_param :key, :string, :default => 'message'
10
+ config_param :mask, :bool, :default => true
11
+ config_param :use_log_time , :bool, :default => false
12
+ config_param :include_hash, :bool, :default => false
13
+ config_param :salt, :string, :default => nil
14
+ config_param :sha_algorithm, :integer, :default => nil
15
+ config_param :header_checks_warning, :bool, :default => false
16
+
17
+ def filter(tag, time, record)
29
18
  line = record[@key]
30
- return unless line
19
+ return record unless line
20
+
21
+ options = {mask: @mask, hash: @include_hash, salt: @salt, parse_time: @use_log_time, sha_algorithm: @sha_algorithm}
31
22
 
32
- parsed = PostfixStatusLine.parse(
33
- line,
34
- mask: @mask, hash: @include_hash, salt: @salt, parse_time: @use_log_time, sha_algorithm: @sha_algorithm)
23
+ if @header_checks_warning
24
+ parsed = PostfixStatusLine.parse_header_checks_warning(line, options)
25
+ else
26
+ parsed = PostfixStatusLine.parse(line, options)
27
+ end
35
28
 
36
29
  unless parsed
37
30
  log.warn "cannot parse a postfix log: #{line}"
38
- return
31
+ return record
39
32
  end
40
33
 
41
34
  if @use_log_time and parsed['epoch']
42
35
  time = parsed.delete('epoch')
43
36
  end
44
37
 
45
- result_es.add(time, parsed)
38
+ parsed
46
39
  rescue => e
47
40
  log.warn "failed to parse a postfix log: #{line}", :error_class => e.class, :error => e.message
48
41
  log.warn_backtrace
42
+ record
49
43
  end
50
44
  end
51
45
  end
@@ -1,3 +1,3 @@
1
1
  module FluentPluginFilterParsePostfix
2
- VERSION = '0.2.5'
2
+ VERSION = '0.2.6'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-filter-parse-postfix
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-23 00:00:00.000000000 Z
11
+ date: 2017-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.2.6
33
+ version: 0.2.7
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.2.6
40
+ version: 0.2.7
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement