fluent-plugin-zabbix-simple-bufferd 1.0.0

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 ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MWIzOWRlNDRmYWZiZjNhMDk1MGFiYjUyNzVkM2EzOTYwNmExOWE1MA==
5
+ data.tar.gz: !binary |-
6
+ MGYyZWY1NjM0ZGUxNWM3OGRlMTg5MzBhN2FiOGU1YzU1MDJjMTc3Yg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ ZWQ5MWFmMTUyMDBlMDc2YzhkMWVjYmE0NzNjZmQyMzMzOWFlNDkzZDY2OTM5
10
+ YzllYmVkZmE1ODMzNTI0MDcwYzM2ZWY4ZTdlMDE4ZjBhMjFjZGM2NGU1NWI1
11
+ NDcwYjE4Y2NmNzI1NWVlMjMyYjgzYTA3MmFmYmFhODgxNjQ5MWM=
12
+ data.tar.gz: !binary |-
13
+ MmViNjcyMTFlODgxM2Y1MWMyMmE3ZTU3OGM5OGEyMmQ2ZWUwMjAyMTA4YTkw
14
+ OWRjNzlmZjRiNDJiNGRjZTdiNWRmOTUzNThkNmM3NWU2YzhhZDAwMTNkNTY4
15
+ MGM4ODEyNTUzYWE1YTg5ZjNjYTEwY2ZlODdkYTVmYTA0OTc4MmI=
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ pkg
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in fluent-plugin-zabbix-simple.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,31 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ fluent-plugin-zabbix-simple (1.0.0)
5
+ fluentd
6
+ zabbix
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ cool.io (1.1.0)
12
+ iobuffer (>= 1.0.0)
13
+ fluentd (0.10.31)
14
+ cool.io (~> 1.1.0)
15
+ http_parser.rb (~> 0.5.1)
16
+ json (>= 1.4.3)
17
+ msgpack (~> 0.4.4)
18
+ yajl-ruby (~> 1.0)
19
+ http_parser.rb (0.5.3)
20
+ iobuffer (1.1.2)
21
+ json (1.7.7)
22
+ msgpack (0.4.7)
23
+ yajl-ruby (1.1.0)
24
+ zabbix (0.4.0)
25
+
26
+ PLATFORMS
27
+ ruby
28
+
29
+ DEPENDENCIES
30
+ fluent-plugin-zabbix-simple!
31
+ fluentd
data/LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ Copyright (c) 2013 NAKANO Hideo
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
data/README-ja.md ADDED
@@ -0,0 +1,8 @@
1
+ # fluent-plugin-zabbix-simple-bufferd
2
+
3
+ ## 概要
4
+
5
+ fluent-plugin-zabbix-simpleが継承してるクラスを
6
+
7
+ Fluent::Output -> Fluent::BufferedOutputに変更しただけです。
8
+ 若干クラス名等は変えましたが、基本それだけです。
data/README.md ADDED
@@ -0,0 +1,136 @@
1
+ # fluent-plugin-zabbix-simple
2
+
3
+ ## What is this
4
+
5
+ **fluent-plugin-zabbix-simple** is a [fluentd](http://fluentd.org/ "fluentd") output plugin to send values to [Zabbix](http://www.zabbix.com/ "Zabbix") Server.
6
+
7
+ fluentd collect logs as JSON.
8
+ fluent-plugin-zabbix-simple converts **fluentd's JSON key** to **Zabbix key**, and sends _Zabbix key_ and its value to Zabbix Server.
9
+
10
+ * You can define multiple key which you want to send, no size limitation.
11
+
12
+ * You can use regex both **key-pattern** and **key-replacement**.
13
+
14
+ * **key-pattern** (simply called **pattern**) is a key that is matched against _fluentd's JSON key_.
15
+
16
+ * **key-replacement** (simple called **replacement**) is a key that is send to Zabbix Server if _pattern_ matches _fluentd's JSON key_. Before sending to Zabbix Server, _fluentd's JSON key_ is converted to _Zabbix key_ according to the replacement.
17
+
18
+ ## How to Install
19
+
20
+ execute command `gem install`:
21
+
22
+ $ sudo gem install fluent-plugin-zabbix-simple
23
+
24
+ [td-agent](http://docs.fluentd.org/articles/install-by-rpm#what-is-td-agent) has its own Ruby ecosystem.
25
+ If you have installed td-agent, you would use `gem` command included with td-agent.
26
+
27
+ $ sudo /usr/lib64/fluent/ruby/bin/gem isntall fluent-plugin-zabbix-simple
28
+
29
+ ## Installation Check
30
+
31
+ ### Zabbix Server Configuration
32
+
33
+ In advance, You shoud define zabbix items like this:
34
+
35
+ Key: httpd.status[2xx]
36
+ Type: Zabbix trapper
37
+ Type of information: Numeric(unsigned)
38
+
39
+ Key: httpd.status[3xx]
40
+ Type: Zabbix trapper
41
+ Type of information: Numeric(unsigned)
42
+
43
+ Tips:
44
+
45
+ * You must set `Type` to `Zabbix trapper`.
46
+
47
+ * You must choose a appropriate `Type of information`.
48
+
49
+ ### Plugin Configuration and Test
50
+
51
+ To test fluent-plugin-zabbix-simple, create file:
52
+
53
+ <source>
54
+ type forward
55
+ </source>
56
+ <match httpd.access.status_count>
57
+ type zabbix_simple
58
+ zabbix_server 192.168.0.1
59
+ map_key1 httpd.access_(...)_count httpd.status[\1]
60
+ </match>
61
+
62
+ Save above file to `fluentd.conf`, execute `fluentd`:
63
+
64
+ $ fluentd -c ./fluent.conf -vv
65
+
66
+ If you have installed td-agent, execute a command like this:
67
+
68
+ $ /usr/sbin/td-agent -c ./fluent.conf -vv
69
+
70
+ Open another termina, send a test message to fluentd server.
71
+
72
+ $ echo '{"httpd.access_2xx_count":321}' | fluent-cat httpd.access.status_count
73
+
74
+ after a few seconds, confirm that the 321 has been recorded in the Zabbix Server.
75
+
76
+
77
+ ## Configuration
78
+
79
+ name | type | description
80
+ -----|------|------
81
+ type | string | type of plugin. fluent-plugin-zabbix-simple has "zabbix_simple".
82
+ zabbix_server | string | IP address or hostname of Zabbix Server.
83
+ port | integer | port no which zabbix Server uses(default is 10051).
84
+ host | string | hostname of sender(default is `Socket.gethostname`).
85
+ key_size | integer | size of map_key(default is 20)
86
+ map_key[n] | string | a space separated _pattern_ and _replacement. You can use `map_key0` as 0th map_key.
87
+
88
+
89
+ ## Use Many Keys
90
+
91
+ By default, key_map is scanned up to 20.
92
+ You must specify `key_size` if you want to use key_map more than 20.
93
+
94
+ <match httpd.access.status_count>
95
+ type zabbix_simple
96
+ zabbix_server 192.168.0.1
97
+ key_size 25
98
+ map_key1 pattern1 replace1
99
+ map_key2 pattern2 replace2
100
+ map_key3 pattern3 replace3
101
+ map_key4 pattern4 replace4
102
+ map_key5 pattern5 replace5
103
+ map_key6 pattern6 replace6
104
+ map_key7 pattern7 replace7
105
+ map_key8 pattern8 replace8
106
+ map_key9 pattern9 replace9
107
+ map_key10 pattern10 replace10
108
+ map_key11 pattern11 replace11
109
+ map_key12 pattern12 replace12
110
+ map_key13 pattern13 replace13
111
+ map_key14 pattern14 replace14
112
+ map_key15 pattern15 replace15
113
+ map_key16 pattern16 replace16
114
+ map_key17 pattern17 replace17
115
+ map_key18 pattern18 replace18
116
+ map_key19 pattern19 replace19
117
+ map_key20 pattern20 replace20
118
+ map_key21 pattern21 replace21
119
+ map_key22 pattern22 replace22
120
+ map_key23 pattern23 replace23
121
+ map_key24 pattern24 replace24
122
+ map_key25 pattern25 replace25
123
+ </match>
124
+
125
+ ## Detail of matching
126
+
127
+ fluent-plugin-zabbix-simple lookups from `map_key0` up to map_key[key_size], use the first matched map_key, ignore the rest of map_keys.
128
+
129
+ ## Legal Notification
130
+
131
+ ### Copyright
132
+ Copyright (c) 2013 NAKANO Hideo
133
+
134
+ ### License
135
+ Apache License, Version 2.0
136
+
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env rake
2
+ # -*- mode:ruby -*-
3
+ require "bundler/gem_tasks"
4
+
5
+ require 'rake/testtask'
6
+ Rake::TestTask.new(:test) do |test|
7
+ test.libs << 'lib' << 'test'
8
+ test.pattern = 'test/**/test_*.rb'
9
+ test.verbose = true
10
+ end
11
+
12
+ task :default => :test
@@ -0,0 +1,21 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- mode:ruby -*-
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Katsuhiro Miura"]
6
+ gem.email = ["MiuraKatsu@gmail.com"]
7
+ gem.description = %q{Output data plugin to Zabbix}
8
+ gem.summary = %q{Output data plugin to Zabbix (like zabbix_sender)}
9
+ gem.homepage = "https://github.com/katsuhiro-miura/fluent-plugin-zabbix-simple"
10
+
11
+ gem.files = `git ls-files`.split($\)
12
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
+ gem.name = "fluent-plugin-zabbix-simple-bufferd"
15
+ gem.require_paths = ["lib"]
16
+ gem.version = "1.0.0"
17
+
18
+ gem.add_development_dependency "fluentd"
19
+ gem.add_runtime_dependency "fluentd"
20
+ gem.add_runtime_dependency "zabbix"
21
+ end
@@ -0,0 +1,119 @@
1
+ #
2
+ # Fluent::ZabbixSimpleOutput
3
+ #
4
+ # Copyright (C) 2013 NAKANO Hideo
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ class Fluent::ZabbixSimpleBufferdOutput < Fluent::BufferedOutput
19
+ Fluent::Plugin.register_output('zabbix_simple_bufferd', self)
20
+
21
+ def initialize
22
+ super
23
+ require 'zabbix'
24
+ require 'socket'
25
+ end
26
+
27
+ attr_reader :zabbix_server, :port, :host, :key_size, :map_keys
28
+
29
+ config_param :zabbix_server, :string
30
+ config_param :port, :integer, :default => 10051
31
+ config_param :host, :string, :default => Socket.gethostname
32
+ config_param :key_size, :integer, :default => 20
33
+
34
+ KeyMap = Struct.new(:id, :pattern, :replace)
35
+
36
+ def configure(conf)
37
+ super
38
+
39
+ if @zabbix_server.nil?
40
+ raise Fluent::ConfigError, "missing zabbix_server"
41
+ end
42
+
43
+ @map_keys = []
44
+ (0..@key_size).each do |i|
45
+ next unless conf["map_key#{i}"]
46
+ pattern,replace = conf["map_key#{i}"].split(' ', 2)
47
+ @map_keys.push(KeyMap.new(i, Regexp.new(pattern), replace))
48
+ end
49
+
50
+ if @map_keys.nil? or @map_keys.size == 0
51
+ raise Fluent::ConfigError, "missing map_key[0..]"
52
+ end
53
+ end
54
+
55
+ def start
56
+ super
57
+ end
58
+
59
+ def shutdown
60
+ super
61
+ end
62
+
63
+ def create_zbx_sender
64
+ Zabbix::Sender.new(:host => @zabbix_server, :port => @port)
65
+ end
66
+
67
+ def send(zbx_sender, name, value, time)
68
+ begin
69
+ $log.debug { "name: #{name}, value: #{value}, time: #{time}" }
70
+
71
+ opts = { :host => @host, :ts => time }
72
+ status = zbx_sender.send_data(name, value.to_s, opts)
73
+
74
+ rescue IOError, EOFError, SystemCallError
75
+ # server didn't respond
76
+ $log.warn "Zabbix::Sender.send_data raises exception: #{$!.class}, '#{$!.message}'"
77
+ status = false
78
+ end
79
+ unless status
80
+ $log.warn "failed to send to zabbix_server `#{@zabbix_server}(port:`#{@port}`), host:#{@host} '#{name}': #{value}"
81
+ end
82
+ end
83
+
84
+ def emit(tag, es, chain)
85
+ zbx_sender = nil
86
+ begin
87
+ $log.trace { "connecting to zabbix server `#{@zabbix_server}(port:`#{@port}`)" }
88
+ zbx_sender = create_zbx_sender
89
+ zbx_sender.connect
90
+ $log.trace "done connected to zabbix server"
91
+ rescue
92
+ $log.warn "could not connect to zabbix server `#{@zabbix_server}(port:`#{@port})`, exception: #{$!.class}, '#{$!.message}'"
93
+ end
94
+
95
+ if zbx_sender
96
+ es.each do |time, record|
97
+ record.each do |key,value|
98
+ @map_keys.each do |map|
99
+ zbx_key = map_key(key, map.pattern, map.replace)
100
+ next unless zbx_key
101
+ send(zbx_sender, zbx_key, value, time)
102
+ end
103
+ end
104
+ end
105
+ zbx_sender.disconnect
106
+ end
107
+
108
+ # call next chain
109
+ chain.next
110
+ end
111
+
112
+ def map_key(key, pattern, replace)
113
+ unless pattern =~ key
114
+ nil
115
+ else
116
+ key.sub(pattern, replace)
117
+ end
118
+ end
119
+ end
data/test/helper.rb ADDED
@@ -0,0 +1,28 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'test/unit'
11
+
12
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
13
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
14
+ require 'fluent/test'
15
+ unless ENV.has_key?('VERBOSE')
16
+ nulllogger = Object.new
17
+ nulllogger.instance_eval {|obj|
18
+ def method_missing(method, *args)
19
+ # pass
20
+ end
21
+ }
22
+ $log = nulllogger
23
+ end
24
+
25
+ require 'fluent/plugin/out_zabbix_simple'
26
+
27
+ class Test::Unit::TestCase
28
+ end
@@ -0,0 +1,186 @@
1
+ require 'helper'
2
+
3
+ module Mock
4
+ class ::Fluent::ZabbixSimpleOutput
5
+ def self.mock!
6
+ include MockZabbixSimpleOutput
7
+ alias_method :old_create_zbx_sender, :create_zbx_sender
8
+ alias_method :create_zbx_sender, :mock_create_zbx_sender
9
+ end
10
+ def self.unmock!
11
+ return unless method_defined? :mock_say
12
+ alias_method :say, :old_say
13
+ end
14
+ end
15
+
16
+ class MockZbxSender
17
+ @@data = []
18
+ def send_data(key, value, opts)
19
+ @@data.push([key, value, opts])
20
+ end
21
+ def connect
22
+ end
23
+ def disconnect
24
+ end
25
+ def configured?()
26
+ true
27
+ end
28
+ def self.data
29
+ @@data
30
+ end
31
+ def self.clearData
32
+ @@data = []
33
+ end
34
+ end
35
+
36
+ module MockZabbixSimpleOutput
37
+ def mock_create_zbx_sender
38
+ MockZbxSender.new
39
+ end
40
+ end
41
+ end
42
+
43
+ class ZabbixOutputSimpleTest < Test::Unit::TestCase
44
+ def setup
45
+ Fluent::Test.setup
46
+ end
47
+
48
+ CONFIG = %[
49
+ zabbix_server 127.0.0.1
50
+ host clienthost
51
+ map_key1 x1 y1
52
+ map_key2 x2 y2
53
+ ]
54
+
55
+ def create_driver(conf = CONFIG, tag='test')
56
+ Fluent::Test::OutputTestDriver.new(Fluent::ZabbixSimpleOutput, tag).configure(conf)
57
+ end
58
+
59
+ def test_emit001
60
+ ::Mock::MockZbxSender.clearData
61
+ Fluent::ZabbixSimpleOutput.mock!
62
+ d = create_driver
63
+ d.emit({"x1" => "test value of x1"})
64
+ Fluent::ZabbixSimpleOutput.unmock!
65
+
66
+ assert_equal(1, ::Mock::MockZbxSender.data.size)
67
+ assert_equal("y1", ::Mock::MockZbxSender.data[0][0])
68
+ assert_equal("test value of x1", ::Mock::MockZbxSender.data[0][1])
69
+ assert_equal("clienthost", ::Mock::MockZbxSender.data[0][2][:host])
70
+ assert_block do
71
+ ::Mock::MockZbxSender.data[0][2][:ts] > 0
72
+ end
73
+ ::Mock::MockZbxSender.clearData
74
+ end
75
+
76
+ def test_emit002
77
+ ::Mock::MockZbxSender.clearData
78
+
79
+ Fluent::ZabbixSimpleOutput.mock!
80
+ d = create_driver
81
+ d.emit({"x3" => "test value of x3"})
82
+ Fluent::ZabbixSimpleOutput.unmock!
83
+
84
+ assert_equal(0, ::Mock::MockZbxSender.data.size)
85
+
86
+ ::Mock::MockZbxSender.clearData
87
+ end
88
+
89
+ def test_emit003
90
+ ::Mock::MockZbxSender.clearData
91
+
92
+ Fluent::ZabbixSimpleOutput.mock!
93
+ d = create_driver %{
94
+ zabbix_server 127.0.0.1
95
+ map_key1 input_([^_]+)_count httpd.count[\\1]
96
+ }
97
+ d.emit({"input_unmatched_count" => 10, "input_unmatched_rate" => 0.431, "input_unmatched_percentage" => 0.73})
98
+ d.emit({"input_status2xx_count" => 1884540035, "input_status2xx_rate" => 2041995578.0 / 730602602.0, "input_status2xx_percentage" => 422483907.0 / 426370718.0})
99
+ Fluent::ZabbixSimpleOutput.unmock!
100
+
101
+ assert_equal(2, ::Mock::MockZbxSender.data.size)
102
+ assert_equal("httpd.count[unmatched]", ::Mock::MockZbxSender.data[0][0])
103
+ assert_equal("10", ::Mock::MockZbxSender.data[0][1])
104
+ assert_equal("httpd.count[status2xx]", ::Mock::MockZbxSender.data[1][0])
105
+ assert_equal("1884540035", ::Mock::MockZbxSender.data[1][1])
106
+
107
+ ::Mock::MockZbxSender.clearData
108
+ end
109
+
110
+ def test_configure001
111
+ d = create_driver
112
+ assert_equal("127.0.0.1", d.instance.zabbix_server)
113
+ assert_equal(10051, d.instance.port)
114
+ assert_equal("clienthost", d.instance.host)
115
+ assert_equal(20, d.instance.key_size)
116
+ assert_equal(2, d.instance.map_keys.size)
117
+
118
+ assert_equal(1, d.instance.map_keys[0][0])
119
+ assert_equal("/x1/", d.instance.map_keys[0][1].inspect)
120
+ assert_equal("y1", d.instance.map_keys[0][2])
121
+ assert_equal(2, d.instance.map_keys[1][0])
122
+ assert_equal("/x2/", d.instance.map_keys[1][1].inspect)
123
+ assert_equal("y2", d.instance.map_keys[1][2])
124
+
125
+ assert_equal(1, d.instance.map_keys[0].id)
126
+ assert_equal("/x1/", d.instance.map_keys[0].pattern.inspect)
127
+ assert_equal("y1", d.instance.map_keys[0].replace)
128
+ assert_equal(2, d.instance.map_keys[1].id)
129
+ assert_equal("/x2/", d.instance.map_keys[1].pattern.inspect)
130
+ assert_equal("y2", d.instance.map_keys[1].replace)
131
+ end
132
+
133
+ def test_configure002
134
+ assert_raise Fluent::ConfigError do
135
+ d = create_driver %[
136
+ host clienthost
137
+ ]
138
+ end
139
+ end
140
+
141
+ def test_configure003
142
+ assert_raise Fluent::ConfigError do
143
+ d = create_driver %[
144
+ zabbix_server 127.0.0.1
145
+ host clienthost
146
+ ]
147
+ end
148
+ end
149
+
150
+ def test_configure004
151
+ d = create_driver %[
152
+ zabbix_server 127.0.0.1
153
+ port 490478390,
154
+ host clienthost
155
+ map_key3 x1 y1
156
+ ]
157
+
158
+ assert_equal("127.0.0.1", d.instance.zabbix_server)
159
+ assert_equal(490478390, d.instance.port)
160
+ assert_equal("clienthost", d.instance.host)
161
+ assert_equal(20, d.instance.key_size)
162
+ assert_equal(1, d.instance.map_keys.size)
163
+ assert_equal(3, d.instance.map_keys[0][0])
164
+ assert_equal("/x1/", d.instance.map_keys[0][1].inspect)
165
+ assert_equal("y1", d.instance.map_keys[0][2])
166
+ assert_equal(3, d.instance.map_keys[0].id)
167
+ assert_equal("/x1/", d.instance.map_keys[0].pattern.inspect)
168
+ assert_equal("y1", d.instance.map_keys[0].replace)
169
+ end
170
+
171
+ def test_map_key
172
+ d = create_driver
173
+
174
+ assert_equal("http.statusCount[2xx]",
175
+ d.instance.map_key("input_status2xx_count", /^.+_status(...)_count$/,
176
+ 'http.statusCount[\1]'))
177
+ assert_equal("http.statusCount[2xx]",
178
+ d.instance.map_key("input_status2xx_count",
179
+ Regexp.new('^.+_status(...)_count$'),
180
+ 'http.statusCount[\1]'))
181
+ assert_nil(
182
+ d.instance.map_key("input_status2xx_rate",
183
+ Regexp.new('^.+_status(...)_count$'),
184
+ 'http.statusCount[\1]'))
185
+ end
186
+ end
metadata ADDED
@@ -0,0 +1,99 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fluent-plugin-zabbix-simple-bufferd
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Katsuhiro Miura
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-09-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: fluentd
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: fluentd
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: zabbix
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Output data plugin to Zabbix
56
+ email:
57
+ - MiuraKatsu@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - .gitignore
63
+ - Gemfile
64
+ - Gemfile.lock
65
+ - LICENSE
66
+ - README-ja.md
67
+ - README.md
68
+ - Rakefile
69
+ - fluent-plugin-zabbix-simple-bufferd.gemspec
70
+ - lib/fluent/plugin/out_zabbix_simple_bufferd.rb
71
+ - test/helper.rb
72
+ - test/plugin/test_out_zabbix_simple.rb
73
+ homepage: https://github.com/katsuhiro-miura/fluent-plugin-zabbix-simple
74
+ licenses: []
75
+ metadata: {}
76
+ post_install_message:
77
+ rdoc_options: []
78
+ require_paths:
79
+ - lib
80
+ required_ruby_version: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ! '>='
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ required_rubygems_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ requirements: []
91
+ rubyforge_project:
92
+ rubygems_version: 2.0.6
93
+ signing_key:
94
+ specification_version: 4
95
+ summary: Output data plugin to Zabbix (like zabbix_sender)
96
+ test_files:
97
+ - test/helper.rb
98
+ - test/plugin/test_out_zabbix_simple.rb
99
+ has_rdoc: