fluent-plugin-rds-log 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,11 +1,15 @@
1
- # Amazon RDS (for MySQL) input plugin
1
+ # Amazon RDS (for MySQL) input plugin for [Fluentd](http://fluentd.org)
2
2
 
3
3
  ## Overview
4
- ***Amazon Web Services RDS(MySQL) general_log and slow_log input plugin.
4
+ - Amazon Web Services RDS(MySQL) general_log and slow_log input plugin.
5
5
 
6
6
  ##Installation
7
7
 
8
8
  $ fluent-gem install fluent-plugin-rds-log
9
+ *Maybe, you also need the following packages*
10
+ - MySQL-shared
11
+ - MySQL-shared-compat
12
+ - MySQL-devel
9
13
 
10
14
  ## RDS Setting
11
15
 
@@ -23,12 +27,13 @@
23
27
  <source>
24
28
  type rds_log
25
29
  log_type <slow_log | general_log>
26
- host [RDS Hostname]
27
- username [RDS Username]
28
- password [RDS Password]
29
- refresh_interval [number]
30
- auto_reconnect [true|false]
31
- tag [tag-name]
30
+ host <RDS Hostname1>,<RDS Hostname2>,<RDS Hostname3>.. # multiple database servers(comma separated)
31
+ username <RDS Username>
32
+ password <RDS Password>
33
+ refresh_interval <number>
34
+ auto_reconnect <true|false>
35
+ tag <tag-name>
36
+ add_host false # add database hostname in record
32
37
  </source>
