fluent-plugin-zabbix 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/fluent-plugin-zabbix.gemspec +2 -1
- data/lib/fluent/plugin/out_zabbix.rb +2 -3
- data/test/mockserver.go +30 -8
- data/test/plugin/test_out_zabbix.rb +30 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3549d1035d720adf10906025533a6b300b78cb91
|
4
|
+
data.tar.gz: 4217a75b549c6b3d104872c6fa81d6132028f321
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b8ca5659fa7e75dbdc0ce85ce24f53fe09578a0fe5491aa3795040c520f06f5c25665df6dbab0006aa3c17c758378988eda89813a77aed789ce5e46daedd296
|
7
|
+
data.tar.gz: 9f69b428aafca5e82a7e2baaa0711228fbc3a4aab0d23e152d5378634ec0ef77512672c476d8ae2f926edf8acc6bbc2061b6e3040d4ad927bc1dace47bdb6066
|
data/.gitignore
CHANGED
@@ -13,9 +13,10 @@ Gem::Specification.new do |gem|
|
|
13
13
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
14
14
|
gem.name = "fluent-plugin-zabbix"
|
15
15
|
gem.require_paths = ["lib"]
|
16
|
-
gem.version = "0.0.
|
16
|
+
gem.version = "0.0.5"
|
17
17
|
|
18
18
|
gem.add_runtime_dependency "fluentd", "~> 0.10"
|
19
19
|
gem.add_runtime_dependency "zabbix", ">= 0.4"
|
20
20
|
gem.add_development_dependency "rake", ">= 0.9.2"
|
21
|
+
gem.add_development_dependency "glint", "= 0.0.2"
|
21
22
|
end
|
@@ -65,9 +65,8 @@ class Fluent::ZabbixOutput < Fluent::Output
|
|
65
65
|
else
|
66
66
|
status = zbx.send_data(name, value.to_s, opts)
|
67
67
|
end
|
68
|
-
rescue
|
69
|
-
|
70
|
-
log.warn "plugin-zabbix: Zabbix::Sender.send_data raises exception: #{$!.class}, '#{$!.message}'"
|
68
|
+
rescue => e
|
69
|
+
log.warn "plugin-zabbix: Zabbix::Sender.send_data raises exception: #{e}"
|
71
70
|
status = false
|
72
71
|
end
|
73
72
|
unless status
|
data/test/mockserver.go
CHANGED
@@ -1,21 +1,43 @@
|
|
1
1
|
package main
|
2
2
|
|
3
3
|
import (
|
4
|
+
"fmt"
|
5
|
+
"io"
|
4
6
|
"log"
|
7
|
+
"os"
|
5
8
|
|
6
9
|
"github.com/fujiwara/go-zabbix-get/zabbix"
|
7
10
|
)
|
8
11
|
|
12
|
+
var Output io.Writer
|
13
|
+
|
9
14
|
func main() {
|
10
|
-
err
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
var err error
|
16
|
+
if len(os.Args) >= 2 {
|
17
|
+
Output, err = os.Create(os.Args[1])
|
18
|
+
if err != nil {
|
19
|
+
panic(err)
|
20
|
+
}
|
21
|
+
log.Printf("output to %s", os.Args[1])
|
22
|
+
} else {
|
23
|
+
Output = os.Stdout
|
24
|
+
}
|
25
|
+
err = zabbix.RunTrapper("127.0.0.1:10051", handler)
|
18
26
|
if err != nil {
|
19
27
|
panic(err)
|
20
28
|
}
|
21
29
|
}
|
30
|
+
|
31
|
+
func handler(req zabbix.TrapperRequest) (res zabbix.TrapperResponse, err error) {
|
32
|
+
for _, d := range req.Data {
|
33
|
+
line := fmt.Sprintf(
|
34
|
+
"host:%s\tkey:%s\tvalue:%s\n",
|
35
|
+
d.Host,
|
36
|
+
d.Key,
|
37
|
+
d.Value,
|
38
|
+
)
|
39
|
+
Output.Write([]byte(line))
|
40
|
+
}
|
41
|
+
res.Proceeded = len(req.Data)
|
42
|
+
return
|
43
|
+
}
|
@@ -1,8 +1,21 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
+
if ENV['LIVE_TEST']
|
4
|
+
require "glint"
|
5
|
+
require "tmpdir"
|
6
|
+
system "go", "build", "test/mockserver.go"
|
7
|
+
end
|
8
|
+
|
3
9
|
class ZabbixOutputTest < Test::Unit::TestCase
|
4
10
|
def setup
|
5
11
|
Fluent::Test.setup
|
12
|
+
if ENV['LIVE_TEST']
|
13
|
+
$dir = Dir.mktmpdir
|
14
|
+
$server = Glint::Server.new(10051, { :timeout => 3 }) do |port|
|
15
|
+
exec "./mockserver", $dir.to_s + "/trapper.log"
|
16
|
+
end
|
17
|
+
$server.start
|
18
|
+
end
|
6
19
|
end
|
7
20
|
|
8
21
|
CONFIG = %[
|
@@ -21,11 +34,21 @@ class ZabbixOutputTest < Test::Unit::TestCase
|
|
21
34
|
if ENV['LIVE_TEST']
|
22
35
|
d.emit({"foo" => "test value of foo"})
|
23
36
|
d.emit({"bar" => "test value of bar"})
|
24
|
-
d.emit({"baz" =>
|
37
|
+
d.emit({"baz" => 123.4567 })
|
25
38
|
d.emit({"foo" => "yyy", "zabbix_host" => "alternative-hostname"})
|
26
39
|
d.emit({"f1" => 0.000001})
|
27
40
|
d.emit({"f2" => 0.01})
|
28
41
|
d.run
|
42
|
+
sleep 1
|
43
|
+
$server.stop
|
44
|
+
assert_equal open($dir + "/trapper.log").read, <<END
|
45
|
+
host:test_host key:test.foo value:test value of foo
|
46
|
+
host:test_host key:test.bar value:test value of bar
|
47
|
+
host:test_host key:test.baz value:123.4567
|
48
|
+
host:test_host key:test.foo value:yyy
|
49
|
+
host:test_host key:test.f1 value:0.0
|
50
|
+
host:test_host key:test.f2 value:0.01
|
51
|
+
END
|
29
52
|
end
|
30
53
|
end
|
31
54
|
|
@@ -47,6 +70,12 @@ class ZabbixOutputTest < Test::Unit::TestCase
|
|
47
70
|
d.emit({"foo" => "AAA" })
|
48
71
|
d.emit({"foo" => "BBB", "host" => "alternative-hostname"})
|
49
72
|
d.run
|
73
|
+
sleep 1
|
74
|
+
$server.stop
|
75
|
+
assert_equal open($dir + "/trapper.log").read, <<END
|
76
|
+
host:test_host key:test.foo value:AAA
|
77
|
+
host:alternative-hostname key:test.foo value:BBB
|
78
|
+
END
|
50
79
|
end
|
51
80
|
end
|
52
81
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-zabbix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- FUJIWARA Shunichiro
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.9.2
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: glint
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.0.2
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.0.2
|
55
69
|
description: Output data plugin to Zabbix
|
56
70
|
email:
|
57
71
|
- fujiwara.shunichiro@gmail.com
|