zabbix-monitor 0.0.2 → 0.0.3
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 +4 -4
- data/.travis.yml +5 -0
- data/CHANGELOG.md +14 -5
- data/README.md +29 -1
- data/TODO.md +4 -4
- data/lib/tasks/zabbix.rb +13 -4
- data/lib/zabbix/monitor.rb +1 -1
- data/spec/monitor_spec.rb +1 -1
- data/spec/spec_helper.rb +2 -0
- data/zabbix-monitor.gemspec +3 -1
- metadata +30 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 12d1f8315102ff4b17ac77c9353c7f36118fa66c
|
4
|
+
data.tar.gz: fb155b2c351ef2637a8acc6e8bb2434c1cf0819a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b113b81926b4c51174a10223b849a5b823636c7ccfadb8a5b33bb97d7569a590eccc67c44fa3bf4f617a0465beab5447f6bab1ab0617e409b4a0a7ae506ab24
|
7
|
+
data.tar.gz: 766a16529f22c2d8097bd44cc82da091f8f45bb47889fea4974d24b49d995f296db54f1f19f74f1112929b8c71d765e855ce3e82ff12b7e8a7ce46b54c465e62
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,20 @@
|
|
1
1
|
# Zabbix Monitor Changelog
|
2
2
|
|
3
|
-
### TBA
|
4
|
-
|
5
|
-
-
|
3
|
+
### v0.0.3 (TBA)
|
4
|
+
|
5
|
+
- Added codeclimate coverage
|
6
|
+
|
7
|
+
### v0.0.2 (2014-04-24)
|
8
|
+
|
9
|
+
- Added :file mode
|
10
|
+
- Write monitoring data to `tmp/zabbix-stats.yml`
|
11
|
+
- Read values with `$ zabbix_reader test`
|
12
|
+
- Added specs
|
13
|
+
- Added documentation
|
6
14
|
- Added services:
|
7
|
-
|
8
|
-
|
15
|
+
- Travis CI
|
16
|
+
- Rdoc
|
9
17
|
|
10
18
|
### v0.0.1 (2014-04-17)
|
19
|
+
|
11
20
|
- Initial release
|
data/README.md
CHANGED
@@ -2,10 +2,12 @@
|
|
2
2
|
[][gemversion]
|
3
3
|
[][travis]
|
4
4
|
[][codeclimate]
|
5
|
+
[][coverage]
|
5
6
|
|
6
7
|
[gemversion]: http://badge.fury.io/rb/zabbix-monitor
|
7
8
|
[travis]: http://travis-ci.org/sping/zabbix-monitor
|
8
9
|
[codeclimate]: https://codeclimate.com/github/sping/zabbix-monitor
|
10
|
+
[coverage]: https://codeclimate.com/github/sping/zabbix-monitor
|
9
11
|
|
10
12
|
Zabbix monitoring for Ruby apps. Works with pushing and polling: push data to the agent server with zabbix_sender or collect data with the Zabbix agent.
|
11
13
|
|
@@ -38,6 +40,8 @@ To include the rake tasks in your application, add the following line to your Ra
|
|
38
40
|
Place your Zabbix Monitoring configuration in an initializer:
|
39
41
|
|
40
42
|
```ruby
|
43
|
+
require 'zabbix'
|
44
|
+
|
41
45
|
Zabbix.configure do |config|
|
42
46
|
config.config_file_path = '/etc/zabbix/zabbix_agentd.conf'
|
43
47
|
# optional, defaults to ./log/#{RACK_ENV}.log
|
@@ -58,7 +62,7 @@ Put the host name as configured in your Zabbix server config in `config.host_nam
|
|
58
62
|
Set the `config.mode` to one of the following options:
|
59
63
|
|
60
64
|
- `:push` uses the Zabbix agent to push the data to the Zabbix server
|
61
|
-
- `:file` writes the data to tmp/zabbix
|
65
|
+
- `:file` writes the data to tmp/zabbix-stats.yml
|
62
66
|
- `:stdout` writes the data to the stdout
|
63
67
|
|
64
68
|
Put your monitoring rules in `config.rules`. Each rule contains a Ruby command to be executed by the Zabbix Monitor and the key as configured on the Zabbix Server.
|
@@ -67,6 +71,30 @@ Start running your monitoring jobs with:
|
|
67
71
|
|
68
72
|
$ rake zabbix:collect_data
|
69
73
|
|
74
|
+
### File mode
|
75
|
+
|
76
|
+
In `:file` mode, monitoring var can be read from the monitoring file using `zabbix_reader` command.
|
77
|
+
Create a script that's been executed by the Zabbix daemon:
|
78
|
+
|
79
|
+
```bash
|
80
|
+
#! /bin/bash
|
81
|
+
cd /path/to/app/
|
82
|
+
echo $( RAILS_ENV=production bundle exec zabbix_reader $1 )
|
83
|
+
```
|
84
|
+
|
85
|
+
To speed up the reading of variables, you can also use awk to look for variables. Create the following script instead:
|
86
|
+
|
87
|
+
```bash
|
88
|
+
#! /bin/bash
|
89
|
+
cd /path/to/app/
|
90
|
+
|
91
|
+
if [ -f tmp/zabbix-stats.yml ]
|
92
|
+
then
|
93
|
+
echo $( awk -F: -v var=$1 '$0 ~ var {$1=""; print $0; exit}' tmp/zabbix-stats.yml )
|
94
|
+
else
|
95
|
+
echo Zabbix monitor file not found
|
96
|
+
fi
|
97
|
+
```
|
70
98
|
|
71
99
|
## Changelog
|
72
100
|
|
data/TODO.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
# Todo
|
1
|
+
# Zabbix Monitor Todo
|
2
2
|
|
3
|
-
-
|
4
|
-
- Make
|
5
|
-
-
|
3
|
+
- Make Rufus Schedulere ActiveRecord independent
|
4
|
+
- Make schedule frequency configurable
|
5
|
+
- Capistrano integration / recipes
|
data/lib/tasks/zabbix.rb
CHANGED
@@ -1,15 +1,24 @@
|
|
1
1
|
require 'zabbix'
|
2
|
+
require 'dante'
|
2
3
|
|
3
4
|
namespace :zabbix do
|
4
5
|
desc 'Collect data for Zabbix'
|
5
|
-
task :
|
6
|
+
task :run_once => :environment do
|
6
7
|
Zabbix.logger.info "[Rake] executing #collect_once"
|
7
8
|
Zabbix::Monitor.new.collect_data
|
8
9
|
end
|
9
10
|
|
10
11
|
desc 'Collect data for Zabbix every minute'
|
11
|
-
task :
|
12
|
-
Zabbix.logger.info "[Rake] executing #
|
13
|
-
|
12
|
+
task :start => :environment do
|
13
|
+
Zabbix.logger.info "[Rake] executing #start, setting up Rufus"
|
14
|
+
Dante::Runner.new('zabbix-monitor').execute(:daemonize => true, :pid_path => 'tmp/zabbix-monitor.pid', :log_path => 'log/zabbix-monitor.log') do
|
15
|
+
Zabbix::Monitor.new.schedule
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
desc 'Stop collecting data for Zabbix'
|
20
|
+
task :stop => :environment do
|
21
|
+
Zabbix.logger.info "[Rake] executing #stop, stopping daemon"
|
22
|
+
Dante::Runner.new('zabbix-monitor').execute(:kill => true, :pid_path => 'tmp/zabbix-monitor.pid')
|
14
23
|
end
|
15
24
|
end
|
data/lib/zabbix/monitor.rb
CHANGED
data/spec/monitor_spec.rb
CHANGED
@@ -147,7 +147,7 @@ describe Zabbix::Monitor do
|
|
147
147
|
|
148
148
|
describe "#to_stdout" do
|
149
149
|
it 'receives the key and value as a puts command' do
|
150
|
-
expect(
|
150
|
+
expect(STDOUT).to receive(:puts).with('key: the value')
|
151
151
|
monitor.send(:to_stdout, 'key', 'the value')
|
152
152
|
end
|
153
153
|
end
|
data/spec/spec_helper.rb
CHANGED
data/zabbix-monitor.gemspec
CHANGED
@@ -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 = 'zabbix-monitor'
|
7
|
-
spec.version = '0.0.
|
7
|
+
spec.version = '0.0.3'
|
8
8
|
spec.authors = ['Robert Jan de Gelder', 'Manuel van Rijn']
|
9
9
|
spec.email = ['r.degelder@sping.nl', 'm.vanrijn@sping.nl']
|
10
10
|
spec.description = 'Zabbix application monitoring'
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
|
20
20
|
spec.add_dependency 'rufus-scheduler', '~> 3.0'
|
21
21
|
spec.add_dependency 'yell', '~> 2.0'
|
22
|
+
spec.add_dependency 'dante', '~> 0.2.0'
|
22
23
|
|
23
24
|
spec.add_development_dependency 'rake'
|
24
25
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
@@ -27,4 +28,5 @@ Gem::Specification.new do |spec|
|
|
27
28
|
spec.add_development_dependency 'pry-nav'
|
28
29
|
spec.add_development_dependency 'yard'
|
29
30
|
spec.add_development_dependency 'simplecov'
|
31
|
+
spec.add_development_dependency 'codeclimate-test-reporter'
|
30
32
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zabbix-monitor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Jan de Gelder
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-05-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rufus-scheduler
|
@@ -39,6 +39,20 @@ dependencies:
|
|
39
39
|
- - ~>
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '2.0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: dante
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ~>
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 0.2.0
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ~>
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 0.2.0
|
42
56
|
- !ruby/object:Gem::Dependency
|
43
57
|
name: rake
|
44
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,6 +151,20 @@ dependencies:
|
|
137
151
|
- - '>='
|
138
152
|
- !ruby/object:Gem::Version
|
139
153
|
version: '0'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: codeclimate-test-reporter
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - '>='
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
type: :development
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - '>='
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
140
168
|
description: Zabbix application monitoring
|
141
169
|
email:
|
142
170
|
- r.degelder@sping.nl
|