33
38
  ```
34
39
 
@@ -44,6 +49,7 @@
44
49
  refresh_interval 30
45
50
  auto_reconnect true
46
51
  tag rds-general-log
52
+ add_host false # add database hostname in record
47
53
  </source>
48
54
 
49
55
  <match rds-general-log>
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |gem|
6
6
  gem.name = "fluent-plugin-rds-log"
7
- gem.version = "0.1.3"
7
+ gem.version = "0.1.4"
8
8
  gem.authors = ["shinsaka"]
9
9
  gem.email = ["shinx1265@gmail.com"]
10
10
  gem.description = "Amazon RDS slow_log and general_log input plugin for Fluent event collector"
@@ -0,0 +1,16 @@
1
+ <source>
2
+ type rds_log
3
+ log_type general_log
4
+ host endpoint.abcdefghijkl.ap-northeast-1.rds.amazonaws.com
5
+ username testuser
6
+ password testuser
7
+ refresh_interval 30
8
+ auto_reconnect true
9
+ tag rds-general-log
10
+ add_host true
11
+ </source>
12
+
13
+ <match rds-general-log>
14
+ type file
15
+ path /tmp/rds-general-log
16
+ </match>
@@ -9,6 +9,7 @@ class Fluent::Rds_LogInput < Fluent::Input
9
9
  config_param :log_type, :string, :default => nil
10
10
  config_param :refresh_interval, :integer, :default => 30
11
11
  config_param :auto_reconnect, :bool, :default => true
12
+ config_param :add_host, :bool, :default => false
12
13
 
13
14
  def initialize
14
15
  super
@@ -34,43 +35,56 @@ class Fluent::Rds_LogInput < Fluent::Input
34
35
  end
35
36
 
36
37
  private
37
- def connect
38
+ def connect_all
39
+ @clients = {}
40
+ @host.split(',').each do |host|
41
+ @clients[host] = connect(host)
42
+ end
43
+ end
44
+
45
+ def connect(host)
38
46
  begin
39
- $log.info "fluent-plugin-rds-log: connecting RDS"
40
- @client = Mysql2::Client.new({
41
- :host => @host,
47
+ $log.info "fluent-plugin-rds-log: connecting RDS [#{host}]"
48
+ client = Mysql2::Client.new({
49
+ :host => host,
42
50
  :port => @port,
43
51
  :username => @username,
44
52
  :password => @password,
45
53
  :reconnect => @auto_reconnect,
46
54
  :database => 'mysql'
47
55
  })
48
- $log.info "fluent-plugin-rds-log: connected RDS"
56
+ $log.info "fluent-plugin-rds-log: connected RDS [#{host}]"
57
+ return client
49
58
  rescue
50
- $log.error "fluent-plugin-rds-log: cannot connect RDS"
59
+ $log.error "fluent-plugin-rds-log: cannot connect RDS [#{host}]"
51
60
  end
52
61
  end
62
+
53
63
  def watch
54
- connect
64
+ connect_all
55
65
  while true
56
66
  sleep @refresh_interval
57
- output
67
+ @host.split(',').each do |host|
68
+ output(host)
69
+ end
58
70
  end
59
71
  end
60
72
 
61
- def output
62
- if @client.nil?
63
- connect
64
- if @client.nil?
73
+ def output(host)
74
+ client = @clients[host]
75
+ if client.nil?
76
+ client = connect(host)
77
+ if client.nil?
65
78
  return
66
79
  end
67
80
  end
68
81
 
69
- @client.query("CALL mysql.rds_rotate_#{@log_type}")
82
+ client.query("CALL mysql.rds_rotate_#{@log_type}")
70
83
 
71
- output_log_data = @client.query("SELECT * FROM mysql.#{@log_type}_backup", :cast => false)
84
+ output_log_data = client.query("SELECT * FROM mysql.#{@log_type}_backup", :cast => false)
72
85
  output_log_data.each do |row|
73
86
  row.delete_if{|key,value| value == ''}
87
+ row['host'] = host if @add_host
74
88
  Fluent::Engine.emit(tag, Fluent::Engine.now, row)
75
89
  end
76
90
  end
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-rds-log
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - shinsaka
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-10-14 00:00:00.000000000 Z
12
+ date: 2015-05-11 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: fluentd
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ~>
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: mysql2
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ~>
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ~>
39
44
  - !ruby/object:Gem::Version
@@ -41,15 +46,17 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: rake
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - '>='
51
+ - - ! '>='
46
52
  - !ruby/object:Gem::Version
47
53
  version: 10.0.4
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - '>='
59
+ - - ! '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: 10.0.4
55
62
  description: Amazon RDS slow_log and general_log input plugin for Fluent event collector
@@ -67,31 +74,33 @@ files:
67
74
  - README.md
68
75
  - Rakefile
69
76
  - fluent-plugin-rds-log.gemspec
77
+ - fluent.conf.sample
70
78
  - lib/fluent/plugin/in_rds_log.rb
71
79
  - test/helper.rb
72
80
  - test/plugin/test_in_rds_slowlog.rb
73
81
  homepage: https://github.com/shinsaka/fluent-plugin-rds-log
74
82
  licenses: []
75
- metadata: {}
76
83
  post_install_message:
77
84
  rdoc_options: []
78
85
  require_paths:
79
86
  - lib
80
87
  required_ruby_version: !ruby/object:Gem::Requirement
88
+ none: false
81
89
  requirements:
82
- - - '>='
90
+ - - ! '>='
83
91
  - !ruby/object:Gem::Version
84
92
  version: '0'
85
93
  required_rubygems_version: !ruby/object:Gem::Requirement
94
+ none: false
86
95
  requirements:
87
- - - '>='
96
+ - - ! '>='
88
97
  - !ruby/object:Gem::Version
89
98
  version: '0'
90
99
  requirements: []
91
100
  rubyforge_project:
92
- rubygems_version: 2.0.3
101
+ rubygems_version: 1.8.23
93
102
  signing_key:
94
- specification_version: 4
103
+ specification_version: 3
95
104
  summary: Amazon RDS slow_log and general_log input plugin for Fluent event collector
96
105
  test_files:
97
106
  - test/helper.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: e09e5f921b755de90de08e2ec681fa267890c87d
4
- data.tar.gz: 7092cd06d100b40f961a7df30f28dae565658a7c
5
- SHA512:
6
- metadata.gz: bcc594b7aa25171c88e3eb99d3cd52b4a57ee2bad1bb8c71ca23bec3ad560ca98af35d035d200895743d195c3d0deae1804885fbdfadb2c346e7cb35c8fcab90
7
- data.tar.gz: e1df1249f8398e9585e5e895fd7ef20f4b1dfb70fca9caab9757c676030629b9e52f19df6b0a223e031d33cf994a40a66f787f6c698d37effcfef2abec07f518